คำถามที่พบบ่อยเกี่ยวกับ Amazon API Gateway

ข้อมูลทั่วไป

Amazon API Gateway เป็นบริการที่มีการจัดการเต็มรูปแบบซึ่งทำให้นักพัฒนาสามารถเผยแพร่ บำรุงรักษา เฝ้าติดตาม และรักษาความปลอดภัยของ API ทุกขนาดได้อย่างง่ายดาย ด้วยการคลิกไม่กี่ครั้งใน AWS Management Console คุณสามารถสร้าง API ที่ทำหน้าที่เป็น "ประตูหน้า" สำหรับแอปพลิเคชันเพื่อเข้าถึงข้อมูล ตรรกะทางธุรกิจ หรือฟังก์ชันการทำงานจากบริการแบ็คเอนด์ของคุณ เช่น แอปพลิเคชันที่รันบน Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS) หรือ AWS Elastic Beanstalk, โค้ดที่รันบน AWS Lambda หรือแอปพลิเคชันบนเว็บใดๆ Amazon API Gateway จัดการงานทั้งหมดที่เกี่ยวข้องในการรับและประมวลผลการเรียก API พร้อมกันนับแสนรายการ รวมถึงการจัดการปริมาณการใช้ การอนุมัติและการควบคุมการเข้าถึง การเฝ้าติดตาม และการจัดการเวอร์ชัน API Amazon API Gateway ไม่มีค่าธรรมเนียมขั้นต่ำหรือค่าใช้จ่ายเริ่มต้น สำหรับ HTTP API และ REST API คุณชำระเฉพาะการเรียกใช้ API ที่คุณได้รับและจำนวนข้อมูลที่ถ่ายโอนออกเท่านั้น สำหรับ WebSocket API คุณชำระเฉพาะข้อความที่ส่งและรับ และสำหรับช่วงเวลาที่ผู้ใช้/อุปกรณ์เชื่อมต่อกับ WebSocket API

Amazon API Gateway ช่วยให้ Developer ได้รับบริการที่เรียบง่าย ยืดหยุ่น มีการจัดการเต็มรูปแบบ และคิดค่าบริการที่ใช้ตามจริง ที่จะจัดการทุกแง่มุมของการสร้างและใช้งาน API ที่ทนทานสำหรับแบ็คเอนด์แอปพลิเคชัน คุณสามารถเปิดใช้บริการใหม่ได้เร็วขึ้นและด้วยการลงทุนที่น้อยลงเพื่อให้คุณมุ่งเน้นไปที่การสร้างบริการธุรกิจหลักด้วย API Gateway API Gateway สร้างขึ้นเพื่อช่วยให้คุณสร้างและจัดการ API หลายๆ ด้าน:

1) การวัดระดับ API Gateway ช่วยให้คุณกำหนดแผนที่วัดและจำกัดการเข้าถึง API ของนักพัฒนาจากบริษัทอื่น คุณสามารถกำหนดชุดของแผน กำหนดค่าการควบคุม และจำกัดโควตาสำหรับแต่ละคีย์ API API Gateway วัดระดับปริมาณการใช้ API โดยอัตโนมัติและช่วยให้คุณดึงข้อมูลการใช้สำหรับแต่ละคีย์ API

2) การรักษาความปลอดภัย API Gateway มีเครื่องมือมากมายเพื่ออนุญาตการเข้าถึง API ของคุณและควบคุมการเข้าถึงการดำเนินงานของบริการ API Gateway ช่วยให้คุณสามารถใช้ประโยชน์จากเครื่องมือดูแลระบบและรักษาความปลอดภัยของ AWS เช่น AWS Identity and Access Management (IAM) และ Amazon Cognito เพื่ออนุญาตการเข้าถึง API ของคุณได้ API Gateway สามารถตรวจสอบการเรียกใช้งาน API แทนคุณได้โดยใช้วิธีการเดียวกันที่ AWS ใช้กับ API ของตนเอง API Gateway ยังช่วยคุณตรวจสอบโทเค็นผู้ถือขาเข้าโดยใช้ผู้อนุมัติแบบกำหนดเองที่เขียนเป็นฟังก์ชัน AWS Lambda ซึ่งขจัดความกังวลในการยืนยันตัวตนจากโค้ดแบ็คเอนด์ของคุณ

3) ความยืดหยุ่น API Gateway ช่วยให้คุณจัดการปริมาณการใช้ผ่านการควบคุมเพื่อให้การดำเนินงานแบ็คเอนด์สามารถรองรับปริมาณการใช้ที่เพิ่มขึ้นได้ นอกจากนี้ API Gateway ยังช่วยปรับปรุงประสิทธิภาพของ API และเวลาแฝงที่ผู้ใช้ของคุณต้องประสบโดยการแคชเอาต์พุตของการเรียกใช้งาน API เพื่อหลีกเลี่ยงการเรียกใช้แบ็คเอนด์ทุกครั้ง

4) การตรวจสอบการดำเนินการ หลังจากเผยแพร่และมีการนำ API ไปใช้แล้ว Amazon API Gateway มีแดชบอร์ดตัววัดให้คุณเพื่อเฝ้าติดตามการเรียกใช้บริการของคุณ แดชบอร์ด API Gateway ซึ่งผสานรวมกับ Amazon CloudWatch มีตัววัดประสิทธิภาพแบ็คเอนด์ที่ครอบคลุมการเรียกใช้ API ข้อมูลเวลาแฝง และอัตราข้อผิดพลาด คุณสามารถเปิดใช้งานตัววัดโดยละเอียดสำหรับแต่ละเมธอดใน API ของคุณและยังได้รับบันทึกข้อผิดพลาด การเข้าถึง หรือการแก้ไขข้อบกพร่องใน CloudWatch Logs

