AWS Step Functions memanggil referensi tindakan - AWS CodePipeline

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

AWS Step Functions memanggil referensi tindakan

AWS CodePipeline Tindakan yang melakukan hal berikut:

  • Memulai eksekusi mesin AWS Step Functions status dari pipeline Anda.

  • Menyediakan status awal ke mesin status melalui properti dalam konfigurasi tindakan atau file yang terletak di artefak pipa untuk diteruskan sebagai input.

  • Secara opsional menetapkan awalan ID eksekusi untuk mengidentifikasi eksekusi yang berasal dari tindakan.

  • Mendukung mesin status Standar dan Ekspres.

catatan

Tindakan Step Functions berjalan di Lambda, dan karena itu memiliki kuota ukuran artefak yang sama dengan kuota ukuran artefak untuk fungsi Lambda. Untuk informasi selengkapnya, lihat Kuota Lambda di Panduan Pengembang Lambda.

Tipe tindakan

  • Kategori: Invoke

  • Pemilik: AWS

  • Penyedia: StepFunctions

  • Versi: 1

Parameter konfigurasi

StateMachineArn

Wajib: Ya

Amazon Resource Name (ARN) untuk mesin status yang akan dipanggil.

ExecutionNamePrefix

Wajib: Tidak

Secara default, ID eksekusi tindakan digunakan sebagai nama eksekusi mesin negara. Jika awalan disediakan, itu diawali dengan ID eksekusi tindakan dengan tanda hubung dan bersama-sama digunakan sebagai nama eksekusi mesin negara.

myPrefix-1624a1d1-3699-43f0-8e1e-6bafd7fde791

Untuk mesin keadaan ekspres, nama hanya boleh berisi 0-9, A-Z, a-z, - dan _.

InputType

Wajib: Tidak

  • Literal (default): Ketika ditentukan, nilai di bidang Input diteruskan langsung ke input mesin status.

    Contoh entri untuk bidang Input saat Literal dipilih:

    {"action": "test"}
  • FilePath: Isi file dalam artefak input yang ditentukan oleh bidang Input digunakan sebagai input untuk eksekusi mesin negara. Artefak input diperlukan saat InputTypediatur ke FilePath.

    Contoh entri untuk bidang Input saat FilePathdipilih:

    assets/input.json
Input

Diperlukan: Kondisional

  • Literal: Ketika InputTypediatur ke Literal (default), bidang ini opsional.

    Jika disediakan, bidang Input digunakan secara langsung sebagai input untuk eksekusi mesin status. Jika tidak, mesin status dipanggil dengan JSON objek {} kosong.

  • FilePath: Kapan InputTypediatur ke FilePath, bidang ini diperlukan.

    Artefak input juga diperlukan saat InputTypediatur ke FilePath.

    Isi file dalam artefak input yang ditentukan digunakan sebagai input untuk eksekusi mesin negara.

Artefak masukan

  • Jumlah artefak: 0 to 1

  • Deskripsi: Jika InputTypediatur ke FilePath, artefak ini diperlukan dan digunakan untuk sumber input untuk eksekusi mesin status.

Artefak keluaran

  • Jumlah artefak: 0 to 1

  • Deskripsi:

    • Mesin Negara Standar: Jika disediakan, artefak keluaran diisi dengan output dari mesin negara. Ini diperoleh dari output properti DescribeExecution API respons Step Functions setelah eksekusi mesin status selesai dengan sukses.

    • Mesin Negara Ekspres: Tidak didukung.

Variabel keluaran

Tindakan ini menghasilkan variabel keluaran yang dapat direferensikan oleh konfigurasi tindakan tindakan hilir dalam pipeline.

Untuk informasi selengkapnya, lihat Referensi variabel.

StateMachineArn

ARNdari mesin negara.

ExecutionArn

ARNEksekusi mesin negara. Hanya mesin negara standar.

Contoh konfigurasi tindakan

Contoh untuk input default

YAML
Name: ActionName ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine ExecutionNamePrefix: my-prefix
JSON
{ "Name": "ActionName", "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Version": 1, "Provider": "StepFunctions" }, "OutputArtifacts": [ { "Name": "myOutputArtifact" } ], "Configuration": { "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine", "ExecutionNamePrefix": "my-prefix" } }

Contoh untuk input literal

