View a markdown version of this page

Tahapan API REST API Gateway Amazon sebagai target - Batu Dasar Amazon AgentCore

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tahapan API REST API Gateway Amazon sebagai target

Target API REST API Gateway menghubungkan gateway Anda ke https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-stages.html tahap REST API Anda. Gateway menerjemahkan permintaan MCP masuk ke permintaan HTTP ke REST API Anda dan menangani pemformatan respons. Saat Anda menambahkan atau memperbarui target API Gateway, AgentCore Gateway memanggil API Gateway GetExport API atas nama Anda.

Anda dapat menentukan filter alat dan penggantian alat dalam konfigurasi target Anda. Filter alat memungkinkan Anda membuat jalur sumber daya tertentu dan kombinasi metode HTTP tersedia sebagai alat di gateway Anda. Filter ini membuat daftar izinkan yang hanya menampilkan operasi yang Anda tentukan sebagai alat.

Anda juga dapat mengonfigurasi tahap API REST API Gateway sebagai target gateway dari konsol API Gateway. Untuk mempelajari selengkapnya, lihat Men ambahkan stage ke AgentCore gateway di dokumentasi Amazon API Gateway.

Pertimbangan dan batasan utama

Saat menggunakan tahap API REST API Gateway sebagai target, ingatlah persyaratan dan batasan berikut:

  • API Anda harus berada di akun yang sama dengan AgentCore Gateway Anda.

  • API Anda harus berada di Wilayah yang sama dengan AgentCore Gateway Anda.

  • API Anda harus berupa API REST API Gateway. Kami tidak mendukung API atau API HTTP Gateway WebSocket API.

  • API Anda harus dikonfigurasi dengan tipe titik akhir publik. Titik akhir pribadi tidak didukung. Untuk membuat Target Gateway yang dapat mengakses sumber daya di VPC Anda, Anda harus menggunakan titik akhir publik dan integrasi pribadi Gateway API.

  • Jika REST API Anda memiliki metode yang menggunakan AWS_IAM otorisasi dan memerlukan kunci API, AgentCore Gateway tidak akan mendukung metode ini. Ini akan dikecualikan dari pemrosesan.

  • Jika API Anda menggunakan sumber daya proxy, seperti/pets/{proxy+}, AgentCore Gateway tidak akan mendukung metode ini.

  • Untuk mengatur Target Gateway API Anda, AgentCore Gateway memanggil API Gateway GetExport API atas nama Anda untuk mendapatkan ekspor berformat OpenAPI 3.0 dari Definisi REST API Anda. Untuk detail selengkapnya tentang hal ini dan bagaimana hal itu dapat memengaruhi konfigurasi Target Anda, lihat Ek spor Gateway API.

Konfigurasi Alat Gateway API

Saat menambahkan API REST API Gateway sebagai target gateway, Anda perlu menyediakan konfigurasi alat API Gateway. Konfigurasi alat API Gateway menentukan operasi mana dari REST API Anda yang diekspos sebagai alat. Ini memerlukan daftar filter alat untuk memilih operasi yang akan diekspos, dan secara opsional menerima penggantian alat untuk menyesuaikan metadata alat seperti nama dan deskripsi alat.

Alat Filter

Filter alat memungkinkan Anda memilih operasi REST API menggunakan kombinasi jalur dan metode. Setiap filter mendukung 2 strategi pencocokan jalur:

  • Jalur eksplisit — Cocokkan satu jalur tertentu, seperti /pets/{petId}

  • Jalur wildcard — Cocokkan semua jalur yang dimulai dengan awalan yang ditentukan, seperti /pets/ *

Setiap filter menentukan jalur dan daftar metode HTTP. Filter menyelesaikan kombinasi yang cocok yang ada di API Anda. Beberapa filter dapat tumpang tindih dan duplikat secara otomatis dide-duplikasi.

Penggantian Alat

Secara default, nama alat MCP diambil dari kombinasi jalur dan metode operationId untuk setiap jalur dan metode yang cocok dengan filter Anda. Jika tidak ada keco operationId cokan untuk filter, Anda memerlukan penggantian alat yang sesuai yang memberikan nama. Jika nama peng operationId gantian dan nama penggantian hilang, pembuatan dan pembaruan target akan gagal divalidasi. Untuk informasi selengkapnya tentang nama alat di AgentCore Gateway, lihat Memahami bagaimana alat AgentCore Gateway diberi nama.

Penggantian alat bersifat opsional. Mereka memungkinkan Anda untuk menyesuaikan nama alat atau deskripsi untuk operasi tertentu setelah pemfilteran. Setiap override harus menentukan jalur eksplisit dan metode HTTP tunggal. Wildcard tidak didukung. Penggantian harus cocok dengan operasi yang ada di API Anda dan harus sesuai dengan salah satu operasi yang diselesaikan oleh filter Anda. Anda tidak dapat mengganti operasi yang tidak dipilih. Jika Anda mengalami kesalahan dengan impor dari operasi tanpa, operationId Anda dapat menggunakan penggantian alat sebagai gantinya.