5) การจัดการรอบการใช้งาน หลังจาก API ได้รับการเผยแพร่แล้ว คุณจำเป็นต้องสร้างและทดสอบเวอร์ชันใหม่ที่ปรับปรุงหรือเพิ่มฟังก์ชันการทำงานใหม่เป็นประจำ API Gateway ช่วยให้คุณใช้งาน API หลายเวอร์ชันและหลายระยะสำหรับแต่ละเวอร์ชันพร้อมกันเพื่อให้แอปพลิเคชันที่มีอยู่สามารถเรียกใช้เวอร์ชันก่อนหน้านี้ได้ต่อไปหลังจากที่ API เวอร์ชันใหม่ได้รับการเผยแพร่

6) ออกแบบมาสำหรับนักพัฒนา API Gateway ช่วยให้คุณสร้าง API ได้อย่างรวดเร็วและกำหนดเนื้อหาคงที่สำหรับการตอบสนอง เพื่อลดงานในการพัฒนาข้ามทีมและเร่งเวลาสู่ตลาดสำหรับแอปพลิเคชันของคุณ ทีมที่พึ่งพา API ของคุณสามารถเริ่มการพัฒนาได้ในขณะที่คุณสร้างกระบวนการแบ็คเอนด์

7) การสื่อสารสองทางแบบเรียลไทม์ สร้างแอปพิลเคชันการสื่อสารสองทางแบบเรียลไทม์ เช่น แอปการแชท แดชบอร์ดการสตรีม และการแจ้งเตือน โดยไม่ต้องเรียกใช้หรือจัดการเซิร์ฟเวอร์ใดๆ API Gateway จะรักษาการเชื่อมต่อระหว่างผู้ใช้ที่เชื่อมต่ออย่างต่อเนื่อง ช่วยให้สามารถถ่ายโอนข้อความระหว่างพวกเขา

Amazon API Gateway มีสองตัวเลือกในการสร้าง RESTful API, HTTP API และ REST API รวมถึงตัวเลือกในการสร้าง WebSocket API

HTTP API: HTTP API ได้รับการปรับให้เหมาะสมสำหรับการสร้าง API ที่พร็อกซีไปยังฟังก์ชัน AWS Lambda หรือแบ็กเอนด์ HTTP ทำให้เหมาะสำหรับเวิร์กโหลดที่ไม่ต้องใช้เซิร์ฟเวอร์ ขณะนี้ยังไม่มีฟังก์ชันการทำงานสำหรับการจัดการ API

REST API: REST API มีฟังก์ชันการทำงานพร็อกซี API และฟีเจอร์การจัดการ API ในโซลูชันเดียว REST API นำเสนอคุณสมบัติการจัดการ API เช่น แผนการใช้งานคีย์ API การเผยแพร่ และการสร้างรายได้จาก API

WebSocket API: WebSocket API จะรักษาการเชื่อมต่อระหว่างไคลเอ็นต์ที่เชื่อมต่ออย่างต่อเนื่อง เพื่อช่วยให้สามารถสื่อสารผ่านข้อความแบบเรียลไทม์ได้ เมื่อมี WebSocket API ใน API Gateway คุณจะสามารถระบุการผสานรวมแบ็คเอนด์เข้ากับฟังก์ชัน AWS Lambda, Amazon Kinesis, หรือตำแหน่งข้อมูล HTTP ใดก็ตามเพื่อที่จะเรียกใช้เมื่อได้รับข้อความจากไคลเอ็นต์ที่เชื่อมต่ออยู่

หากต้องการเริ่มต้นใช้งาน HTTP AP คุณสามารถใช้ Amazon API Gateway Console, AWS CLI, AWS SDK หรือ AWS CloudFormation ได้ ในการเรียนรู้เพิ่มเติมเกี่ยวกับการเริ่มต้นใช้งาน HTTP API โปรดเข้าไปดูที่เอกสารประกอบของเรา

หากต้องการเริ่มต้นใช้งาน REST API คุณสามารถใช้ Amazon API Gateway Console, AWS CLI หรือ AWS SDK ได้ ในการเรียนรู้เพิ่มเติมเกี่ยวกับการเริ่มต้นใช้งาน REST API โปรดเข้าไปดูที่เอกสารประกอบของเรา

คุณสามารถสร้าง RESTful API ได้โดยใช้ทั้ง HTTP API และ REST API ใน Amazon API Gateway

HTTP API ได้รับการปรับให้เหมาะสมสำหรับการสร้าง API ที่พร็อกซีไปยังฟังก์ชัน AWS Lambda หรือแบ็คเอนด์ HTTP ทำให้เหมาะสำหรับเวิร์กโหลดแบบไม่ใช้เซิร์ฟเวอร์ HTTP API เป็นทางเลือกที่ถูกและเร็วกว่า REST API แต่ปัจจุบันยังไม่รองรับฟังก์ชันการจัดการ API REST API มีไว้สำหรับ API ที่ต้องใช้การทำงานพร็อกซี API และคุณสมบัติการจัดการ API ในโซลูชันเดียว

HTTP API เหมาะสำหรับ:

  1. การสร้าง API พร็อกซีสำหรับ AWS Lambda หรือตำแหน่งข้อมูล HTTP
  2. การสร้าง API ที่ทันสมัยที่ติดตั้งด้วย OIDC และได้รับอนุญาตจาก OAuth 2 
  3. ปริมาณงานที่มีแนวโน้มเติบโตสูงมาก
  4. API สำหรับปริมาณงานที่มีความอ่อนไหวต่อเวลาแฝง
 
REST API เหมาะสำหรับ:
 
  1. ลูกค้าที่มองหาจุดจ่ายเงินเพียงครั้งเดียวสำหรับชุดคุณสมบัติที่รวมทุกอย่างไว้แล้วที่จำเป็นในการสร้าง จัดการ และเผยแพร่ API ของพวกเขา 

HTTP API มาพร้อมกับการรองรับ CORS, OIDC และ OAuth2 รองรับการรับรองความถูกต้องและการอนุญาต และการปรับใช้อัตโนมัติในระยะตามาตรฐาน

ใช่ คุณสามารถนำเข้านิยาม API โดยใช้ OpenAPI 3 ได้ ผลคือการสร้างเส้นทาง การผสานรวม และโมเดล API สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการนำเข้านิยาม OpenAPI ให้ดูที่เอกสารประกอบของเรา

