Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bagian ini menunjukkan cara menyiapkan berbagai variabel tahap untuk dua tahapan penerapan API sampel dengan menggunakan konsol Amazon API Gateway. Untuk memahami cara menggunakan variabel tahap di API Gateway, kami sarankan Anda mengikuti semua prosedur di bagian ini.
Prasyarat
Sebelum Anda mulai, pastikan prasyarat berikut terpenuhi:
-
Anda harus memiliki API yang tersedia di API Gateway. Ikuti petunjuk dalam Kembangkan REST APIs di API Gateway.
-
Anda harus telah menerapkan API setidaknya sekali. Ikuti petunjuk dalam Menerapkan REST APIs di API Gateway.
-
Anda harus telah membuat tahap pertama untuk API yang diterapkan. Ikuti petunjuk dalam Buat panggung baru.
Memanggil titik akhir HTTP melalui API dengan variabel tahap
Prosedur ini menjelaskan cara membuat variabel tahap untuk titik akhir HTTP dan dua tahap untuk API Anda. Selain itu, Anda membuat variabel tahap,url
,stageName
, dan function
yang digunakan dalam prosedur berikut di bagian ini.
Untuk memanggil titik akhir HTTP melalui API dengan variabel tahap
Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway
. -
Buat API, lalu buat
GET
metode pada sumber daya root API. Atur tipe integrasi ke HTTP dan atur URL Endpoint kehttp://${stageVariables.url}
. -
Menerapkan API ke tahap baru bernama
beta
. -
Di panel navigasi utama, pilih Tahapan, lalu pilih tahap beta.
-
Pada tab variabel Stage, pilih Edit.
-
Pilih Tambahkan variabel tahap.
-
Untuk Nama, masukkan
url
. Untuk nilai, masukkanhttpbin.org/get
. -
Pilih Tambahkan variabel tahap, dan kemudian lakukan hal berikut:
Untuk Nama, masukkan
stageName
. Untuk nilai, masukkanbeta
. -
Pilih Tambahkan variabel tahap, dan kemudian lakukan hal berikut:
Untuk Nama, masukkan
function
. Untuk nilai, masukkanHelloWorld
. -
Pilih Simpan.
-
Sekarang buat tahap kedua. Dari panel navigasi Tahapan, pilih Buat tahap. Untuk nama Panggung, masukkan
prod
. Pilih penerapan terbaru dari Deployment, lalu pilih Create stage. -
Seperti tahap beta, atur variabel tiga tahap yang sama (url, stageName, dan fungsi) ke nilai yang berbeda (
petstore-demo-endpoint.execute-api.com/petstore/pets
,, danHelloEveryone
)prod
, masing-masing. -
Di panel navigasi Tahapan, pilih beta. Di bawah Detail tahap, pilih ikon salin untuk menyalin URL pemanggilan API Anda, lalu masukkan URL pemanggilan API Anda di browser web. Ini memulai
GET
permintaan tahap beta pada sumber daya root API.catatan
Tautan URL Invoke menunjuk ke sumber daya root API dalam tahap beta. Memasukkan URL di browser web memanggil
GET
metode tahap beta pada sumber daya root. Jika metode didefinisikan pada sumber daya anak dan bukan pada sumber daya root itu sendiri, memasukkan URL di browser web mengembalikan respons{"message":"Missing Authentication Token"}
kesalahan. Dalam hal ini, Anda harus menambahkan nama sumber daya anak tertentu ke tautan URL Panggilan. -
Respons yang Anda dapatkan dari
GET
permintaan tahap beta ditampilkan berikutnya. Anda juga dapat memverifikasi hasilnya dengan menggunakan browser untuk menavigasi ke http://httpbin.org/get. Nilai ini ditetapkan keurl
variabel dalam tahap beta. Kedua tanggapan itu identik. -
Di panel navigasi Tahapan, pilih tahap prod. Di bawah Detail tahap, pilih ikon salin untuk menyalin URL pemanggilan API Anda, lalu masukkan URL pemanggilan API Anda di browser web. Ini memulai
GET
permintaan tahap prod pada sumber daya root API. -
Respons yang Anda dapatkan dari
GET
permintaan tahap prod ditampilkan berikutnya. Anda dapat memverifikasi hasilnya dengan menggunakan browser untuk menavigasi ke http://petstore-demo-endpoint.execute-api. com/petstore/pets. Nilai ini ditetapkan keurl
variabel dalam tahap prod. Kedua tanggapan itu identik.
Lulus metadata khusus tahap ke backend HTTP
Prosedur ini menjelaskan cara menggunakan nilai variabel tahap dalam ekspresi parameter kueri untuk meneruskan metadata spesifik tahap ke backend HTTP. Kami akan menggunakan variabel stageName
tahap yang dinyatakan dalam prosedur sebelumnya.
Untuk meneruskan metadata khusus tahap ke backend HTTP
-
Di panel navigasi Resource, pilih metode GET.
Untuk menambahkan parameter string kueri ke URL metode, pilih tab Permintaan metode, lalu di bagian Pengaturan permintaan metode, pilih Edit.
Pilih parameter string kueri URL dan lakukan hal berikut:
Pilih Tambahkan string kueri.
Untuk Nama, masukkan
stageName
.Tetap Diperlukan dan Caching dimatikan.
Pilih Simpan.
-
Pilih tab Permintaan integrasi, dan kemudian di bagian Pengaturan permintaan integrasi, pilih Edit.
Untuk URL Endpoint, tambahkan
?stageName=${stageVariables.stageName}
ke nilai URL yang ditentukan sebelumnya, sehingga seluruh URL Endpoint adalah.http://${stageVariables.url}?stageName=${stageVariables.stageName}
-
Pilih Deploy API dan pilih tahap beta.
-
Di panel navigasi utama, pilih Tahapan. Di panel navigasi Tahapan, pilih beta. Di bawah Detail tahap, pilih ikon salin untuk menyalin URL pemanggilan API Anda, lalu masukkan URL pemanggilan API Anda di browser web.
catatan
Kami menggunakan tahap beta di sini karena titik akhir HTTP (seperti yang ditentukan oleh
url
variabel "http://httpbin.org/get “) menerima ekspresi parameter kueri dan mengembalikannya sebagaiargs
objek dalam responsnya. -
Anda mendapatkan tanggapan berikut. Perhatikan bahwa
beta
, ditugaskan ke variabelstageName
tahap, diteruskan di backend sebagai argumen.stageName
Memanggil fungsi Lambda melalui API dengan variabel panggung
Prosedur ini menjelaskan cara menggunakan variabel stage untuk memanggil fungsi Lambda sebagai backend API Anda. Anda menggunakan variabel function
tahap yang dideklarasikan dalamMemanggil titik akhir HTTP melalui API dengan variabel tahap.
Saat menyetel fungsi Lambda sebagai nilai variabel tahap, gunakan nama lokal fungsi, mungkin termasuk alias atau spesifikasi versinya, seperti dalamHelloWorld
, atau. HelloWorld:1
HelloWorld:alpha
Jangan gunakan ARN fungsi (misalnya,arn:aws:lambda:us-east-1:123456789012:function:HelloWorld
). Konsol API Gateway mengasumsikan nilai variabel stage untuk fungsi Lambda sebagai nama fungsi yang tidak memenuhi syarat dan memperluas variabel tahap yang diberikan menjadi ARN.
Untuk menjalankan fungsi Lambda melalui API dengan variabel stage
-
Buat fungsi Lambda bernama
HelloWorld
menggunakan runtime Node.js default. Kode harus berisi yang berikut:export const handler = function(event, context, callback) { if (event.stageName) callback(null, 'Hello, World! I\'m calling from the ' + event.stageName + ' stage.'); else callback(null, 'Hello, World! I\'m not sure where I\'m calling from...'); };
Untuk informasi selengkapnya tentang cara membuat fungsi Lambda, lihat Memulai konsol REST API.
-
Di panel Resources, pilih Buat sumber daya, lalu lakukan hal berikut:
Untuk jalur Sumber Daya, pilih/.
Untuk Nama sumber daya, masukkan
lambdav1
.Pilih Buat sumber daya.
-
Pilih sumber daya /lambdav1, lalu pilih Create method.
Kemudian, lakukan hal berikut:
Untuk tipe Metode, pilih GET.
Untuk jenis Integrasi, pilih fungsi Lambda.
Matikan integrasi proxy Lambda.
Untuk fungsi Lambda, masukkan.
${stageVariables.function}
Tip
Saat diminta dengan perintah Tambah izin, salin perintah add-permission. Jalankan perintah pada setiap fungsi Lambda yang akan ditugaskan ke variabel
function
panggung. Misalnya, jika$stageVariables.function
nilainyaHelloWorld
, jalankan AWS CLI perintah berikut:aws lambda add-permission --function-name arn:aws:lambda:us-east-1:
account-id
:function:HelloWorld --source-arn arn:aws:execute-api:us-east-1:account-id
:api-id
/*/GET/lambdav1 --principal apigateway.amazonaws.com --statement-idstatement-id-guid
--action lambda:InvokeFunctionGagal melakukannya menghasilkan
500 Internal Server Error
respons saat menjalankan metode. Ganti${stageVariables.function}
dengan nama fungsi Lambda yang ditetapkan ke variabel stage.-
Pilih metode Buat.
-
Terapkan API ke tahap prod dan beta.
-
Di panel navigasi utama, pilih Tahapan. Di panel navigasi Tahapan, pilih beta. Di bawah Detail tahap, pilih ikon salin untuk menyalin URL pemanggilan API Anda, lalu masukkan URL pemanggilan API Anda di browser web. Tambahkan
/lambdav1
ke URL sebelum Anda menekan enter.Anda mendapatkan tanggapan berikut.
"Hello, World! I'm not sure where I'm calling from..."
Lewati metadata spesifik tahap ke fungsi Lambda melalui variabel panggung
Prosedur ini menjelaskan cara menggunakan variabel tahap untuk meneruskan metadata konfigurasi spesifik tahap ke dalam fungsi Lambda. Anda membuat POST
metode dan template pemetaan masukan untuk menghasilkan payload menggunakan variabel stageName
stage yang Anda deklarasikan sebelumnya.
Untuk meneruskan metadata spesifik tahap ke fungsi Lambda melalui variabel tahap
-
Pilih sumber daya /lambdav1, lalu pilih Create method.
Kemudian, lakukan hal berikut:
Untuk jenis Metode, pilih POST.
Untuk jenis Integrasi, pilih fungsi Lambda.
Matikan integrasi proxy Lambda.
Untuk fungsi Lambda, masukkan.
${stageVariables.function}
-
Saat diminta dengan perintah Tambah izin, salin perintah add-permission. Jalankan perintah pada setiap fungsi Lambda yang akan ditugaskan ke variabel
function
panggung. Pilih metode Buat.
-
Pilih tab Permintaan integrasi, dan kemudian di bagian Pengaturan permintaan integrasi, pilih Edit.
Pilih Templat pemetaan, lalu pilih Tambahkan templat pemetaan.
Untuk jenis Konten, masukkan
application/json
.Untuk badan Template, masukkan template berikut:
#set($inputRoot = $input.path('$')) { "stageName" : "$stageVariables.stageName" }
catatan
Dalam template pemetaan, variabel tahap harus direferensikan dalam tanda kutip (seperti dalam
"$stageVariables.stageName"
atau"${stageVariables.stageName}"
). Di tempat lain, itu harus direferensikan tanpa tanda kutip (seperti dalam${stageVariables.function}
).Pilih Simpan.
-
Terapkan API ke tahap beta dan prod.
-
Untuk menggunakan klien REST API untuk meneruskan metadata khusus tahap, lakukan hal berikut:
Di panel navigasi Tahapan, pilih beta. Di bawah Detail tahap, pilih ikon salin untuk menyalin URL pemanggilan API Anda, lalu masukkan URL pemanggilan API Anda di bidang input klien REST API. Tambahkan
/lambdav1
sebelum Anda mengirimkan permintaan Anda.Anda mendapatkan tanggapan berikut.
"Hello, World! I'm calling from the beta stage."
Di panel navigasi Tahapan, pilih prod. Di bawah Detail tahap, pilih ikon salin untuk menyalin URL pemanggilan API Anda, lalu masukkan URL pemanggilan API Anda di bidang input klien REST API. Tambahkan
/lambdav1
sebelum Anda mengirimkan permintaan Anda.Anda mendapatkan tanggapan berikut.
"Hello, World! I'm calling from the prod stage."
-
Untuk menggunakan fitur Uji untuk meneruskan metadata khusus tahapan, lakukan hal berikut:
Di panel navigasi Sumber daya, pilih tab Uji. Anda mungkin perlu memilih tombol panah kanan untuk menampilkan tab.
Untuk fungsi, masukkan
HelloWorld
.Untuk StageName, masukkan.
beta
Pilih Uji. Anda tidak perlu menambahkan badan ke
POST
permintaan Anda.Anda mendapatkan tanggapan berikut.
"Hello, World! I'm calling from the beta stage."
Anda dapat mengulangi langkah-langkah sebelumnya untuk menguji tahap Prod. Untuk StageName, masukkan.
Prod
Anda mendapatkan tanggapan berikut.
"Hello, World! I'm calling from the prod stage."