Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Siapkan variabel tahap untuk REST APIs di API Gateway

Mode fokus
Siapkan variabel tahap untuk REST APIs di API Gateway - Amazon API Gateway

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

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:

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
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Buat API, lalu buat GET metode pada sumber daya root API. Atur tipe integrasi ke HTTP dan atur URL Endpoint kehttp://${stageVariables.url}.

  3. Menerapkan API ke tahap baru bernamabeta.

  4. Di panel navigasi utama, pilih Tahapan, lalu pilih tahap beta.

  5. Pada tab variabel Stage, pilih Edit.

  6. Pilih Tambahkan variabel tahap.

  7. Untuk Nama, masukkan url. Untuk nilai, masukkanhttpbin.org/get.

  8. Pilih Tambahkan variabel tahap, dan kemudian lakukan hal berikut:

    Untuk Nama, masukkan stageName. Untuk nilai, masukkanbeta.

  9. Pilih Tambahkan variabel tahap, dan kemudian lakukan hal berikut:

    Untuk Nama, masukkan function. Untuk nilai, masukkanHelloWorld.

  10. Pilih Simpan.

  11. Sekarang buat tahap kedua. Dari panel navigasi Tahapan, pilih Buat tahap. Untuk nama Panggung, masukkanprod. Pilih penerapan terbaru dari Deployment, lalu pilih Create stage.

  12. 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.

  13. 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.

  14. 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 ke url variabel dalam tahap beta. Kedua tanggapan itu identik.

  15. 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.

  16. 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 ke url 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
  1. 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.

  2. Pilih parameter string kueri URL dan lakukan hal berikut:

    1. Pilih Tambahkan string kueri.

    2. Untuk Nama, masukkan stageName.

    3. Tetap Diperlukan dan Caching dimatikan.

  3. Pilih Simpan.

  4. Pilih tab Permintaan integrasi, dan kemudian di bagian Pengaturan permintaan integrasi, pilih Edit.

  5. Untuk URL Endpoint, tambahkan ?stageName=${stageVariables.stageName} ke nilai URL yang ditentukan sebelumnya, sehingga seluruh URL Endpoint adalah. http://${stageVariables.url}?stageName=${stageVariables.stageName}

  6. Pilih Deploy API dan pilih tahap beta.

  7. 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 sebagai args objek dalam responsnya.

  8. Anda mendapatkan tanggapan berikut. Perhatikan bahwabeta, ditugaskan ke variabel stageName tahap, diteruskan di backend sebagai argumen. stageName

    Respon dari metode GET API dengan titik akhir HTTP menggunakan variabel tahap url.

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
  1. 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.

  2. Di panel Resources, pilih Buat sumber daya, lalu lakukan hal berikut:

    1. Untuk jalur Sumber Daya, pilih/.

    2. Untuk Nama sumber daya, masukkan lambdav1.

    3. Pilih Buat sumber daya.

  3. Pilih sumber daya /lambdav1, lalu pilih Create method.

    Kemudian, lakukan hal berikut:

    1. Untuk tipe Metode, pilih GET.

    2. Untuk jenis Integrasi, pilih fungsi Lambda.

    3. Matikan integrasi proxy Lambda.

    4. Untuk fungsi Lambda, masukkan. ${stageVariables.function}

      Buat GET metode yang terintegrasi dengan fungsi Lambda seperti yang ditentukan oleh variabel function tahap.
      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-id statement-id-guid --action lambda:InvokeFunction

      Gagal melakukannya menghasilkan 500 Internal Server Error respons saat menjalankan metode. Ganti ${stageVariables.function} dengan nama fungsi Lambda yang ditetapkan ke variabel stage.

      AWS CLI perintah untuk menambahkan izin ke fungsi Lambda yang akan dipanggil oleh metode yang Anda buat.
    5. Pilih metode Buat.

  4. Terapkan API ke tahap prod dan beta.

  5. 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
  1. Pilih sumber daya /lambdav1, lalu pilih Create method.

    Kemudian, lakukan hal berikut:

    1. Untuk jenis Metode, pilih POST.

    2. Untuk jenis Integrasi, pilih fungsi Lambda.

    3. Matikan integrasi proxy Lambda.

    4. Untuk fungsi Lambda, masukkan. ${stageVariables.function}

    5. Saat diminta dengan perintah Tambah izin, salin perintah add-permission. Jalankan perintah pada setiap fungsi Lambda yang akan ditugaskan ke variabel function panggung.

    6. Pilih metode Buat.

  2. Pilih tab Permintaan integrasi, dan kemudian di bagian Pengaturan permintaan integrasi, pilih Edit.

  3. Pilih Templat pemetaan, lalu pilih Tambahkan templat pemetaan.

  4. Untuk jenis Konten, masukkanapplication/json.

  5. 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}).

  6. Pilih Simpan.

  7. Terapkan API ke tahap beta dan prod.

  8. Untuk menggunakan klien REST API untuk meneruskan metadata khusus tahap, lakukan hal berikut:

    1. 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."
    2. 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."
  9. Untuk menggunakan fitur Uji untuk meneruskan metadata khusus tahapan, lakukan hal berikut:

    1. Di panel navigasi Sumber daya, pilih tab Uji. Anda mungkin perlu memilih tombol panah kanan untuk menampilkan tab.

    2. Untuk fungsi, masukkanHelloWorld.

    3. Untuk StageName, masukkan. beta

    4. Pilih Uji. Anda tidak perlu menambahkan badan ke POST permintaan Anda.

      Anda mendapatkan tanggapan berikut.

      "Hello, World! I'm calling from the beta stage."
    5. 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."
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.