หากต้องการโยกย้ายจาก REST API ปัจจุบันของคุณไปยัง HTTP API ใน Amazon API Gateway ให้ทำดังนี้:

  1. ตรวจสอบว่าคุณสมบัติทั้งหมดที่คุณต้องใช้มีอยู่ใน HTTP หากต้องการดูรายชื่อคุณสมบัติทั้งหมด โปรดไปที่เอกสารประกอบของเรา 
  2. ไปที่ REST API ของคุณและส่งออกนิยาม OpenAPI จาก REST API ของคุณ
  3. ไปที่ HTTP API ของคุณและนำเข้าคำจำกัดความ OpenAPI จากขั้นตอนก่อนหน้า
  4. ทดสอบว่า API ทำงานตามที่คาดไว้
  5. อัปเดตไคลเอ็นต์ของคุณด้วย URL ใหม่

ในขณะที่ API ของคุณอาจใช้งานได้ คุณอาจสังเกตเห็นคุณสมบัติที่ขาดหายไป หากต้องการระบุฟีเจอร์ที่ขาดหายไป ให้ดูช่องข้อมูล คำเตือน และข้อผิดพลาด จากการดำเนินการนำเข้า สำหรับข้อมูลเพื่มเติมเกี่ยวกับการโยกย้าย REST API ไปยัง HTTP API โปรดดูเอกสารประกอบของเรา

ก่อนอื่น ให้ไปที่ REST ของคุณและส่งออกนิยาม OpenAPI จาก REST API ของคุณ จากนั้น ไปที่ HTTP API ของคุณและนำเข้าคำจำกัดความ OpenAPI จากขั้นตอนก่อนหน้า ในขณะที่ API ของคุณอาจใช้งานได้ คุณอาจสังเกตเห็นคุณสมบัติที่ขาดหายไป หากต้องการระบุฟีเจอร์ที่ขาดหายไป ให้ดูช่องข้อมูล คำเตือน และข้อผิดพลาด จากการดำเนินการนำเข้า AWS CLI จะส่งคืนข้อมูลเกี่ยวกับ API ของคุณภายในช่องข้อมูลและช่องคำเตือนของคุณ สำหรับข้อมูลเพิ่มเติม ให้อ่านเอกสารประกอบของเรา

ในการเริ่มต้น คุณสามารถสร้าง WebSocket API โดยใช้ AWS Management Console, AWS CLI หรือ AWS SDK จากนั้น คุณจะสามารถตั้งค่าเส้นทาง WebSocket ไปยังบริการแบ็คเอนด์ที่ระบุ เช่น AWS Lambda, Amazon Kinesis หรือตำแหน่งข้อมูล HTTP ของคุณเพื่อการเรียกใช้ตามเนื้อหาของข้อความ ดูที่เอกสารประกอบสำหรับการเริ่มต้นใช้งาน WebSocket API ใน API Gateway

ได้ API ทั้งหมดที่สร้างขึ้นด้วย Amazon API Gateway จะแสดงเฉพาะตำแหน่งข้อมูล HTTPS เท่านั้น Amazon API Gateway ไม่รองรับตำแหน่งข้อมูลที่ไม่ได้รับการเข้ารหัส (HTTP) Amazon API Gateway จะกำหนดโดเมนภายในให้กับ API ที่ใช้ใบรับรอง Amazon API Gateway โดยอัตโนมัติเป็นค่าเริ่มต้น เมื่อต้องการกำหนดค่า API ให้ทำงานโดยใช้ชื่อโดเมนแบบกำหนดเอง คุณสามารถให้ใบรับรองของตนเองสำหรับโดเมนนั้น

API ที่สร้างบน Amazon API Gateway สามารถรับเพย์โหลดใดๆ ก็ได้ที่ส่งผ่าน HTTP สำหรับ HTTP API, REST API และ WebSocket API รูปแบบข้อมูลทั่วไป ได้แก่ JSON, XML, พารามิเตอร์สตริงการสืบค้น และส่วนหัวของคำขอ คุณสามารถประกาศประเภทเนื้อหาใดๆ สำหรับการตอบสนอง API และจากนั้นจึงใช้เทมเพลตการแปลงเพื่อเปลี่ยนแปลงการตอบสนองแบ็คเอนด์ในรูปแบบที่ต้องการ

Amazon API Gateway สามารถดำเนินการฟังก์ชัน AWS Lambda ในบัญชีของคุณ เริ่มเครื่องสถานะ AWS Step Functions หรือเรียกใช้ตำแหน่งข้อมูล HTTP ที่โฮสต์ไว้บน AWS Elastic Beanstalk, Amazon EC2 รวมถึงการดำเนินการ HTTP ที่ไม่ได้โฮสต์ไว้บน AWS ที่สามารถเข้าถึงได้ผ่านอินเทอร์เน็ตสาธารณะ API Gteway ยังช่วยให้คุณระบุเทมเพลตการแมปเพื่อสร้างเนื้อหาคงที่ที่สามารถส่งคืนได้ ช่วยให้คุณเลียนแบบ API ของคุณก่อนที่แบ็คเอนด์จะพร้อมใช้งาน คุณยังสามารถผสานรวม API Gateway กับบริการของ AWS อื่นๆ โดยตรง ตัวอย่างเช่น คุณสามารถแสดงวิธีการของ API ใน API Gateway ที่ส่งข้อมูลโดยตรงไปยัง Amazon Kinesis

API Gateway สร้าง SDK แบบกำหนดเองสำหรับการพัฒนาแอปบนอุปกรณ์เคลื่อนที่ด้วย Android และ iOS (Swift และ Objective-C) และสำหรับการพัฒนาแอปบนเว็บด้วย JavaScript API Gateway ยังรองรับการสร้าง SDK สำหรับ Ruby และ Java ด้วย เมื่อกำหนด API และโมเดลใน API Gateway แล้ว คุณสามารถใช้ AWS Console หรือ API ของ API Gateway เพื่อสร้างและดาวน์โหลด SDK ไคลเอ็นต์ SDK ของไคลเอ็นต์จะสร้างขึ้นเพื่อ REST API ใน Amazon API Gateway เท่านั้น

