Menggunakan CloudWatch Log untuk mencatat riwayat eksekusi di Step Functions - AWS Step Functions

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

Menggunakan CloudWatch Log untuk mencatat riwayat eksekusi di Step Functions

Alur Kerja Standar merekam riwayat eksekusi di AWS Step Functions, meskipun Anda dapat mengonfigurasi logging ke Amazon CloudWatch Logs secara opsional.

Tidak seperti Alur Kerja Standar, Alur Kerja Ekspres tidak merekam riwayat eksekusi di AWS Step Functions. Untuk melihat riwayat eksekusi dan hasil untuk Alur Kerja Ekspres, Anda harus mengonfigurasi pencatatan ke Amazon CloudWatch Logs. Penerbitan log tidak memblokir atau memperlambat eksekusi.

catatan

Saat Anda mengonfigurasi pencatatan, biaya CloudWatch Log akan berlaku dan Anda akan ditagih dengan tarif log terjual. Untuk informasi selengkapnya, lihat Log Terjual di bawah tab Log di halaman CloudWatch Harga.

Konfigurasikan log

Saat Anda membuat Alur Kerja Standar menggunakan konsol Step Functions, mesin status tersebut tidak akan dikonfigurasi untuk mengirim CloudWatch log ke Log. Saat Anda membuat Alur Kerja Ekspres menggunakan konsol Step Functions, mesin status tersebut secara default akan dikonfigurasi untuk mengirim CloudWatch log ke Log.

Untuk alur kerja Express, Step Functions dapat membuat peran dengan yang diperlukan AWS Identity and Access Management (IAM) kebijakan untuk CloudWatch Log. Jika Anda membuat Alur Kerja Standar, atau Alur Kerja Ekspres menggunakanAPI, CLI atau AWS CloudFormation, Step Functions tidak akan mengaktifkan logging secara default, dan Anda perlu memastikan peran Anda memiliki izin yang diperlukan.

Untuk setiap eksekusi yang dimulai dari konsol, Step Functions menyediakan tautan ke CloudWatch Log, dikonfigurasi dengan filter yang benar untuk mengambil peristiwa log khusus untuk eksekusi tersebut.

Anda dapat mengonfigurasi pelanggan yang dikelola secara opsional AWS KMS kunci untuk mengenkripsi log Anda. Lihat Enkripsi data saat istirahat untuk detail dan pengaturan izin.

Untuk mengkonfigurasi logging, Anda dapat meneruskan LoggingConfigurationparameter saat menggunakan CreateStateMachineatau UpdateStateMachine. Anda dapat menganalisis data Anda lebih lanjut di CloudWatch Log dengan menggunakan Wawasan CloudWatch Log. Untuk informasi selengkapnya, lihat Menganalisis Data Log dengan Wawasan CloudWatch Log.

CloudWatch Log muatan

Peristiwa riwayat eksekusi mungkin berisi properti input atau output dalam ketetapannya. Jika input yang lolos atau output yang lolos yang dikirim ke CloudWatch Log melebihi 248KB, itu akan terpotong sebagai hasil dari kuota Log. CloudWatch

IAMKebijakan untuk masuk ke CloudWatch Log

Anda juga perlu mengonfigurasi IAM peran eksekusi mesin status Anda agar memiliki izin yang tepat untuk masuk ke CloudWatch Log seperti yang ditunjukkan pada contoh berikut.

IAMcontoh kebijakan

Berikut ini adalah contoh kebijakan yang dapat Anda gunakan untuk mengonfigurasi izin Anda. Seperti yang ditunjukkan pada contoh berikut, Anda perlu menentukan * di Resource lapangan. CloudWatch APItindakan, seperti CreateLogDelivery dan DescribeLogGroups, tidak mendukung tipe Sumber Daya yang ditentukan oleh Amazon CloudWatch Logs. Untuk informasi selengkapnya, lihat Tindakan yang ditentukan oleh Amazon CloudWatch Logs.

  • Untuk informasi tentang CloudWatch sumber daya, lihat CloudWatch Logs sumber daya dan operasi di Panduan CloudWatch Pengguna Amazon.

  • Untuk informasi tentang izin yang Anda perlukan untuk mengatur pengiriman CloudWatch log ke Log, lihat Izin pengguna di bagian berjudul Log dikirim ke CloudWatch Logs.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:CreateLogStream", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": "*" } ] }
Memecahkan masalah pencatatan mesin status ke Log CloudWatch

Jika mesin status Anda tidak dapat mengirim CloudWatch log ke Log, coba langkah-langkah berikut:

  1. Verifikasi peran eksekusi mesin status Anda memiliki izin untuk masuk ke CloudWatch Log.

    Saat Anda memanggil CreateStateMachineatau UpdateStateMachineAPItitik akhir, pastikan IAM peran yang ditentukan dalam roleArn parameter memberikan izin yang diperlukan, yang ditunjukkan dalam contoh kebijakan sebelumnyaIAM.

  2. Verifikasi kebijakan sumber daya CloudWatch Log tidak melebihi batas 5.120 karakter.

    Jika kebijakan melebihi batas karakter, awali nama grup log Anda /aws/vendedlogs/states untuk memberikan izin ke mesin status Anda dan hindari batas tersebut. Saat Anda membuat grup log di konsol Step Functions, nama grup log yang disarankan sudah diawali/aws/vendedlogs/states. Untuk informasi selengkapnya tentang praktik terbaik pencatatan, lihatCloudWatch Batas ukuran kebijakan sumber daya log.

