Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jalankan tugas Amazon ECS atau Fargate dengan Step Functions
Pelajari cara mengintegrasikan Step Functions dengan Amazon ECS atau Fargate untuk menjalankan dan mengelola tugas. Di AmazonECS, tugas adalah unit dasar perhitungan. Tugas didefinisikan oleh definisi tugas yang menentukan bagaimana kontainer Docker harus dijalankan, termasuk image kontainer, CPU dan batas memori, konfigurasi jaringan, dan parameter lainnya. Halaman ini mencantumkan ECS API tindakan Amazon yang tersedia dan memberikan petunjuk tentang cara meneruskan data ke ECS tugas Amazon menggunakan Step Functions.
Untuk mempelajari tentang mengintegrasikan dengan AWS layanan di Step Functions, lihat Integrasi layanan danMeneruskan parameter ke layanan API di Step Functions.
Fitur utama integrasi ECS Amazon/Fargate yang Dioptimalkan
-
Pola Jalankan Tugas (.sync) integrasi didukung.
ecs:runTask
dapat mengembalikan respons HTTP 200, tetapi memilikiFailures
bidang yang tidak kosong sebagai berikut:Request Response: Kembalikan respons dan jangan gagal tugas. Ini sama dengan tidak ada optimasi.
Jalankan Token Job atau Tugas: Jika
Failures
bidang yang tidak kosong ditemukan, tugas gagal denganAmazonECS.Unknown
kesalahan.
ECSAmazon/Fargate yang didukung APIs
-
RunTask
memulai tugas baru menggunakan ketentuan tugas yang ditentukan.
Parameter di Step Functions dinyatakan dalam PascalCase
Bahkan jika layanan asli API adacamelCase, misalnya API tindakanstartSyncExecution
, Anda menentukan parameter di PascalCase, seperti:StateMachineArn
.
Meneruskan Data ke ECS Tugas Amazon
Untuk mempelajari tentang mengintegrasikan dengan AWS layanan di Step Functions, lihat Integrasi layanan danMeneruskan parameter ke layanan API di Step Functions.
Anda dapat menggunakan overrides
untuk mengganti perintah default untuk penampung, dan meneruskan input ke ECS tugas Amazon Anda. Lihat ContainerOverride
. Dalam contoh, kita telah menggunakan JsonPath untuk meneruskan nilai ke Task
dari input ke Task
status.
Berikut ini mencakup Task
status yang menjalankan ECS tugas Amazon dan menunggu sampai selesai.
{
"StartAt": "Run an ECS Task and wait for it to complete",
"States": {
"Run an ECS Task and wait for it to complete": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"Cluster": "cluster-arn
",
"TaskDefinition": "job-id
",
"Overrides": {
"ContainerOverrides": [
{
"Name": "container-name
",
"Command.$": "$.commands"
}
]
}
},
"End": true
}
}
}
Baris "Command.$": "$.commands"
di ContainerOverrides
meneruskan perintah dari input status ke kontainer.
Untuk contoh sebelumnya, masing-masing perintah akan diteruskan sebagai pembatalan kontainer jika input untuk eksekusi adalah sebagai berikut.
{
"commands": [
"test command 1",
"test command 2",
"test command 3"
]
}
Berikut ini mencakup Task
status yang menjalankan ECS tugas Amazon, dan kemudian menunggu token tugas dikembalikan. Lihat Tunggu Callback dengan Task Token.
{
"StartAt":"Manage ECS task",
"States":{
"Manage ECS task":{
"Type":"Task",
"Resource":"arn:aws:states:::ecs:runTask.waitForTaskToken",
"Parameters":{
"LaunchType":"FARGATE",
"Cluster":"cluster-arn
",
"TaskDefinition":"job-id
",
"Overrides":{
"ContainerOverrides":[
{
"Name":"container-name
",
"Environment":[
{
"Name":"TASK_TOKEN_ENV_VARIABLE",
"Value.$":"$$.Task.Token"
}
]
}
]
}
},
"End":true
}
}
}
IAMkebijakan untuk memanggil AmazonECS/AWS Fargate
Contoh templat berikut menunjukkan cara AWS Step Functions menghasilkan IAM kebijakan berdasarkan sumber daya dalam definisi mesin status Anda. Untuk informasi selengkapnya, silakan lihat Bagaimana Step Functions menghasilkan IAM kebijakan untuk layanan terintegrasi dan Temukan pola integrasi layanan di Step Functions.
Karena nilai untuk TaskId
tidak diketahui sampai tugas diajukan, Step Functions membuat kebijakan "Resource": "*"
lebih istimewa.
catatan
Anda hanya dapat menghentikan tugas Amazon Elastic Container Service (AmazonECS) yang dimulai oleh Step Functions, terlepas dari "*"
IAM kebijakan tersebut.
Jika ECS tugas Amazon terjadwal Anda memerlukan penggunaan peran eksekusi tugas, peran tugas, atau penggantian peran tugas, Anda harus menambahkan iam:PassRole
izin untuk setiap peran eksekusi tugas, peran tugas, atau penggantian peran tugas ke peran CloudWatch Peristiwa IAM entitas pemanggil, yang dalam hal ini adalah Step Functions.