Jalankan AWS Batch pekerjaan dengan Lambda - AWS Step Functions

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

Jalankan AWS Batch pekerjaan dengan Lambda

Proyek sampel ini menunjukkan cara menggunakan Step Functions untuk melakukan pra-proses data dengan AWS Lambda fungsi dan kemudian mengatur AWS Batch pekerjaan.

Dalam proyek ini, Step Functions menggunakan mesin status untuk memanggil fungsi Lambda untuk melakukan pra-pemrosesan sederhana sebelum pekerjaan AWS Batch dikirimkan. Beberapa pekerjaan dapat dipanggil tergantung pada hasil atau keberhasilan yang sebelumnya.

Langkah 1: Buat Mesin Negara dan Sumber Daya Penyediaan

  1. Buka Konsol Step Functions dan pilih Buat mesin status.

  2. Ketik Batch job with Lambda di kotak pencarian, lalu pilih Pekerjaan batch dengan Lambda dari hasil pencarian yang dikembalikan.

  3. Pilih Next untuk melanjutkan.

  4. 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 Lambda fungsi

    • Tugas AWS Batch

    • Mesin AWS Step Functions negara

    • Peran terkait AWS Identity and Access Management (IAM)

    Gambar berikut menunjukkan grafik alur kerja untuk pekerjaan Batch dengan proyek Lambda sampel:

    Grafik alur kerja pekerjaan Batch dengan proyek Lambda sampel.
  5. Pilih Gunakan templat untuk melanjutkan pilihan Anda.

  6. Lakukan salah satu hal berikut ini:

    • Jika Anda memilih Build on it, 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

  1. Pada halaman mesin Negara, pilih proyek sampel Anda.

  2. Pada halaman proyek sampel, pilih Mulai eksekusi.

  3. Dalam kotak dialog Mulai eksekusi, lakukan hal berikut:

    1. (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

    2. (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.

    3. Pilih Mulai Eksekusi.

    4. 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 using batch job with pre-processing lambda", "StartAt": "Generate batch job input", "TimeoutSeconds": 3600, "States": { "Generate batch job input": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.batch_input", "Parameters": { "FunctionName": "<GENERATE_BATCH_JOB_INPUT_LAMBDA_FUNCTION_NAME>" }, "Next": "Submit Batch Job" }, "Submit Batch Job": { "Type": "Task", "Resource": "arn:aws:states:::batch:submitJob.sync", "Parameters": { "JobName": "BatchJobFanOut", "JobQueue": "<BATCH_QUEUE_ARN>", "JobDefinition": "<BATCH_JOB_DEFINITION_ARN>", "Parameters.$": "$.batch_input" }, "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 BatchJobWithLambdaAccessPolicy
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:us-west-2:123456789012:ManageBatchJob-SNSTopic-JHLYYG7AZPZI" ], "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" } ] }
contoh InvokeGenerateBatchJobMapLambdaPolicy
{ "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:StepFunctionsSample-BatchWithL-GenerateBatchJobMap-444455556666", "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.