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
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
-
Anda dapat menentukan apakah muatan telah terpotong dengan meninjau properti
inputDetails
danoutputDetails
. Untuk informasi selengkapnya, lihatHistoryEventExecutionDataDetails
Tipe Data. -
Untuk Alur Kerja Standar, Anda dapat melihat riwayat eksekusi penuh dengan menggunakan
GetExecutionHistory
. -
GetExecutionHistory
tidak tersedia untuk Alur Kerja Ekspres. Jika Anda ingin melihat input dan output lengkap, Anda dapat menggunakan Amazon S3ARNs. Untuk informasi selengkapnya, lihat Menggunakan Amazon S3 ARNs alih-alih melewatkan muatan besar di Step Functions.
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:
-
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. -
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 |