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
-
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 yangVpcLink
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 pembuatan
VpcLink
. 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, denganstatusMessage
berisi pesan kesalahan. Misalnya, jika Anda mencoba membuatVpcLink
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 dibuatVpcLink
(
dalam output sebelumnya). Anda membutuhkannya untuk mengatur integrasi pribadi.gim7c3
-
Siapkan API dengan membuat
RestApi
resource API Gateway:aws apigateway create-rest-api --name 'My VPC Link Test'
Perhatikan
id
nilaiRestApi
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
-
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 demikian
.skpp60rab7
Siapkan permintaan metode untuk metode API
GET /
:aws apigateway put-method \ --rest-api-id
abcdef123
\ --resource-idskpp60rab7
\ --http-method GET \ --authorization-type "NONE"Jika Anda tidak menggunakan integrasi proxy dengan
VpcLink
, Anda juga harus mengatur setidaknya respons metode kode200
status. Kami akan menggunakan integrasi proxy di sini. -
Siapkan integrasi pribadi
HTTP_PROXY
tipe dan panggilput-integration
perintah sebagai berikut:aws apigateway put-integration \ --rest-api-id
abcdef123
\ --resource-idskpp60rab7
\ --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-idgim7c3
Untuk integrasi pribadi, atur
connection-type
keVPC_LINK
dan setelconnection-id
ke pengenal AndaVpcLink
atau variabel tahap yang mereferensikan ID AndaVpcLink
.uri
Parameter ini tidak digunakan untuk merutekan permintaan ke titik akhir Anda, tetapi digunakan untuk mengaturHost
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-idskpp60rab7
\ --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-idskpp60rab7
\ --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.
-
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, panggilcreate-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,
), panggilasf9d7
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/testAtau, Anda dapat mengetikkan URL Invoke-API di browser web untuk melihat hasilnya.
Saat Anda membuat hardcode
connection-id
properti denganVpcLink
ID literal, Anda juga dapat memanggiltest-invoke-method
untuk menguji pemanggilan API sebelum diterapkan.