หากต้องการดูว่า HTTP API, REST API และ WebSocket API มีให้เลือกที่ไหน ให้ดูตาราง AWS Region ที่นี่

คุณสามารถกำหนด REST API และทรัพยากรและวิธีการที่เกี่ยวข้อง จัดการรอบการใช้งาน API สร้าง SDK ไคลเอ็นต์ และดูตัววัด API ได้ผ่าน Amazon API Gateway Console คุณยังสามารถใช้ API Gateway Console เพื่อกำหนดแผนการใช้งาน API จัดการคีย์ API ของนักพัฒนา และกำหนดค่าการควบคุมและขีดจำกัดโควตาของคุณ การดำเนินการแบบเดียวกันทั้งหมดพร้อมใช้งานได้ผ่าน API Gateway API

ทรัพยากรเป็นอ็อบเจ็กต์จัดประเภทที่เป็นส่วนหนึ่งของโดเมนของ API ของคุณ แต่ละทรัพยากรอาจเชื่อมโยงกับโมเดลข้อมูล ความสัมพันธ์กับทรัพยากรอื่นๆ และสามารถตอบสนองวิธีการที่แตกต่างกัน คุณยังสามารถกำหนดทรัพยากรเป็นตัวแปรเพื่อสกัดคำขอไปยังทรัพยากรลูกหลายรายการ

แต่ละทรัพยากรภายใน REST API สามารถรองรับวิธีการ HTTP มาตรฐานอย่างน้อยหนึ่งวิธี คุณกำหนดคำกริยาที่แต่ละทรัพยากรควรรองรับ (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS) และการใช้งาน ตัวอย่างเช่น การใช้ GET กับทรัพยากรรถควรส่งคืนรายการของรถ หากต้องการเชื่อมต่อวิธีการทั้งหมดภายในทรัพยากรไปยังตำแหน่งข้อมูลแบ็คเอนด์เดียว API Gateway ยังรองรับวิธีการ “ANY” พิเศษด้วย

แผนการใช้งานช่วยให้คุณประกาศแผนสำหรับนักพัฒนาจากบริษัทอื่นที่จำกัดการเข้าถึงเฉพาะ API บางรายการ กำหนดการควบคุมและขอขีดจำกัดโควตา รวมถึงเชื่อมโยงกับคีย์ API ได้ คุณยังสามารถดึงข้อมูลการใช้สำหรับแต่ละคีย์ API เพื่อวิเคราะห์การใช้ API และสร้างเอกสารการเรียกเก็บเงินได้ ตัวอย่างเช่น คุณสามารถสร้างแผนแบบพื้นฐาน มืออาชีพ และระดับองค์กรได้ โดยคุณสามารถกำหนดค่าแผนการใช้งานพื้นฐานเพื่ออนุมัติคำขอ 1,000 รายการต่อวันและคำขอสูงสุด 5 รายการต่อวินาที (RPS)

ด้วย Amazon API Gateway แต่ละ REST API สามารถมีได้หลายระยะ ระยะมีขึ้นเพื่อช่วยในเรื่องของรอบการใช้งานการพัฒนาของ API ตัวอย่างเช่น หลังจากที่คุณสร้าง API แล้ว ก็สามารถปรับใช้กับระยะการพัฒนา หรือเมื่อคุณพร้อมสำหรับการใช้งานจริง คุณสามารถปรับใช้กับระยะใช้งานจริงได้

ใน Amazon API Gateway ระยะเหมือนกับแท็ก ระยะจะกำหนดเส้นทางที่การปรับใช้งานสามารถเข้าถึงได้ ตัวอย่างเช่น คุณสามารถกำหนดระยะการพัฒนาและปรับใช้ API รถของคุณได้ สามารถเข้าถึงทรัพยากรได้ที่ https://www.myapi.com/dev/cars คุณยังสามารถตั้งค่าชื่อโดเมนแบบกำหนดเองเพื่อชี้ไปที่ระยะโดยตรงเพื่อที่คุณจะไม่ต้องใช้พารามิเตอร์เส้นทางเพิ่มเติม ตัวอย่างเช่น หากคุณชี้ myapi.com โดยตรงไปยังระยะการพัฒนา คุณสามารถเข้าถึงทรัพยากรรถได้ที่ https://www.myapi.com/cars สามารถกำหนดค่าระยะได้โดยใช้ตัวแปรที่สามารถเข้าถึงได้จากการกำหนดค่า API หรือเทมเพลตการแมปของคุณ

ตัวแปรระยะจะช่วยให้คุณกำหนดคู่คีย์/ค่าของค่าการกำหนดค่าที่เชื่อมโยงกับระยะ ค่าเหล่านี้สามารถใช้ในการกำหนดค่า API ของคุณได้เช่นเดียวกับตัวแปรสภาพแวดล้อม ตัวอย่างเช่น คุณสามารถกำหนดค่าตำแหน่งข้อมูล HTTP สำหรับการผสานรวมวิธีการในฐานะตัวแปรระยะ และใช้ตัวแปรในการกำหนดค่า API ของคุณแทนที่เขียนโค้ดตำแหน่งข้อมูลแบบฮาร์ดโค้ด ซึ่งจะช่วยให้คุณใช้ตำแหน่งข้อมูลที่แตกต่างกันสำหรับแต่ละระยะ (เช่น dev, beta, prod) ด้วยการกำหนดค่า API แบบเดียวกัน ตัวแปรระยะยังสามารถเข้าถึงได้ในเทมเพลตการแมปและสามารถใช้เพื่อส่งผ่านพารามิเตอร์การกำหนดค่าไปยังแบ็คเอนด์ Lambda หรือ HTTP ของคุณ