Contoh konfigurasi alat API Gateway

Contoh konfigurasi alat API Gateway berikut menunjukkan cara menggunakan filter dan penggantian. Semua contoh menggunakan API dengan jalur dan metode berikut:

/pets/{petId} - GET /pets/{petId} - POST /pets/{petId} - OPTIONS /pets - GET /pets - OPTIONS / - GET

Jalur kartu liar dan daftar metode

Konfigurasi alat:

{ "filterPath": "/pets/*", "methods": ["GET", "POST"] }

Hasil

  • GET /pets/{petId}

  • POST /pets/{petId}

Jalur eksplisit dan daftar metode

Konfigurasi alat:

{ "filterPath": "/pets/{petId}", "methods": ["GET", "POST"] }

Hasil

  • GET /pets/{petId}

  • POST /pets/{petId}

Jalur eksplisit dan daftar metode eksplisit (paling spesifik)

Konfigurasi alat:

{ [ { "filterPath": "/pets/{petId}", "methods": ["POST"] }, { "filterPath": "/pets/{petId}", "methods": ["GET"] } ] }

Hasil

  • GET /pets/{petId}

  • POST /pets/{petId}

Campur dan cocokkan jalur eksplisit dan wildcard:

Konfigurasi alat:

{ [ { "filterPath": "/pets/{petId}", "methods": ["GET"] }, { "filterPath": "/*", "methods": ["GET"] } ] }

Hasil

  • GET /pets/{petId}

  • GET /pets/

Filter alat dan penggantian alat

Anda dapat menyediakan filter alat dan menambahkan penggantian. Penggantian menentukan jalur sumber daya di REST API, seperti /pets, dan metode HTTP untuk mengekspos untuk jalur yang ditentukan. Penggantian harus secara eksplisit cocok dengan jalur yang ada di REST API.

Konfigurasi Alat

{ "toolFilters": [ { "filterPath": "/pets/*", "methods": ["GET", "POST"] }, { "filterPath": "/", "methods": ["GET"] } ], "toolOverrides": [ { "path": "/pets/{petId}", "method": "GET", "name": "GetPetById", "description": "Retrieve a specific pet by its ID" } ] }

Hasil

  • GET /pets/{petId}— dicocokkan dengan yang pertamatoolFilter, tetapi nama dan deskripsi akan diganti berdasarkan entri di toolOverrides

  • POST /pets/{petId}— dicocokkan dengan toolFilter yang pertama tetapi akan menggunakan operationId dan description dari spesifikasi OpenAPI yang diekspor untuk nama dan deskripsi alat

  • GET /— dicocokkan dengan filter alat eksplisit kedua yang memberi nama jalur dan metode tunggal

Ekspor API Gateway

Untuk mengatur target API Gateway, AgentCore Gateway memanggil GetExport operasi untuk API Gateway atas nama Anda untuk mendapatkan ekspor definisi API yang diformat OpenAPI 3.0. Ini membantu gateway menerjemahkan permintaan MCP yang masuk dengan benar ke dalam permintaan HTTP dan menangani respons. Berikut ini adalah pertimbangan ketika AgentCore Gateway memanggil GetExport operasi:

  • Per GetExport mintaan dibuat dengan menggunakan Sesi Ak ses Teruskan dan menggunakan kredenSIAL pemanggil.

    • Pemanggil yang membuat target harus memiliki izin untuk memanggil API GetExport di API Gateway.

    • Per GetExport mintaan akan masuk CloudTrail.

  • API yang diekspor tunduk pada per timbangan dan batasan yang sama dengan tipe target OpenAPI.

  • Ukuran maksimum spesifikasi OpenAPI yang diekspor dari API Gateway adalah 50 MB.

Memperbarui OperationId di REST API Anda

penting

Spesifikasi OpenAPI yang diekspor harus menyertakan operationId bidang untuk semua operasi yang ingin Anda ekspos sebagai alat. operationIdIni digunakan sebagai nama alat dalam antarmuka MCP.

Anda dapat memperbarui REST API Anda untuk memastikan bahwa definisi OpenAPI yang dikembalikan oleh GetExport telah operationId ditetapkan. Ini adalah alternatif untuk menyediakan penggantian alat. Berikut ini menjelaskan 2 cara untuk mengaturoperationId.

Mengatur OperationId dengan memperbarui definisi OpenAPI Anda