Tingkat log untuk peristiwa eksekusi Step Functions

Level log berkisar dari ALL ERROR hingga FATAL keOFF. Semua jenis peristiwa dicatatALL, tidak ada jenis peristiwa yang dicatat saat disetel keOFF. Untuk ERROR dan FATAL, lihat tabel berikut.

Untuk informasi selengkapnya tentang data eksekusi yang ditampilkan untuk eksekusi Alur Kerja Ekspres berdasarkan level Log ini, lihat. Perbedaan pengalaman konsol standar dan Express

Jenis Acara ALL ERROR FATAL OFF

ChoiceStateEntered

Tercatat Tidak masuk Tidak masuk Tidak masuk

ChoiceStateExited

Tercatat Tidak masuk Tidak masuk Tidak masuk

ExecutionAborted

Tercatat Tercatat Tercatat Tidak masuk

ExecutionFailed

Tercatat Tercatat Tercatat Tidak masuk

ExecutionStarted

Tercatat Tidak masuk Tidak masuk Tidak masuk

ExecutionSucceeded

Tercatat Tidak masuk Tidak masuk Tidak masuk

ExecutionTimedOut

Tercatat Tercatat Tercatat Tidak masuk

FailStateEntered

Tercatat Tercatat Tidak masuk Tidak masuk

LambdaFunctionFailed

Tercatat Tercatat Tidak masuk Tidak masuk
LambdaFunctionScheduled Tercatat Tidak masuk Tidak masuk Tidak masuk

LambdaFunctionScheduleFailed

Tercatat Tercatat Tidak masuk Tidak masuk

LambdaFunctionStarted

Tercatat Tidak masuk Tidak masuk Tidak masuk

LambdaFunctionStartFailed

Tercatat Tercatat Tidak masuk Tidak masuk

LambdaFunctionSucceeded

Tercatat Tidak masuk Tidak masuk Tidak masuk

LambdaFunctionTimedOut

Tercatat Tercatat Tidak masuk Tidak masuk

MapIterationAborted

Tercatat Tercatat Tidak masuk Tidak masuk

MapIterationFailed

Tercatat Tercatat Tidak masuk Tidak masuk

MapIterationStarted

Tercatat Tidak masuk Tidak masuk Tidak masuk

MapIterationSucceeded

Tercatat Tidak masuk Tidak masuk Tidak masuk

MapRunAborted

Tercatat Tercatat Tidak masuk Tidak masuk

MapRunFailed

Tercatat Tercatat Tidak masuk Tidak masuk

MapStateAborted

Tercatat Tercatat Tidak masuk Tidak masuk

MapStateEntered

Tercatat Tidak masuk Tidak masuk Tidak masuk

MapStateExited

Tercatat Tidak masuk Tidak masuk Tidak masuk

MapStateFailed

Tercatat Tercatat Tidak masuk Tidak masuk

MapStateStarted

Tercatat Tidak masuk Tidak masuk Tidak masuk

MapStateSucceeded

Tercatat Tidak masuk Tidak masuk Tidak masuk

ParallelStateAborted

Tercatat Tercatat Tidak masuk Tidak masuk

ParallelStateEntered

Tercatat Tidak masuk Tidak masuk Tidak masuk

ParallelStateExited

Tercatat Tidak masuk Tidak masuk Tidak masuk
ParallelStateFailed Tercatat Tercatat Tidak masuk Tidak masuk

ParallelStateStarted

Tercatat Tidak masuk Tidak masuk Tidak masuk

ParallelStateSucceeded

Tercatat Tidak masuk Tidak masuk Tidak masuk

PassStateEntered

Tercatat Tidak masuk Tidak masuk Tidak masuk

PassStateExited

Tercatat Tidak masuk Tidak masuk Tidak masuk

SucceedStateEntered

Tercatat Tidak masuk Tidak masuk Tidak masuk

SucceedStateExited

Tercatat Tidak masuk Tidak masuk Tidak masuk

TaskFailed

Tercatat Tercatat Tidak masuk Tidak masuk

TaskScheduled

Tercatat Tidak masuk Tidak masuk Tidak masuk
TaskStarted Tercatat Tidak masuk Tidak masuk Tidak masuk

TaskStartFailed

Tercatat Tercatat Tidak masuk Tidak masuk

TaskStateAborted

Tercatat Tercatat Tidak masuk Tidak masuk

TaskStateEntered

Tercatat Tidak masuk Tidak masuk Tidak masuk
TaskStateExited Tercatat Tidak masuk Tidak masuk Tidak masuk
TaskSubmitFailed Tercatat Tercatat Tidak masuk Tidak masuk
TaskSubmitted Tercatat Tidak masuk Tidak masuk Tidak masuk
TaskSucceeded Tercatat Tidak masuk Tidak masuk Tidak masuk
TaskTimedOut Tercatat Tercatat Tidak masuk Tidak masuk
WaitStateAborted Tercatat Tercatat Tidak masuk Tidak masuk
WaitStateEntered Tercatat Tidak masuk Tidak masuk Tidak masuk
WaitStateExited Tercatat Tidak masuk Tidak masuk Tidak masuk