นโยบายทรัพยากรคือเอกสารนโยบาย JSON ที่คุณแนบไปกับ API เพื่อควบคุมผู้ควบคุมที่ระบุ (โดยปกติแล้วคือผู้ใช้หรือบทบาท IAM) ว่าสามารถเรียกใช้ API ได้หรือไม่ คุณสามารถใช้นโยบายทรัพยากรเพื่อให้ผู้ใช้จากบัญชี AWS ที่แตกต่างกันสามารถเข้าถึง API ได้อย่างปลอดภัยหรืออนุญาตให้เรียก API เฉพาะจากช่วงที่อยู่ IP หรือบล็อก CIDR ของแหล่งที่มาที่ระบุ นโยบายทรัพยากรสามารถนำมาใช้กับ REST API ใน Amazon API Gateway

Amazon API Gateway บันทึกประวัติการปรับใช้ของคุณ คุณสามารถย้อนระยะกลับไปยังการปรับใช้ก่อนหน้านี้ ณ เวลาใดก็ได้โดยการใช้ Amazon API Gateway API หรือ Console

ใช่ คุณสามารถใช้เครื่องมือนำเข้า Swagger แบบโอเพนซอร์สเพื่อนำเข้าคำจำกัดความ Swagger API ไปยัง Amazon API Gateway คุณสามารถสร้างและปรับใช้ API ใหม่เช่นเดียวกับอัปเดต API ที่มีอยู่ด้วยเครื่องมือนำเข้า Swagger

คุณสามารถสร้างรายได้จาก API บน API Gateway โดยการเผยแพร่ผลิตภัณฑ์เหล่านี้ใน AWS Marketplace อันดับแรก คุณจะต้องจดทะเบียนเป็นผู้ขายใน AWS Marketplace และส่งแผนการใช้งานบน API Gateway เป็นผลิตภัณฑ์ อ่านที่นี่เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการสร้างรายได้ด้วย API

API Gateway มอบความสามารถในการสร้าง อัปเดต และลบเอกสารประกอบที่เชื่อมโยงกับแต่ละส่วนของ API เช่น วิธีการและทรัพยากร คุณสามารถเข้าถึง API ที่เกี่ยวข้องกับเอกสารประกอบผ่าน AWS SDK, CLI, การเรียกใช้ผ่าน REST หรือโดยการแก้ไขสตริงเอกสารประกอบโดยตรงใน API Gateway Console เอกสารประกอบยังสามารถนำเข้าเป็นไฟล์ Swagger ไม่ว่าจะเป็นส่วนหนึ่งของ API หรือแยกต่างหาก ซึ่งจะช่วยให้คุณเพิ่มหรืออัปเดตเอกสารประกอบโดยไม่รบกวนคำนิยาม API API Gateway สอดคล้องกับข้อกำหนด Open API สำหรับเอกสารประกอบที่นำเข้าจากหรือส่งออกเป็นไฟล์ Swagger REST API ใน API Gateway จะรองรับเอกสารประกอบ

นอกเหนือจากการนำเสนอการสนับสนุนเอกสารประกอบ API ที่สอดคล้องตามมาตรฐานแล้ว API Gateway ยังรองรับการรับช่วงเอกสารซึ่งช่วยให้กำหนดสตริงเอกสารประกอบอีกครั้งได้ง่ายขึ้นและใช้ในหลายๆ ที่ การรับช่วงเอกสารช่วยให้กระบวนการกำหนดเอกสารประกอบ API ง่ายขึ้น และสามารถแปลงเป็นตัวแทนมาตรฐานเมื่อส่งออก API เป็นไฟล์ Swagger

ได้ คุณสามารถใช้นโยบายทรัพยากรกับ API เพื่อจำกัดการเข้าถึงไปยัง Amazon VPC เฉพาะหรือตำแหน่งข้อมูล VPC คุณยังสามารถให้ Amazon VPC หรือตำแหน่งข้อมูล VPC จากการเข้าถึงบัญชีที่แตกต่างกันไปยัง API ส่วนตัวโดยใช้นโยบายทรัพยากร

การรักษาความปลอดภัยและการอนุมัติ

ด้วย Amazon API Gateway คุณสามารถเลือกตั้งค่าวิธีการ API ของคุณเพื่อให้ใช้การอนุมัติ เมื่อตั้งค่าวิธีการเพื่อให้ใช้การอนุมัติแล้ว คุณสามารถใช้ประโยชน์จาก AWS Signature Version 4 หรือผู้อนุมัติ Lambda เพื่อรองรับกลยุทธ์การอนุมัติโทเค็นผู้ถือของตนเองได้

คุณสามารถใช้ข้อมูลการรับรอง AWS ได้แก่ คีย์การเข้าถึงและคีย์ลับ เพื่อลงนามคำขอใช้บริการและอนุมัติการเข้าถึงเช่นเดียวกับบริการของ AWS อื่นๆ การลงนามคำขอ API ของ Amazon API Gateway จะได้รับการจัดการโดย API Gateway SDK แบบกำหนดเองที่สร้างขึ้นสำหรับบริการของคุณ คุณสามารถดึงข้อมูลการรับรองชั่วคราวที่เชื่อมโยงกับบทบาทในบัญชี AWS โดยใช้ Amazon Cognito

ผู้อนุมัติ Lambda คือฟังก์ชัน AWS Lambda คุณจะสามารถอนุมัติการเข้าถึง API โดยใช้กลยุทธ์การอนุมัติโทเค็นผู้ถือ เช่น OAuth ด้วยผู้อนุมัติคำขอแบบกำหนดเอง API Gateway จะตรวจสอบว่าผู้อนุมัติ Lambda ได้รับการกำหนดค่าหรือไม่เมื่อเรียกใช้งาน API จากนั้น API Gateway จะเรียกใช้ฟังก์ชัน Lambda ด้วยโทเค็นการอนุมัติขาเข้า คุณสามารถใช้ Lambda เพื่อใช้กลยุทธ์การอนุมัติที่หลากหลาย (เช่น การตรวจสอบ JWT, การเรียกใช้ผู้ให้บริการ OAuth) ที่ส่งคืนนโยบาย IAM ซึ่งจะนำมาใช้เพื่ออนุมัติคำขอ หากนโยบายที่ผู้อนุมัติส่งคืนถูกต้อง API Gateway จะแคชนโยบายที่เชื่อมโยงกับโทเค็นขาเข้าเป็นเวลาไม่เกิน 1 ชั่วโมง