Ekspor definisi OpenAPI dari tahap API yang Anda gunakan dengan memanggil GetExport, memperbarui operasi yang hilangoperationId, dan mengimpor ulang API Anda.

  1. Ekspor definisi OpenAPI dari tahap API yang Anda gunakan dengan memanggil GetExport. Anda dapat melakukan ini dengan CLI:

    aws apigateway get-export \ --rest-api-id rest-api-id \ --stage-name api-stage \ --export-type oas30 \ --parameters 'extensions=apigateway' \ '/path/to/api_oas30_template.json'
  2. Edit definisi OpenAPI secara manual untuk menambahkan operasi operationId ke yang kehilangan properti.

  3. Impor definisi OpenAPI Anda yang diperbarui dengan PutRestApi. Anda dapat melakukan ini dengan AWS CLI:

    aws apigateway put-rest-api \ --rest-api-id rest-api-id \ --mode merge \ --body 'fileb:///path/to/api_oas30_template.json'
  4. Menyebarkan kembali API Anda ke panggung Anda dengan AWS CLI:

    aws apigateway create-deployment \ --rest-api-id rest-api-id \ --stage-name api-stage \ --description 'deployment-description'

Tetapkan Oper ationId dengan memperbarui metode REST API Anda

Anda dapat mengonfigurasi Metode Gateway API Anda untuk menambahkan operationName menggunakan UpdateMethod perintah. Saat API Anda diekspor, operationName berubah menjadioperationId.

  1. Hubun UpdateMethod gi dengan AWS CLI:

    aws apigateway update-method \ --rest-api-id rest-api-id \ --resource-id resource-id \ --http-method http-method \ --patch-operations '[ { "op": "replace", "path": "/operationName", "value": operation-id } ]'
  2. Menyebarkan kembali API Anda ke panggung Anda dengan AWS CLI:

    aws apigateway create-deployment \ --rest-api-id rest-api-id \ --stage-name api-stage \ --description 'deployment-description'

Metode otorisasi keluar yang didukung untuk API Gateway API

Anda dapat mengonfigurasi target AgentCore Gateway untuk melakukan panggilan ke API Anda dengan otentikasi keluar.

AgentCore Gateway mendukung jenis otorisasi keluar berikut untuk Target Gateway API:

  • IAM-based otorisasi keluar — Gunakan peran layanan gateway untuk mengotentikasi akses ke target gateway dengan Sig nature Version 4 (SIGv4 atau SIGv4a). Memerlukan API Gateway API Anda agar otorisasi IAM diaktifkan.

  • Kunci API — panggil API Anda dengan kunci API yang dikelola oleh AgentCore Gateway. Ini tidak sama dengan kunci API di API Gateway.

  • Tidak ada otorisasi (tidak disarankan) - Beberapa jenis target memberi Anda opsi untuk melewati otorisasi keluar.

Untuk mempelajari selengkapnya, lihat Menyiapkan otorisasi keluar untuk gateway Anda.

Otorisasi keluar IAM

API Gateway memungkinkan Anda mengamankan REST API Anda dengan IAM. Ketika otorisasi IAM diaktifkan, klien harus menggunakan Tanda Tangan Versi 4 (SIGv4 atau SIGV4a) untuk menandatangani permintaan mereka dengan kredenSIAL. AWS

Cara mengatur otorisasi keluar IAM

  1. Buat peran IAM dengan izin kepercayaan yang benar sesuai dengan izin peran layanan AgentCore Gateway.

  2. Tambahkan kebijakan ke peran Anda untuk mengizinkan tindakan execute-api:Invoke bersama dengan sumber daya yang sesuai dengan ID REST API dan Stage yang Anda gunakan untuk mengatur target, seperti kebijakan berikut:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "execute-api:Invoke" ], "Resource": "arn:aws:execute-api:aws-region:account-id:rest-api-id/api-stage/*/*", "Effect": "Allow" } ] }

Kebijakan sumber daya API Gateway

Kebijakan sumber daya API Gateway adalah dokumen kebijakan JSON yang Anda lampirkan ke API Gateway REST API untuk mengontrol apakah prinsipal tertentu dapat memanggil API. Agar AgentCore Gateway dapat memanggil REST API Anda dengan kebijakan sumber daya, Anda harus melakukan hal berikut:

  • Setel jenis otorisasi metode AWS_IAM untuk setiap metode REST API yang Anda sediakan sebagai alat.

  • Konfigurasikan kebijakan sumber daya Anda untuk mengiz bedrock-agentcore.amazonaws.com inkan kepala sekolah memanggil layanan Anda. Anda dapat menambahkan prinsipal tambahan ke kebijakan.

Berikut ini adalah contoh kebijakan sumber daya API yang memberikan akses AgentCore Gateway ke REST API Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:us-west-2:111122223333:abcd123/*/*/*", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:gateway/my-gateway-d4jrgkaske" } } } ] }

Otorisasi keluar kunci API

Untuk mengatur otorisasi keluar dengan kunci API, Anda menggunakan layanan AgentCore Identitas untuk membuat penyedia kredensia dan dengan kunci API yang telah Anda konfigurasikan melalui API Gateway.

Cara mengatur otorisasi keluar kunci API

  1. Buat Kunci API di API Gateway sesuai dengan Mengatur kunci API untuk REST API di API Gateway.

  2. Ikuti langkah-langkah untuk Meng atur otorisasi keluar dengan kunci API, menyediakan kunci API yang Anda buat melalui API Gateway.