YAML
Name: ActionName ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine ExecutionNamePrefix: my-prefix Input: '{"action": "test"}'
JSON
{ "Name": "ActionName", "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Version": 1, "Provider": "StepFunctions" }, "OutputArtifacts": [ { "Name": "myOutputArtifact" } ], "Configuration": { "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine", "ExecutionNamePrefix": "my-prefix", "Input": "{\"action\": \"test\"}" } }

Contoh untuk file input

YAML
Name: ActionName InputArtifacts: - Name: myInputArtifact ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: 'arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine' ExecutionNamePrefix: my-prefix InputType: FilePath Input: assets/input.json
JSON
{ "Name": "ActionName", "InputArtifacts": [ { "Name": "myInputArtifact" } ], "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Version": 1, "Provider": "StepFunctions" }, "OutputArtifacts": [ { "Name": "myOutputArtifact" } ], "Configuration": { "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine", "ExecutionNamePrefix": "my-prefix", "InputType": "FilePath", "Input": "assets/input.json" } }

Perilaku

Selama rilis, CodePipeline jalankan mesin status yang dikonfigurasi menggunakan input seperti yang ditentukan dalam konfigurasi tindakan.

Kapan InputTypediatur ke Literal, konten bidang konfigurasi tindakan Input digunakan sebagai input untuk mesin status. Ketika input literal tidak disediakan, eksekusi mesin negara menggunakan JSON objek kosong{}. Untuk informasi selengkapnya tentang menjalankan eksekusi mesin status tanpa input, lihat Step Functions StartExecution API.

Ketika InputTypediatur ke FilePath, tindakan membuka ritsleting artefak input dan menggunakan konten file yang ditentukan dalam bidang konfigurasi tindakan Input sebagai input untuk mesin status. Kapan FilePathditentukan, bidang Input diperlukan dan artefak input harus ada; jika tidak, tindakan gagal.

Setelah eksekusi awal berhasil, perilaku akan menyimpang untuk dua jenis mesin status, standar dan ekspres.

Mesin negara standar

Jika eksekusi mesin status standar berhasil dimulai, CodePipeline polling DescribeExecution API sampai eksekusi mencapai status terminal. Jika eksekusi berhasil diselesaikan, tindakan berhasil; jika tidak, itu gagal.

Jika artefak keluaran dikonfigurasi, artefak akan berisi nilai pengembalian mesin status. Ini diperoleh dari output properti DescribeExecution API respons Step Functions setelah eksekusi mesin status selesai dengan sukses. Perhatikan bahwa ada batasan panjang keluaran yang diberlakukan pada ini. API

Penanganan kesalahan

  • Jika tindakan gagal memulai eksekusi mesin negara, eksekusi tindakan gagal.

  • Jika eksekusi mesin status gagal mencapai status terminal sebelum tindakan CodePipeline Step Functions mencapai batas waktu (default 7 hari), eksekusi tindakan gagal. Mesin negara mungkin terus berlanjut meskipun kegagalan ini. Untuk informasi selengkapnya tentang batas waktu eksekusi mesin status di Step Functions, lihat Alur Kerja Standar vs Ekspres.

    catatan

    Anda dapat meminta peningkatan kuota untuk batas waktu tindakan pemanggilan untuk akun dengan tindakan tersebut. Namun, peningkatan kuota berlaku untuk semua tindakan jenis ini di semua Wilayah untuk akun tersebut.

  • Jika eksekusi mesin status mencapai status terminalFAILED, TIMED _OUT, atauABORTED, eksekusi tindakan gagal.

Mesin negara ekspres

Jika eksekusi mesin keadaan ekspres berhasil dimulai, eksekusi aksi pemanggilan selesai dengan sukses.

Pertimbangan untuk tindakan yang dikonfigurasi untuk mesin keadaan ekspres:

  • Anda tidak dapat menunjuk artefak keluaran.

  • Tindakan tidak menunggu eksekusi mesin negara selesai.

  • Setelah eksekusi tindakan dimulai CodePipeline, eksekusi tindakan berhasil bahkan jika eksekusi mesin status gagal.

Penanganan kesalahan

  • Jika CodePipeline gagal memulai eksekusi mesin status, eksekusi tindakan gagal. Kalau tidak, tindakan segera berhasil. Tindakan berhasil CodePipeline terlepas dari berapa lama eksekusi mesin negara untuk menyelesaikan atau hasilnya.

Sumber daya terkait berikut dapat membantu Anda saat Anda bekerja dengan tindakan ini.