AWS Step Functions - 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

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

Nama Sumber Daya Amazon (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 objek JSON 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 respons Step Functions DescribeExecution API setelah eksekusi mesin status berhasil diselesaikan.

    • 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 Variabel.

StateMachineArn

ARN dari mesin negara.

ExecutionArn

ARN dari eksekusi 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 masukan 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 objek {} JSON 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 yang 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 hingga 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 respons Step Functions DescribeExecution API setelah eksekusi mesin status berhasil diselesaikan. Perhatikan bahwa ada batasan panjang keluaran yang diberlakukan pada API ini.

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 terminal FAILED, TIMED_OUT, atau ABORTED, 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.