Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan Step Functions dan Amazon SNS untuk memberitahukan hasil pekerjaan AWS Batch
Contoh proyek ini menunjukkan cara menggunakan Step Functions untuk menjalankan AWS Batch pekerjaan menggunakan mesin status dengan kemampuan penanganan kesalahan yang menggunakan Amazon SNS untuk memberikan pemberitahuan tentang keberhasilan atau kegagalan.
Dalam proyek ini, Step Functions menggunakan mesin negara untuk memanggil AWS Batch pekerjaan secara serempak. Kemudian menunggu pekerjaan berhasil atau gagal, mencoba lagi dan menangkap kesalahan ketika pekerjaan gagal, kemudian mengirim Amazon SNS topik dengan pesan tentang apakah pekerjaan itu berhasil atau gagal.
Langkah 1: Buat mesin negara dan sumber daya penyediaan
-
Buka Konsol Step Functions
dan pilih Buat mesin status. -
Ketik
Manage a batch job
di kotak pencarian, lalu pilih Kelola pekerjaan batch dari hasil pencarian yang dikembalikan. -
Pilih Next untuk melanjutkan.
-
Step Functions mencantumkan yang AWS layanan digunakan dalam proyek sampel yang Anda pilih. Ini juga menunjukkan grafik alur kerja untuk proyek sampel. Menyebarkan proyek ini ke Anda Akun AWS atau menggunakannya sebagai titik awal untuk membangun proyek Anda sendiri. Berdasarkan cara Anda ingin melanjutkan, pilih Jalankan demo atau Bangun di atasnya.
Proyek contoh ini menyebarkan sumber daya berikut:
-
Sebuah AWS Batch pekerjaan
-
SNSTopik Amazon
-
Mesin AWS Step Functions negara
-
Peran terkait AWS Identity and Access Management (IAM)
Gambar berikut menunjukkan grafik alur kerja untuk Mengelola proyek sampel pekerjaan batch:
-
-
Pilih Gunakan templat untuk melanjutkan pilihan Anda.
-
Lakukan salah satu hal berikut ini:
-
Jika Anda memilih Build di atasnya, Step Functions akan membuat prototipe alur kerja, tetapi tidak menyebarkan sumber daya dalam definisi alur kerja, sehingga Anda dapat terus membangun prototipe alur kerja Anda.
Di Workflow StudioMode desain, Anda dapat menambahkan status ke dalam prototipe alur kerja Anda. Atau, Anda dapat beralih ke Mode kode untuk menggunakan editor kode terintegrasi untuk mengedit definisi Amazon States Language (ASL) mesin status Anda dari konsol Step Functions.
penting
Anda mungkin perlu memperbarui placeholder Amazon Resource Name (ARN) untuk sumber daya yang digunakan dalam proyek sampel sebelum Anda dapat menjalankan alur kerja Anda.
-
Jika Anda memilih Jalankan demo, Step Functions akan membuat proyek hanya-baca yang menggunakan AWS CloudFormation templat untuk menyebarkan AWS sumber daya dalam templat tersebut ke templat Anda. Akun AWS Anda dapat melihat definisi mesin status dengan memilih mode Kode.
Pilih Deploy dan jalankan untuk menyebarkan proyek dan membuat sumber daya.
Perhatikan bahwa penerapan dapat memakan waktu hingga 10 menit untuk sumber daya dan IAM izin dibuat. Saat sumber daya Anda sedang digunakan, Anda dapat membuka tautan AWS CloudFormation Stack ID untuk melihat sumber daya mana yang sedang disediakan.
Setelah semua sumber daya dibuat, Anda akan melihat proyek di halaman mesin Negara di konsol.
penting
Biaya standar mungkin berlaku untuk setiap layanan yang digunakan dalam CloudFormation templat.
-
Langkah 2: Jalankan mesin negara
-
Pada halaman mesin Negara, pilih proyek sampel Anda.
-
Pada halaman proyek sampel, pilih Mulai eksekusi.
-
Dalam kotak dialog Mulai eksekusi, lakukan hal berikut:
-
(Opsional) Untuk mengidentifikasi eksekusi Anda, Anda dapat menentukan nama, atau menggunakan nama eksekusi default yang dihasilkan.
catatan
Step Functions menerima nama untuk mesin negara, eksekusi, aktivitas, dan label yang berisi ASCII non-karakter. Karena nama dengan ASCII non-karakter tidak akan berfungsi dengan Amazon CloudWatch, sebaiknya gunakan hanya ASCII charcter sehingga Anda dapat melacak metrik. CloudWatch
-
(Opsional) Dalam kotak Input, masukkan nilai input dalam JSON format untuk menjalankan alur kerja Anda.
Jika Anda memilih untuk Menjalankan demo, Anda tidak perlu memberikan input eksekusi apa pun.
catatan
Jika proyek demo yang Anda gunakan berisi data input eksekusi yang telah diisi sebelumnya, gunakan input tersebut untuk menjalankan mesin status.
-
Pilih Mulai Eksekusi.
-
Konsol Step Functions mengarahkan Anda ke halaman yang berjudul dengan ID eksekusi Anda. Halaman ini dikenal sebagai halaman Detail Eksekusi. Di halaman ini, Anda dapat meninjau hasil eksekusi saat eksekusi berlangsung atau setelah selesai.
Untuk meninjau hasil eksekusi, pilih status individual pada tampilan Grafik, lalu pilih tab individual di Detail langkah panel untuk melihat detail setiap status termasuk input, output, dan definisi masing-masing. Untuk detail tentang informasi eksekusi yang dapat Anda lihat di halaman Rincian Eksekusi, lihatHalaman Detail Eksekusi - Ikhtisar antarmuka.
-
Contoh Kode Mesin Status
Mesin status dalam proyek sampel ini terintegrasi dengan AWS Batch dan Amazon SNS dengan meneruskan parameter langsung ke sumber daya tersebut.
Jelajahi contoh mesin status ini untuk melihat bagaimana Step Functions mengontrol AWS Batch dan Amazon SNS dengan menghubungkan ke Amazon Resource Name (ARN) di Resource
bidang, dan dengan meneruskan Parameters
ke layananAPI.
Untuk informasi selengkapnya tentang AWS Step Functions cara mengontrol AWS layanan lain, lihatMengintegrasikan layanan lain dengan Step Functions.
{
"Comment": "An example of the Amazon States Language for notification on an AWS Batch job completion",
"StartAt": "Submit Batch Job",
"TimeoutSeconds": 3600,
"States": {
"Submit Batch Job": {
"Type": "Task",
"Resource": "arn:aws:states:::batch:submitJob.sync",
"Parameters": {
"JobName": "BatchJobNotification",
"JobQueue": "arn:aws:batch:us-west-2
:123456789012
:job-queue/BatchJobQueue-123456789abcdef
",
"JobDefinition": "arn:aws:batch:us-west-2
:123456789012
:job-definition/BatchJobDefinition-123456789abcdef
:1"
},
"Next": "Notify Success",
"Retry": [
{
"ErrorEquals": [
"States.ALL"
],
"IntervalSeconds": 30,
"MaxAttempts": 2,
"BackoffRate": 1.5
}
],
"Catch": [
{
"ErrorEquals": [ "States.ALL" ],
"Next": "Notify Failure"
}
]
},
"Notify Success": {
"Type": "Task",
"Resource": "arn:aws:states:::sns:publish",
"Parameters": {
"Message": "Batch job submitted through Step Functions succeeded",
"TopicArn": "arn:aws:sns:us-west-2
:123456789012
:StepFunctionsSample-BatchJobManagement12345678-9abc-def0-1234-567890abcdef
-SNSTopic-A2B3C4D5E6F7G
"
},
"End": true
},
"Notify Failure": {
"Type": "Task",
"Resource": "arn:aws:states:::sns:publish",
"Parameters": {
"Message": "Batch job submitted through Step Functions failed",
"TopicArn": "arn:aws:sns:us-west-2
:123456789012
:StepFunctionsSample-BatchJobManagement12345678-9abc-def0-1234-567890abcdef
-SNSTopic-A2B3C4D5E6F7G
"
},
"End": true
}
}
}
IAMContoh
Kebijakan contoh AWS Identity and Access Management (IAM) yang dihasilkan oleh proyek sampel ini mencakup hak istimewa paling sedikit yang diperlukan untuk mengeksekusi mesin negara dan sumber daya terkait. Kami menyarankan Anda hanya menyertakan izin yang diperlukan dalam IAM kebijakan Anda.
contoh BatchJobNotificationAccessPolicy
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"sns:Publish"
],
"Resource": [
"arn:aws:sns:us-west-2
:123456789012
:StepFunctionsSample-BatchJobManagement12345678-9abc-def0-1234-567890abcdef
-SNSTopic-A2B3C4D5E6F7G
"
],
"Effect": "Allow"
},
{
"Action": [
"batch:SubmitJob",
"batch:DescribeJobs",
"batch:TerminateJob"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:us-west-2
:123456789012
:rule/StepFunctionsGetEventsForBatchJobsRule"
],
"Effect": "Allow"
}
]
}
Untuk informasi tentang cara mengonfigurasi IAM saat menggunakan Step Functions dengan AWS layanan lain, lihatBagaimana Step Functions menghasilkan IAM kebijakan untuk layanan terintegrasi.