Membuat tahapan untuk WebSocket API di API Gateway - APIGerbang Amazon

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

Membuat tahapan untuk WebSocket API di API Gateway

Tahap API adalah referensi logis ke status siklus hidup API Anda (misalnya,,, dev prodbeta, atauv2). Tahapan API diidentifikasi oleh ID API dan nama stage mereka, dan mereka disertakan dalam URL yang Anda gunakan untuk memanggil API. Setiap tahap adalah referensi bernama untuk deployment API dan dibuat tersedia bagi aplikasi klien untuk dipanggil.

Deployment adalah snapshot dari konfigurasi API Anda. Setelah Anda menerapkan API ke tahap, itu tersedia bagi klien untuk dipanggil. Anda harus menerapkan API agar perubahan diterapkan.

Variabel tahap

Variabel tahap adalah pasangan nilai kunci yang dapat Anda tentukan untuk tahap API. WebSocket Mereka bertindak seperti variabel lingkungan dan dapat digunakan dalam pengaturan API Anda.

Misalnya, Anda dapat menentukan variabel tahap, dan kemudian menetapkan nilainya sebagai titik akhir HTTP untuk integrasi proxy HTTP. Kemudian, Anda dapat mereferensikan titik akhir dengan menggunakan nama variabel tahap terkait. Dengan melakukan ini, Anda dapat menggunakan penyiapan API yang sama dengan titik akhir yang berbeda di setiap tahap. Demikian pula, Anda dapat menggunakan variabel tahap untuk menentukan integrasi AWS Lambda fungsi yang berbeda untuk setiap tahap API Anda.

catatan

Variabel tahap tidak dimaksudkan untuk digunakan untuk data sensitif, seperti kredensial. Untuk meneruskan data sensitif ke integrasi, gunakan AWS Lambda otorisasi. Anda dapat meneruskan data sensitif ke integrasi dalam output otorisasi Lambda. Untuk mempelajari selengkapnya, lihat Format respons otorisasi Lambda.

Contoh

Untuk menggunakan variabel tahap untuk menyesuaikan titik akhir integrasi HTTP, Anda harus terlebih dahulu mengatur nama dan nilai variabel tahap (misalnya,url) dengan nilaiexample.com. Selanjutnya, siapkan integrasi proxy HTTP. Alih-alih memasukkan URL titik akhir, Anda dapat memberi tahu API Gateway untuk menggunakan nilai variabel stage,http://${stageVariables.url}. Nilai ini memberi tahu API Gateway untuk mengganti variabel stage Anda ${} saat runtime, tergantung pada tahap API Anda.

Anda dapat mereferensikan variabel tahap dengan cara yang sama untuk menentukan nama fungsi Lambda atau peran AWS ARN.

Saat menentukan nama fungsi Lambda sebagai nilai variabel tahap, Anda harus mengonfigurasi izin pada fungsi Lambda secara manual. Anda dapat menggunakan AWS Command Line Interface (AWS CLI) untuk melakukan ini.

aws lambda add-permission --function-name arn:aws:lambda:XXXXXX:your-lambda-function-name --source-arn arn:aws:execute-api:us-east-1:YOUR_ACCOUNT_ID:api_id/*/HTTP_METHOD/resource --principal apigateway.amazonaws.com --statement-id apigateway-access --action lambda:InvokeFunction

Referensi variabel tahap API Gateway

URI integrasi HTTP

Anda dapat menggunakan variabel tahap sebagai bagian dari URI integrasi HTTP, seperti yang ditunjukkan pada contoh berikut.

  • URI lengkap tanpa protokol — http://${stageVariables.<variable_name>}

  • Domain lengkap — http://${stageVariables.<variable_name>}/resource/operation

  • Sebuah subdomain — http://${stageVariables.<variable_name>}.example.com/resource/operation

  • Sebuah jalan — http://example.com/${stageVariables.<variable_name>}/bar

  • Sebuah string kueri - http://example.com/foo?q=${stageVariables.<variable_name>}

Fungsi Lambda

Anda dapat menggunakan variabel tahap di tempat nama fungsi Lambda atau alias, seperti yang ditunjukkan dalam contoh berikut.

  • arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:${stageVariables.<function_variable_name>}/invocations

  • arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:<function_name>:${stageVariables.<version_variable_name>}/invocations

catatan

Untuk menggunakan variabel stage untuk fungsi Lambda, fungsi tersebut harus berada di akun yang sama dengan API. Variabel tahap tidak mendukung fungsi Lambda lintas akun.

AWS kredensi integrasi

Anda dapat menggunakan variabel tahap sebagai bagian dari ARN kredensi AWS pengguna atau peran, seperti yang ditunjukkan pada contoh berikut.

  • arn:aws:iam::<account_id>:${stageVariables.<variable_name>}