ใช่ API Gateway สามารถสร้างคีย์ API และเชื่อมโยงกับแผนการใช้งาน การเรียกใช้ที่ได้รับจากแต่ละคีย์ API จะได้รับการเฝ้าติดตามและรวมไว้ใน Amazon CloudWatch Logs ที่คุณสามารถเปิดใช้งานได้สำหรับแต่ละระยะ อย่างไรก็ตาม เราไม่แนะนำให้คุณใช้คีย์ API สำหรับการอนุมัติ คุณควรใช้คีย์ API เพื่อเฝ้าติดตามการใช้ของนักพัฒนาจากบริษัทอื่นและใช้ประโยชน์จากกลไกการอนุมัติที่เข้มงวดมากขึ้น เช่น การเรียกใช้ API แบบลงชื่อหรือ OAuth

API Gateway รองรับการตั้งค่าการควบคุมสำหรับแต่ละเมธอดหรือเส้นทางใน API ของคุณ คุณสามารถตั้งค่าขีดจำกัดอัตรามาตรฐานและขีดจำกัดอัตราการเพิ่มอย่างรวดเร็วต่อวินาทีสำหรับแต่ละเมธอดใน REST API และแต่ละเส้นทางใน WebSocket API ของคุณ นอกจากนี้ API Gateway ยังปกป้องระบบแบ็คเอนด์ของคุณจากการโจมตีโดยปฏิเสธการให้บริการ (DDoS) ไม่ว่าจะเป็นการโจมตีจากคำขอปลอมแปลง (เลเยอร์ 7) หรือการโจมตีแบบ SYN Flood (เลเยอร์ 3)

ใช่ Amazon API Gateway สามารถสร้างใบรับรอง SSL ฝั่งไคลเอ็นต์และทำให้คีย์สาธารณะของใบรับรองดังกล่าวพร้อมใช้งานสำหรับคุณ สามารถเรียกใช้ไปยังแบ็คเอนด์ได้ด้วยใบรับรองที่สร้างขึ้น และคุณสามารถตรวจสอบการเรียกใช้ที่เกิดขึ้นจาก Amazon API Gateway โดยใช้คีย์สาธารณะของใบรับรองดังกล่าว

ใช่ เกตเวย์ของ Amazon API ผสานรวมกับ AWS CloudTrail เพื่ให้คุณมีประวัติการเปลี่ยนแปลง REST API ของคุณอย่างครบถ้วน การเรียกใช้ API ทั้งหมดส่งมายัง API ของ Amazon API Gateway เพื่อสร้าง แก้ไข ลบ หรือปรับใช้ REST API จะบันทึกไปยัง CloudTrail ในบัญชี AWS ของคุณ

คุณสามารถกำหนดพร็อกซีคำขอไปยังทรัพยากร HTTP/HTTPS ของแบ็คเอนด์ที่ใช้งานใน Amazon VPC โดยการตั้งค่าการผสานรวมแบบส่วนตัวโดยใช้ลิงก์ VPC ใน Amazon API Gateway ใบรับรอง SSL ฝั่งไคลเอ็นต์ใน Amazon API Gateway สามารถใช้เพื่อยืนยันว่า API Gateway ส่งคำขอไปยังระบบแบ็คเอนด์ของคุณโดยใช้คีย์สาธารณะของใบรับรองดังกล่าว คุณยังสามารถสร้าง API ส่วนตัวใน Amazon API Gateway ซึ่งสามารถเข้าถึงได้โดยทรัพยากรภายใน Amazon VPC ของคุณผ่านตำแหน่งข้อมูล Amazon VPC

ได้ คุณสามารถใช้นโยบายทรัพยากรกับ API เพื่อจำกัดการเข้าถึงไปยัง Amazon VPC เฉพาะหรือตำแหน่งข้อมูล VPC คุณยังสามารถให้ Amazon VPC หรือตำแหน่งข้อมูล VPC จากการเข้าถึงบัญชีที่แตกต่างกันไปยัง API ส่วนตัวโดยใช้นโยบายทรัพยากร

หากคุณใช้ REST API คุณสามารถตั้งค่าการกระจาย CloudFront ด้วยใบรับรอง SSL แบบกำหนดเองในบัญชีของคุณและใช้กับ API ระดับภูมิภาคใน API Gateway จากนั้นคุณสามารถกำหนดค่านโยบายการรักษาความปลอดภัยสำหรับการกระจาย CloudFront ด้วย TLS 1.1 หรือสูงกว่าโดยอิงจากข้อกำหนดด้านความปลอดภัยและการปฏิบัติตาม

การจัดการ ตัววัด และการบันทึก

Amazon API Gateway บันทึกการเรียกใช้ API เวลาแฝง และอัตราข้อผิดพลาดไปยัง Amazon CloudWatch ในบัญชี AWS ของคุณ ตัววัดยังพร้อมใช้งานได้ผ่าน Amazon API Gateway Console ในแดชบอร์ด REST API API Gateway ยังวัดระดับการใช้โดยนักพัฒนาจากบริษัทอื่น โดยข้อมูลพร้อมใช้งานใน API Gateway Console และผ่าน API

ได้ Amazon API Gateway ส่งข้อมูลบันทึกและตัววัดไปยัง Amazon CloudWatch คุณสามารถใช้คอนโซล Amazon CloudWatch เพื่อตั้งค่าการแจ้งเตือนแบบกำหนดเองได้

Amazon API Gateway จะเฝ้าติดตามปริมาณการใช้ที่ระดับ REST API เป็นค่าเริ่มต้น คุณสามารถเลือกเปิดใช้งานตัววัดรายละเอียดสำหรับแต่ละวิธีการใน REST API ของคุณจาก API กำหนดค่าการปรับใช้หรือหน้าจอ Console ตัววัดที่ละเอียดจะได้รับการบันทึกไว้ใน Amazon CloudWatch และจะเรียกเก็บค่าบริการในอัตรา CloudWatch

