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 mencatat 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.
Jaminan pengiriman log
CloudWatch Log Amazon dikirimkan dengan upaya terbaik. Kelengkapan dan ketepatan waktu entri log tidak dijamin. Jika Anda memerlukan riwayat alur kerja yang dijamin di Alur Kerja Ekspres, sebaiknya Anda menerapkan langkah-langkah alur kerja untuk merekam data dalam layanan penyimpanan data yang sesuai seperti Amazon DynamoDB. Atau, Anda dapat mempertimbangkan untuk menggunakan Alur Kerja Standar untuk riwayat eksekusi yang terjamin.
Informasi harga
Saat Anda mengonfigurasi pencatatan, biaya CloudWatch Log
Konfigurasikan logging
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 kebijakan AWS Identity and Access Management (IAM) yang diperlukan untuk CloudWatch Log. Jika Anda membuat Alur Kerja Standar, atau Alur Kerja Ekspres menggunakan API, CLI, atau AWS CloudFormation, Step Functions tidak akan mengaktifkan log 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 secara opsional mengonfigurasi AWS KMS kunci yang dikelola pelanggan 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 248 KiB, itu akan terpotong sebagai akibat dari kuota Log. CloudWatch
-
Anda dapat menentukan apakah muatan telah terpotong dengan meninjau properti
inputDetailsdanoutputDetails. Untuk informasi selengkapnya, lihatHistoryEventExecutionDataDetailsTipe Data. -
Untuk Alur Kerja Standar, Anda dapat melihat riwayat eksekusi penuh dengan menggunakan
GetExecutionHistory. -
GetExecutionHistorytidak tersedia untuk Alur Kerja Ekspres. Jika Anda ingin melihat input dan output lengkap, Anda dapat menggunakan Amazon S3 ARNs. Untuk informasi selengkapnya, lihat Menggunakan Amazon S3 ARNs alih-alih melewatkan muatan besar di Step Functions.
Kebijakan IAM untuk masuk ke CloudWatch Log
Anda juga perlu mengonfigurasi peran IAM eksekusi mesin status Anda agar memiliki izin yang tepat untuk masuk ke CloudWatch Log seperti yang ditunjukkan pada contoh berikut.
Contoh kebijakan IAM
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 Tindakan API, 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 Logssumber 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 yang 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": "*" } ] }
Tingkat log untuk peristiwa eksekusi Step Functions
Tingkat 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 |
Memecahkan masalah logging ke Log CloudWatch
Jika mesin status Anda tidak dapat mengirim CloudWatch log ke Log atau Anda menerima kesalahan: "AccessDeniedException : The state machine IAM Role is not authorized to access
the Log Destination“, coba langkah-langkah berikut:
-
Verifikasi peran eksekusi mesin status Anda memiliki izin untuk masuk ke CloudWatch Log.
Saat Anda memanggil CreateStateMachineatau titik akhir UpdateStateMachineAPI, pastikan peran IAM yang ditentukan dalam
roleArnparameter memberikan izin yang diperlukan, yang ditunjukkan dalam contoh kebijakan IAM sebelumnya. -
Pastikan kebijakan sumber daya CloudWatch Log tidak melebihi batas 5.120 karakter.
Jika kebijakan melebihi batas karakter, awali nama grup log Anda
/aws/vendedlogs/statesuntuk 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, lihatMenghindari batas ukuran kebijakan CloudWatch sumber daya. -
Verifikasi jumlah kebijakan sumber daya CloudWatch log log di akun kurang dari sepuluh.
CloudWatch Log memiliki kuota sepuluh kebijakan sumber daya per wilayah, per akun. Jika Anda mencoba mengaktifkan logging pada mesin status yang sudah memiliki sepuluh kebijakan sumber daya, mesin status tidak akan dibuat atau diperbarui, dan Anda akan menerima kesalahan. Untuk informasi selengkapnya tentang kuota logging, lihat Kuota CloudWatch log
Untuk memverifikasi masalah, periksa jumlah kebijakan sumber daya menggunakan perintah CLI:
aws logs describe-resource-policiesUntuk mengatasi masalah, ubah kebijakan sumber daya yang ada.
Pertama, buat cadangan kebijakan yang ada. Kemudian, gabungkan tindakan atau sumber daya serupa ke dalam kebijakan baru dan gunakan perintah CLI berikut untuk membuat sumber pengiriman baru di akun:
Setelah mencadangkan dan memperbarui kebijakan, hapus kebijakan yang tidak digunakan dengan perintah berikut:
aws logs delete-resource-policy --policy-name <PolicyNameToBeDeleted>