Membuat Step Functions API menggunakan API Gateway - AWS Step Functions

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

Membuat Step Functions API menggunakan API Gateway

Anda dapat menggunakan Amazon API Gateway untuk mengaitkan AWS Step Functions APIsdengan metode di API GatewayAPI. Saat HTTPS permintaan dikirim ke API metode, API Gateway akan memanggil tindakan Step API Functions Anda.

Tutorial ini menunjukkan kepada Anda cara membuat API yang menggunakan satu sumber daya dan POST metode untuk berkomunikasi dengan StartExecution API tindakan. Anda akan menggunakan AWS Identity and Access Management (IAM) konsol untuk membuat peran untuk API Gateway. Kemudian, Anda akan menggunakan konsol API Gateway untuk membuat API GatewayAPI, membuat sumber daya dan metode, dan memetakan metode ke StartExecution API tindakan. Akhirnya, Anda akan menyebarkan dan mengujiAPI.

catatan

Meskipun Amazon API Gateway dapat memulai eksekusi Step Functions dengan meneleponStartExecution, Anda harus menelepon DescribeExecution untuk mendapatkan hasilnya.

Langkah 1: Buat IAM Peran untuk API Gateway

Sebelum membuat API GatewayAPI, Anda harus memberikan izin kepada API Gateway untuk memanggil API tindakan Step Functions.

Untuk mengatur izin untuk API Gateway
  1. Masuk ke IAMkonsol dan pilih Peran, Buat peran.

  2. Pada halaman Pilih entitas tepercaya, lakukan hal berikut:

    1. Untuk jenis entitas Tepercaya, pertahankan pilihan default Layanan AWS.

    2. Untuk kasus Penggunaan, pilih APIGateway dari daftar dropdown.

  3. Pilih APIGateway, lalu pilih Berikutnya.

  4. Pada halaman Tambahkan izin, pilih Berikutnya.

  5. (Opsional) Pada halaman Nama, tinjau, dan buat, masukkan detail, seperti nama peran. Misalnya, masukkan APIGatewayToStepFunctions.

  6. Pilih Buat peran.

    IAMPeran tersebut muncul dalam daftar peran.

  7. Pilih nama peran Anda dan catat Peran ARN, seperti yang ditunjukkan pada contoh berikut.

    arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
Untuk melampirkan kebijakan ke IAM peran
  1. Pada halaman Peran, cari peran Anda (APIGatewayToStepFunctions), kemudian pilih peran tersebut.

  2. Pada tab Izin, pilih Tambahkan izin, lalu pilih Lampirkan kebijakan.

  3. Pada halaman Lampirkan Kebijakan, cariAWSStepFunctionsFullAccess, pilih kebijakan, lalu pilih Tambahkan izin.

Langkah 2: Buat API Gateway Anda API

Setelah membuat IAM peran, Anda dapat membuat API Gateway kustomAPI.

Untuk membuat API
  1. Buka konsol Amazon API Gateway, lalu pilih Buat API.

  2. Pada halaman Pilih API jenis, di RESTAPIpanel, pilih Build.

  3. Pada REST API halaman Buat, pilih Baru API, lalu masukkan StartExecutionAPI untuk APInama.

  4. Pertahankan tipe API endpoint sebagai Regional, lalu pilih Create API.

Untuk membuat sumber daya
  1. Pada halaman Sumber Daya dari StartExecutionAPI, pilih Buat sumber daya.

  2. Pada halaman Buat sumber daya, masukkan execution nama Sumber Daya, lalu pilih Buat sumber daya.