ใช่ กำหนดรายละเอียดของตัววัดโดย REST API และระยะ นอกจากนี้ คุณสามารถเปิดใช้งานตัววัดสำหรับแต่ละวิธีการใน REST API ของคุณ

ใช่ Amazon API Gateway ผสานรวมกับ Amazon CloudWatch Logs คุณสามารถเลือกเปิดใช้งานการบันทึกสำหรับแต่ละระยะใน API สำหรับแต่ละเมธอดใน REST API คุณสามารถตั้งค่าปริมาณข้อมูลในการเก็บบันทึก และกำหนดได้ว่าควรบันทึกข้อมูลคำขอและการตอบกลับแบบเต็มหรือไม่

บันทึก การแจ้งเตือน อัตราข้อผิดพลาด และตัววัดอื่นๆ จะได้รับการจัดเก็บใน Amazon CloudWatch และพร้อมใช้งานได้แบบเรียลไทม์

การควบคุมและการแคช

Amazon API Gateway ให้การควบคุมในหลายระดับรวมทั้งระดับส่วนกลางและโดยการเรียกใช้บริการ สามารถตั้งค่าขีดจำกัดการควบคุมสำหรับอัตรามาตรฐานและการเพิ่มอย่างรวดเร็ว ตัวอย่างเช่น เจ้าของ API สามารถตั้งค่าขีดจำกัดอัตราคำขอ 1,000 รายการต่อวินาทีสำหรับวิธีการเฉพาะใน REST API และยังกำหนดค่า Amazon API Gateway เพื่อจัดการคำขอที่เพิ่มอย่างรวดเร็ว 2,000 รายการต่อวินาทีเป็นเวลาสองสามวินาที Amazon API Gateway ติดตามจำนวนคำขอต่อวินาที คำขอใดๆ ที่เกินขีดจำกัดจะได้รับการตอบสนองแบบ 429 HTTP SDK ไคลเอ็นต์ (ยกเว้น Javascript) ที่สร้างโดย Amazon API Gateway จะพยายามเรียกใช้อีกครั้งโดยอัตโนมัติเมื่อพบกับการตอบสนองนี้

ใช่ คุณสามารถตั้งค่าขีดจำกัดการควบคุมสำหรับแต่ละคีย์ API ด้วยแผนการใช้งาน

การควบคุมช่วยให้แน่ใจว่าปริมาณการใช้ API ได้รับการควบคุมเพื่อช่วยให้บริการแบ็คเอนด์รักษาประสิทธิภาพและความพร้อมใช้งานได้

สามารถตั้งค่าขีดจำกัดอัตราการควบคุมที่ระดับวิธีการ คุณสามารถแก้ไขขีดจำกัดการควบคุมในการตั้งค่าวิธีการผ่าน API ของ Amazon API Gateway หรือใน Amazon API Gateway Console

การควบคุมการตั้งค่าที่เกี่ยวข้องของ API Gateway ใช้ในลำดับดังต่อไปนี้ 1) ต่อไคลเอนต์ต่อการจำกัดการควบคุมตามวิธีซึ่งคุณตั้งค่าไว้สำหรับขั้นตอน API ในแผนการใช้ 2) ต่อไคลเอนต์ต่อการจำกัดการควบคุมที่คุณตั้งค่าไว้ในแผนการใช้ 3) ค่าเริ่มต้นต่อการจำกัดตามวิธีและจำแนกย่อยต่อการจำกัดตามวิธีที่คุณตั้งค่าไว้ในการตั้งค่าการใช้ API 4) การควบคุมระดับบัญชีต่อรีเจี้ยน

ใช่ คุณสามารถเพิ่มการแคชไปยังการเรียกใช้ API โดยการจัดเตรียมแคช API Gateway และระบุขนาดเป็นกิกะไบต์ แคชได้รับการจัดเตรียมไว้สำหรับระยะเฉพาะของ API ของคุณ ซึ่งช่วยปรับปรุงประสิทธิภาพและลดปริมาณการใช้ที่ส่งไปยังแบ็คเอนด์ของคุณ การตั้งค่าแคชช่วยให้คุณควบคุมวิธีการสร้างคีย์แคชและเวลาในการคงอยู่ (TTL) ของข้อมูลที่จัดเก็บสำหรับแต่ละเมธอด API Gateway ยังแสดง API การจัดการที่ช่วยให้คุณหักล้างแคชสำหรับแต่ละระยะ การแคชมีให้บริการสำหรับ REST API ใน API Gateway

หากไม่ได้เปิดใช้งานการแคชและใช้ขีดจำกัดการควบคุมไว้ คำขอทั้งหมดจะส่งผ่านไปยังบริการแบ็คเอนด์ของคุณจนกว่าจะถึงขีดจำกัดการควบคุมของระดับบัญชี หากมีการใช้ขีดจำกัดที่ควบคุม Amazon API Gateway จะกำจัดจำนวนคำขอที่จำเป็นและส่งเฉพาะขีดจำกัดที่กำหนดไว้ไปยังบริการแบ็คเอนด์ของคุณ หากกำหนดการแคชไว้แล้ว Amazon API Gateway จะส่งคืนการตอบสนองที่แคชไว้สำหรับคำขอที่ซ้ำกันสำหรับเวลาที่สามารถปรับแต่งได้ แต่ต้องอยู่ภายใต้ขีดจำกัดการควบคุมที่กำหนดค่า ความสมดุลระหว่างแบ็คเอนด์กับไคลเอ็นต์ก่อให้เกิดประสิทธิภาพสูงสุดของ API สำหรับแอปพลิเคชันที่สนับสนุน คำขอที่ถูกควบคุมจะได้รับการเรียกซ้ำโดยอัตโนมัติโดย SDK ฝั่งไคลเอ็นต์ที่สร้างโดย Amazon API Gateway ตามค่าเริ่มต้น Amazon API Gateway จะไม่ตั้งค่าการแคชใดๆ ในเมธอด API ของคุณ

