Siapkan API Gateway API dengan integrasi pribadi menggunakan AWS CLI - APIGerbang Amazon

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

Siapkan API Gateway API dengan integrasi pribadi menggunakan AWS CLI

Tutorial berikut menunjukkan cara menggunakan AWS CLI untuk membuat VPC link dan integrasi pribadi. Prasyarat berikut diperlukan:

Untuk mengatur API dengan integrasi pribadi menggunakan AWS CLI
  1. create-vpc-linkPerintah berikut membuat VpcLink penargetan Network Load Balancer yang ditentukan.

    aws apigateway create-vpc-link \ --name my-test-vpc-link \ --target-arns arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-vpclink-test-nlb/1234567890abcdef

    Output dari perintah ini mengakui penerimaan permintaan dan menunjukkan PENDING status untuk yang VpcLink sedang dibuat.

    { "status": "PENDING", "targetArns": [ "arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-vpclink-test-nlb/1234567890abcdef" ], "id": "gim7c3", "name": "my-test-vpc-link" }

    Dibutuhkan 2-4 menit bagi API Gateway untuk menyelesaikan pembuatanVpcLink. Ketika operasi selesai dengan sukses, status adalahAVAILABLE. Anda dapat memverifikasi ini dengan memanggil get-vpc-linkperintah berikut:

    aws apigateway get-vpc-link --vpc-link-id gim7c3

    Jika operasi gagal, Anda mendapatkan FAILED status, dengan statusMessage berisi pesan kesalahan. Misalnya, jika Anda mencoba membuat VpcLink dengan Network Load Balancer yang sudah dikaitkan dengan VPC titik akhir, Anda mendapatkan yang berikut di properti: statusMessage

    "NLB is already associated with another VPC Endpoint Service"

    Setelah berhasil VpcLink dibuat, Anda dapat membuat API dan mengintegrasikannya dengan VPC sumber daya melaluiVpcLink.

    Perhatikan id nilai yang baru dibuatVpcLink. Dalam contoh output ini, itugim7c3. Anda membutuhkannya untuk mengatur integrasi pribadi.

  2. create-rest-apiPerintah berikut membuat sumber RestApidaya API Gateway:

    aws apigateway create-rest-api --name 'My VPC Link Test'

    Perhatikan nilai dan id rootResourceId nilai RestApi RestApi's dalam hasil yang dikembalikan. Anda memerlukan nilai ini untuk melakukan operasi lebih lanjut padaAPI.

    Untuk tujuan ilustrasi, kita akan membuat GET metode API dengan hanya pada sumber daya root (/) dan mengintegrasikan metode dengan. VpcLink

  3. Siapkan GET / metode. Gunakan perintah put-method berikut dan masukkan Id as rest-api-id dan rootResourceId as: resource-id

    aws apigateway put-method \ --rest-api-id abcdef123 \ --resource-id skpp60rab7 \ --http-method GET \ --authorization-type "NONE"

    Jika Anda tidak menggunakan integrasi proxy denganVpcLink, Anda juga harus menyiapkan setidaknya respons metode kode 200 status. Kami akan menggunakan integrasi proxy di sini.

  4. Setelah Anda membuat GET / metode, Anda mengatur integrasi. Untuk integrasi pribadi, Anda menggunakan connection-id parameter untuk memberikan VpcLink ID. Anda dapat menggunakan variabel tahap atau langsung memasukkan VpcLink ID. uriParameter ini tidak digunakan untuk merutekan permintaan ke titik akhir Anda, tetapi digunakan untuk mengatur Host header dan untuk validasi sertifikat.

    Use the VPC link ID

    Perintah put-integration berikut menggunakan VpcLink ID langsung dalam integrasi:

    aws apigateway put-integration \ --rest-api-id abcdef123 \ --resource-id skpp60rab7 \ --uri 'http://my-vpclink-test-nlb-1234567890abcdef.us-east-2.amazonaws.com' \ --http-method GET \ --type HTTP_PROXY \ --integration-http-method GET \ --connection-type VPC_LINK \ --connection-id gim7c3
    Use a stage variable

    Perintah put-integration berikut menggunakan variabel stage untuk referensi ID VPC link. Saat Anda menerapkan API ke panggung, Anda mengatur ID VPC tautan.

    aws apigateway put-integration \ --rest-api-id abcdef123 \ --resource-id skpp60rab7 \ --uri 'http://my-vpclink-test-nlb-1234567890abcdef.us-east-2.amazonaws.com' \ --http-method GET \ --type HTTP_PROXY \ --integration-http-method GET \ --connection-type VPC_LINK \ --connection-id "\${stageVariables.vpcLinkId}"

    Pastikan untuk mengutip dua kali ekspresi variabel tahap (${stageVariables.vpcLinkId}) dan melarikan diri dari $ karakter.

    Kapan pun, Anda juga dapat memperbarui integrasi untuk mengubahconnection-id. Perintah update-integration berikut menunjukkan cara memperbarui integrasi Anda:

    aws apigateway update-integration \ --rest-api-id abcdef123 \ --resource-id skpp60rab7 \ --http-method GET \ --patch-operations '[{"op":"replace","path":"/connectionId","value":"${stageVariables.vpcLinkId}"}]'

    Pastikan untuk menggunakan JSON daftar stringified sebagai nilai parameter. patch-operations

    Karena kami menggunakan integrasi proxy pribadi, Anda sekarang API siap untuk penerapan dan untuk uji coba. Dengan integrasi non-proxy, Anda juga harus mengatur respons metode dan respons integrasi, seperti yang Anda lakukan saat menyiapkan integrasi API dengan HTTP kustom.

  5. Jika Anda menggunakan variabel tahap untuk menentukanconnection-id, Anda perlu menerapkan untuk API mengujinya. Perintah create-deployment berikut menunjukkan cara menerapkan variabel stage AndaAPI:

    aws apigateway create-deployment \ --rest-api-id abcdef123 \ --stage-name test \ --variables vpcLinkId=gim7c3

    Untuk memperbarui variabel stage dengan VpcLink ID yang berbeda, sepertiasf9d7, panggil perintah update-stage:

    aws apigateway update-stage \ --rest-api-id abcdef123 \ --stage-name test \ --patch-operations op=replace,path='/variables/vpcLinkId',value='asf9d7'

    Ketika Anda hardcode connection-id properti dengan VpcLink ID literal, Anda tidak perlu menyebarkan Anda API untuk mengujinya. Gunakan test-invoke-methodperintah untuk menguji Anda API sebelum diterapkan.

  6. Gunakan perintah berikut untuk memanggil: API

    curl -X GET https://abcdef123.execute-api.us-east-2.amazonaws.com/test

    Atau, Anda dapat memasukkan API pemanggilan Anda URL di browser web untuk melihat hasilnya.