Untuk membuat POST metode
  1. Pilih sumber daya /eksekusi, lalu pilih Create method.

  2. Untuk jenis Metode, pilihPOST.

  3. Untuk tipe Integrasi, pilih AWS layanan.

  4. Untuk Wilayah AWS, pilih Wilayah dari daftar.

  5. Untuk Layanan AWS, pilih Step Functions dari daftar.

  6. Simpan AWS subdomain kosong.

  7. Untuk HTTPmetode, pilih POSTdari daftar.

    catatan

    Semua API tindakan Step Functions menggunakan HTTP POST metode ini.

  8. Untuk jenis tindakan, pilih Gunakan nama tindakan.

  9. Untuk nama Tindakan, masukkanStartExecution.

  10. Untuk peran Eksekusi, masukkan peran ARN IAM peran yang Anda buat sebelumnya, seperti yang ditunjukkan pada contoh berikut.

    arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
  11. Simpan opsi default untuk cache Credential dan batas waktu default, lalu pilih Simpan.

Pemetaan visual antara API Gateway dan Step Functions ditampilkan pada halaman eksekusi /execution - POST - Method.

Langkah 3: Uji dan Terapkan Gateway API API

Setelah Anda membuatAPI, uji dan terapkan.

Untuk menguji komunikasi antara API Gateway dan Step Functions
  1. Pada halaman /execution - POST - Method Execution, pilih tab Test. Anda mungkin perlu memilih tombol panah kanan untuk menampilkan tab.

  2. Pada tab /execution - POST - Method Test, salin parameter permintaan berikut ke bagian badan Permintaan menggunakan mesin status yang ada (atau buat mesin status baru yang menggunakan fungsi Lambda), lalu pilih Uji. ARN

    { "input": "{}", "name": "MyExecution", "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld" }

    Untuk informasi selengkapnya, lihat Sintaks StartExecution Permintaan di AWS Step Functions APIReferensi.

    catatan

    Jika Anda tidak ingin menyertakan mesin status di badan panggilan API Gateway, Anda dapat mengonfigurasi templat pemetaan di tab Permintaan integrasi, seperti yang ditunjukkan pada contoh berikut. ARN

    { "input": "$util.escapeJavaScript($input.json('$'))", "stateMachineArn": "$util.escapeJavaScript($stageVariables.arn)" }

    Dengan pendekatan ini, Anda dapat menentukan ARNs mesin negara yang berbeda berdasarkan tahap pengembangan Anda (misalnya,dev,test, danprod). Untuk informasi selengkapnya tentang menentukan variabel tahap dalam template pemetaan, lihat $stageVariablesdi Panduan Pengembang API Gateway.

  3. Eksekusi dimulai ARN dan eksekusi serta tanggal epochnya ditampilkan di bawah badan Response.

    { "executionArn": "arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution", "startDate": 1486768956.878 }
    catatan

    Anda dapat melihat eksekusi dengan memilih mesin negara Anda di AWS Step Functions konsol.

Untuk menyebarkan API
  1. Pada halaman Sumber Daya dari StartExecutionAPI, pilih Deploy API.

  2. Untuk Stage, pilih New stage.

  3. Untuk nama Panggung, masukkanalpha.

  4. (Opsional) Untuk Deskripsi, masukkan deskripsi.

  5. Pilih Deploy.

Untuk menguji deployment Anda
  1. Pada halaman Tahapan StartExecutionAPI, memperluas alpha,/, /execution POST, dan kemudian pilih POSTmetode.

  2. Di bawah Metode penggantian, pilih ikon salin untuk menyalin pemanggilan AndaAPI. URL Selengkapnya URL akan terlihat seperti contoh berikut.

    https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution
  3. Dari baris perintah, jalankan curl perintah menggunakan mesin ARN status Anda, dan kemudian panggil URL penerapan Anda, seperti yang ditunjukkan pada contoh berikut.

    curl -X POST -d '{"input": "{}","name": "MyExecution","stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld"}' https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution

    Eksekusi ARN dan tanggal epoch dikembalikan, seperti yang ditunjukkan pada contoh berikut.

    {"executionArn":"arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution","startDate":1.486772644911E9}
    catatan

    Jika Anda mendapatkan kesalahan “Token Otentikasi Hilang”, pastikan pemanggilan URL diakhiri dengan /execution.