Amazon API Gateway ทำหน้าที่เป็นพร็อกซีสำหรับการดำเนินการแบ็คเอนด์ที่คุณได้กำหนดค่าไว้ Amazon API Gateway จะปรับขนาดโดยอัตโนมัติเพื่อจัดการกับปริมาณการใช้ที่ API ของคุณได้รับ Amazon API Gateway ไม่จำกัดหรือควบคุมคำขอร้องไปยังการดำเนินการแบ็คเอนด์ของคุณโดยพลการและคำขอทั้งหมดที่ไม่ได้รับการสกัดกั้นโดยการตั้งค่าการควบคุมและการแคชใน Amazon API Gateway Console จะส่งไปยังการดำเนินการแบ็คเอนด์ของคุณ

การเก็บค่าบริการ

Amazon API Gateway คิดค่าบริการต่อการเรียกใช้ API หนึ่งล้านครั้ง บวกค่าบริการถ่ายโอนข้อมูลออกซึ่งคิดเป็นกิกะไบต์ จะมีการใช้อัตรารายชั่วโมงหากคุณเลือกที่จะจัดเตรียมแคชสำหรับ API ค่าบริการ API Gateway จะขึ้นอยู่กับข้อความที่ส่งและรับ และจำนวนนาทีที่ไคลเอ็นต์เชื่อมต่อกับ API สำหรับ WebSocket API โปรดดูข้อมูลเกี่ยวกับการเรียกใช้ API การถ่ายโอนข้อมูล และค่าใช้จ่ายการแคชต่อรีเจี้ยนที่หน้าราคาสำหรับเกตเวย์ของ API

เจ้าของ API จะถูกเรียกเก็บเงินสำหรับการเรียกใช้ API ของตนเองบน API Gateway

ใช่ การเรียกใช้ API จะนับอย่างเท่าเทียมกันสำหรับการคิดค่าบริการไม่ว่าการตอบสนองจะได้รับการจัดการโดยการดำเนินการแบ็คเอนด์ของคุณหรือการดำเนินการแคชของ Amazon API Gateway

WebSocket API

การกำหนดเส้นทาง WebSocket ใน Amazon API Gateway จะนำมาใช้เพื่อการวางเส้นทางข้อความไปยังการผนวกที่เฉพาะเจาะจงอย่างถูกต้อง คุณระบุคีย์การกำหนดเส้นทางและการผสานการทำงานของแบ็คเอนด์ที่จะถูกเรียกใช้เมื่อกำหนด WebSocket API คีย์การกำหนดเส้นทางคือคุณลักษณะในเนื้อหาข้อความ คุณยังสามารถตั้งค่าการผนวกรวมแบบเริ่มต้นสำหรับคีย์การกำหนดเส้นทางที่ไม่ตรงกัน ดูที่เอกสารประกอบเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการกำหนดเส้นทาง

เมื่อมีไคลเอ็นต์ใหม่ที่เชื่อมต่อกับ WebSocket API จะมีการสร้าง URL ที่เฉพาะเจาะจงให้กับไคลเอ็นต์ดังกล่าว เรียกว่า URL การติดต่อกลับ คุณสามารถใช้ URL การติดต่อกลับนี้เพื่อส่งข้อความถึงไคลเอ็นต์จากบริการแบ็คเอนด์ได้

เมื่อใช้ Amazon API Gateway คุณสามารถใช้บทบาท IAM และนโยบาย หรือผู้อนุมัติ AWS Lambda เพื่ออนุมัติการเข้าถึง WebSocket API ของคุณ

เมื่อไคลเอ็นต์เชื่อมต่อหรือขาดการเชื่อมต่อ ข้อความจะถูกส่งจากบริการ Amazon API Gateway ไปยังฟังก์ชัน AWS Lambda แบ็คเอนด์หรือตำแหน่ง HTTP โดยใช้เส้นทาง $connect และ $disconnect คุณสามารถเลือกดำเนินการที่เหมาะสม เช่น เพิ่มหรือลบไคลเอ็นต์จากรายชื่อผู้ใช้ที่เชื่อมต่อ

คุณสามารถใช้ เมธอด GET URL การติดต่อกลับบนการเชื่อมต่อเพื่อระบุว่าไคลเอ็นต์ยังคงเชื่อมต่อกับ WebSocket อยู่หรือไม่ ดูที่เอกสารประกอบเกี่ยวกับการใช้ URL การติดต่อกลับ

ได้ คุณสามารถตัดการเชื่อมต่อของไคลเอ็นต์ที่เชื่อมต่ออยู่จากบริการแบ็คเอนด์โดยใช้ URL การติดต่อกลับ

ขนาดข้อความสูงสุดที่รองรับคือ 128 KB ดูที่เอกสารประกอบสำหรับขีดจำกัดอื่นๆ ที่เกี่ยวข้องกับ WebSocket API

คุณจะถูกเรียกเก็บค่าบริการจาก 2 ตัววัด: นาทีที่เชื่อมต่อและข้อความ

นาทีที่เชื่อมต่อ: จำนวนนาทีทั้งหมดที่ไคลเอ็นต์หรืออุปกรณ์เชื่อมต่อกับ WebSocket (ปัดเป็นนาที)

ข้อความ: จำนวนข้อความทั้งหมดที่ส่งไปและได้รับจากไคลเอ็นต์ที่เชื่อมต่อ การคิดค่าบริการสำหรับข้อความจะเป็นไปตามส่วนเพิ่มครั้งละ 32 KB ดูที่หน้าราคาสำหรับรายละเอียดเกี่ยวกับราคาและตัวอย่างของ WebSocket API

ไม่ ถ้าข้อความบนการเชื่อมต่อ WebSocket ไม่ผ่านการตรวจสอบสิทธิ์หรือการอนุมัติ ข้อความเหล่านั้นจะไม่ถูกนำมาคิดค่าใช้บริการ API