เป็นไปได้ไหมที่จะสืบค้นอินสแตนซ์ Amazon RDS โดยตรงจาก API Gateway

ฉันเพิ่งเคยใช้ API Gateway และเท่าที่ฉันได้ลองใช้มานั้นเป็นเครื่องมือที่ทรงพลังมาก สำหรับโปรเจ็กต์ที่ฉันกำลังทำงานอยู่ตอนนี้ เรากำลังใช้อินสแตนซ์ PostgreSQL ใน RDS ฉันเห็นว่าสามารถเข้าถึงตาราง DynamoDB ได้โดยตรงจาก API Gateway ดังนั้นฉันจึงสงสัยว่าจะมีวิธีใดในการเข้าถึงฐานข้อมูลเชิงสัมพันธ์หรือไม่ ดังนั้นฉันจึงสร้างทรัพยากรด้วยวิธี GET และกำหนดค่าให้เชื่อมต่อกับฐานข้อมูลของฉัน แต่ฉันไม่แน่ใจว่าฉันใช้พารามิเตอร์ที่ถูกต้องหรือไม่:

ข้อมูลที่ให้ไว้เกี่ยวกับแบ็กเอนด์เป้าหมาย

ดังนั้นฉันจึงไม่แน่ใจเกี่ยวกับข้อโต้แย้งในแต่ละฟิลด์ของการตั้งค่า ในโดเมนย่อย AWS ฉันเขียน URL สาธารณะราวกับว่าฉันกำลังเชื่อมต่อฉันจากไคลเอนต์ pgAdmin ของฉัน (ไม่มีพอร์ตใดที่ทำให้โครงสร้างทั้งหมดไม่ได้รับการยอมรับ ดังนั้นฉันจึงรู้ว่าฉันกำลังทำสิ่งที่ไม่ดี) ก่อนหน้านั้นฉันลองใช้ ARN ของทรัพยากร RDS ของฉัน แต่ข้อผิดพลาดนี้ปรากฏขึ้น:

AWS ARN for integration must contains path or action

สำหรับบทบาทการดำเนินการ ฉันได้สร้างหนึ่งรายการพร้อมนโยบายเพื่อเข้าถึงทรัพยากร Postgres ของฉัน

เมื่ออ่านเอกสาร RDS ฉันพบว่าเป็นไปได้ที่จะใช้ Query API จาก RDS โดยใช้กริยา HTTP GET หรือ POST และพารามิเตอร์ Query ชื่อ Action ดังนั้นฉันจึงพยายามหาวิธีวางคำสั่งการสืบค้นในลักษณะนี้:

คำขอตาม HTTP Query

แต่เมื่อฉันทดสอบวิธีการ นี่คือ Response Body:

{
  "message": "AWS ARN for integration contains invalid action"
}

และนี่คือบันทึกเหล่านี้:

Execution log for request test-request
Sat Mar 19 15:27:17 UTC 2016 : Execution failed: AWS ARN for integration contains invalid action
Sat Mar 19 15:27:17 UTC 2016 : Method completed with status: 400

ฉันรู้ว่าฉันทำผิดหลายอย่าง ดังนั้นไม่มีใครรู้ว่าสิ่งนี้เป็นไปได้จริงหรือไม่ และต้องทำอย่างไร เพราะฉันยังไม่พบบทช่วยสอนแบบละเอียดใดๆ


person Camilo Ortegón    schedule 19.03.2016    source แหล่งที่มา
comment
การดำเนินการที่รองรับสำหรับ RDS คือ docs.aws.amazon.com/AmazonRDS/latest /APIReference/   -  person kartik    schedule 11.12.2016
comment
นี่ยังคงเป็นคำถามที่น่าสนใจและด้วยการเปิดตัว Data API สำหรับ RDS Aurora Serverless อาจมีความหวัง...   -  person aalaap    schedule 24.11.2020


คำตอบ (1)


ไม่นี่เป็นไปไม่ได้ พร็อกซีบริการ API Gateway จะเรียกพร็อกซีไปยัง AWS API เท่านั้น RDS API อนุญาตให้คุณทำสิ่งต่างๆ เช่น สร้างฐานข้อมูล ลบฐานข้อมูล ถ่ายภาพสแนปช็อต ฯลฯ เท่านั้น โดยไม่อนุญาตให้คุณเชื่อมต่อและเรียกใช้การสืบค้นกับฐานข้อมูล

คุณควรพิจารณาการชี้ API Gateway ไปที่ฟังก์ชัน Lambda ที่สามารถเชื่อมต่อกับฐานข้อมูล RDS ของคุณและดำเนินการสืบค้นได้

person Mark B    schedule 19.03.2016
comment
คุณพูดถูก ไม่มีการกระทำ RDS ใดที่อธิบายแบบสอบถาม SQL ได้ ขอบคุณ! - person Camilo Ortegón; 19.03.2016