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

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

Sebelum membuat API dengan integrasi pribadi, Anda harus menyiapkan sumber daya VPC dan Network Load Balancer dibuat dan dikonfigurasi dengan sumber VPC Anda sebagai target. Jika persyaratan tidak terpenuhi, ikuti Menyiapkan Network Load Balancer untuk integrasi pribadi API Gateway untuk menginstal sumber daya VPC, buat Network Load Balancer, dan atur sumber daya VPC sebagai target Network Load Balancer.

catatan

Network Load Balancer dan API harus dimiliki oleh akun yang sama AWS .

Agar Anda dapat membuat dan mengelola aVpcLink, Anda juga harus memiliki izin yang sesuai yang dikonfigurasi. Untuk informasi selengkapnya, lihat Berikan izin untuk membuat tautan VPC.

catatan

Anda hanya perlu izin untuk membuat VpcLink di API Anda. Anda tidak memerlukan izin untuk menggunakan file. VpcLink

Setelah Network Load Balancer dibuat, perhatikan ARN-nya. Anda membutuhkannya untuk membuat tautan VPC untuk integrasi pribadi.

Untuk menyiapkan API dengan integrasi pribadi menggunakan AWS CLI
  1. Buat 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 perintah CLI 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 titik akhir VPC, Anda mendapatkan hal berikut di properti: statusMessage

    "NLB is already associated with another VPC Endpoint Service"

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

    Perhatikan id nilai yang baru dibuat VpcLink (gim7c3dalam output sebelumnya). Anda membutuhkannya untuk mengatur integrasi pribadi.

  2. Siapkan API dengan membuat RestApiresource API Gateway:

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

    Perhatikan id nilai RestApi dalam hasil yang dikembalikan. Anda memerlukan nilai ini untuk melakukan operasi lebih lanjut pada API.

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

  3. Siapkan GET / metode. Pertama dapatkan pengenal sumber daya root (/):

    aws apigateway get-resources --rest-api-id abcdef123

    Dalam output, perhatikan id nilai / jalur. Dalam contoh ini, kami menganggapnya demikianskpp60rab7.

    Siapkan permintaan metode untuk metode APIGET /:

    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 mengatur setidaknya respons metode kode 200 status. Kami akan menggunakan integrasi proxy di sini.

  4. Siapkan integrasi pribadi HTTP_PROXY tipe dan panggil put-integration perintah sebagai berikut:

    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

    Untuk integrasi pribadi, atur connection-type ke VPC_LINK dan setel connection-id ke pengenal Anda VpcLink atau variabel tahap yang mereferensikan ID AndaVpcLink. uriParameter ini tidak digunakan untuk merutekan permintaan ke titik akhir Anda, tetapi digunakan untuk mengatur Host header dan untuk validasi sertifikat.

    Perintah mengembalikan output berikut:

    { "passthroughBehavior": "WHEN_NO_MATCH", "timeoutInMillis": 29000, "connectionId": "gim7c3", "uri": "http://my-vpclink-test-nlb-1234567890abcdef.us-east-2.amazonaws.com", "connectionType": "VPC_LINK", "httpMethod": "GET", "cacheNamespace": "skpp60rab7", "type": "HTTP_PROXY", "cacheKeyParameters": [] }

    Menggunakan variabel tahap, Anda mengatur connectionId properti saat membuat 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 "\${stageVariables.vpcLinkId}"

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

    Atau, Anda dapat memperbarui integrasi untuk mengatur ulang connectionId nilai dengan variabel tahap:

    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 daftar JSON stringified sebagai nilai parameter. patch-operations

    Anda dapat menggunakan variabel stage untuk mengintegrasikan API Anda dengan VPC atau Network Load Balancer yang berbeda dengan mengatur ulang VpcLink nilai variabel tahap s.

    Karena kami menggunakan integrasi proxy pribadi, API sekarang 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 API dengan integrasi kustom HTTP.

  5. Untuk menguji API, terapkan API. Hal ini diperlukan jika Anda telah menggunakan variabel stage sebagai placeholder dari ID. VpcLink Untuk menerapkan API dengan variabel stage, panggil create-deployment perintah sebagai berikut:

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

    Untuk memperbarui variabel stage dengan VpcLink ID yang berbeda (misalnya,asf9d7), panggil update-stage perintah:

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

    Gunakan perintah berikut untuk menjalankan API Anda:

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

    Atau, Anda dapat mengetikkan URL Invoke-API di browser web untuk melihat hasilnya.

    Saat Anda membuat hardcode connection-id properti dengan VpcLink ID literal, Anda juga dapat memanggil test-invoke-method untuk menguji pemanggilan API sebelum diterapkan.