翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
CloudWatch ログを使用した Step Functions の実行履歴のログ記録
標準ワークフローは実行履歴を に記録しますが AWS Step Functions、オプションで Amazon CloudWatch Logs へのログ記録を設定できます。
Express ワークフローは、標準ワークフローとは異なり AWS Step Functionsに実行履歴を記録しません。Express ワークフローの実行履歴と結果を表示するには、Amazon CloudWatch Logs へのログ記録を設定する必要があります。ログを発行しても、実行がブロックまたは遅くなることはありません。
注記
ログ記録を設定すると、CloudWatch ログ料金
のログ記録の設定
Step Functions コンソールを使用して標準ワークフローを作成する場合、 CloudWatch ログへのログ記録を有効にするようには設定されません。Step Functions コンソールを使用して作成された Express ワークフローは、デフォルトで CloudWatch ログへのログ記録を有効にするように設定されます。
Express ワークフローの場合、Step Functions は Logs に必要な AWS Identity and Access Management (IAM) CloudWatch ポリシーを持つロールを作成できます。API、、または を使用して標準ワークフローまたは Express ワークフローを作成する場合CLI AWS CloudFormation、Step Functions はデフォルトでログ記録を有効にせず、ロールに必要なアクセス許可があることを確認する必要があります。
コンソールから開始された実行ごとに、Step Functions は CloudWatch Logs へのリンクを提供します。このリンクには、その実行に固有のログイベントを取得するための正しいフィルターが設定されています。
オプションで、ログを暗号化するようにカスタマーマネージド AWS KMS キーを設定できます。詳細とアクセス許可の設定保管中のデータ暗号化については、「」を参照してください。
ログ記録を設定するには、 CreateStateMachineまたは を使用するときに LoggingConfigurationパラメータを渡すことができますUpdateStateMachine。 CloudWatch Logs Insights を使用して CloudWatch 、ログ内のデータをさらに分析できます。詳細については、「Logs Insights を使用した CloudWatchログデータの分析」を参照してください。
CloudWatch ログペイロード
実行履歴イベントは、入力プロパティまたは出力プロパティを定義に含めることができるかもしれません。 CloudWatch ログに送信されたエスケープされた入力またはエスケープされた出力が 248KBを超える場合、 CloudWatch ログのクォータの結果として切り捨てられます。
-
inputDetails
とoutputDetails
パイプラインをレビューして、ペイロードが切り捨てられたかどうかを確定できます。詳細については、HistoryEventExecutionDataDetails
データを参照してください。 -
標準ワークフローs では、
GetExecutionHistory
を使用して完全な実行履歴を表示できます。 -
GetExecutionHistory
は、Express ワークフローでは使用できません。完全な入力と出力を確認したい場合は、Amazon S3 を使用できますARNs。詳細については、「Step Functions で大きなペイロードを渡すARNs代わりに Amazon S3 を使用する」を参照してください。
IAM CloudWatch ログへのログ記録のポリシー
また、次の例に示すように、 CloudWatch ログにログ記録するための適切なアクセス許可を持つようにステートマシンの実行IAMロールを設定する必要があります。
IAM ポリシーの例
以下は、アクセス許可を設定するために使用できるポリシーの例です。次の例に示すように、 CreateLogDelivery や などのアクションは で定義されたリソースタイプAmazon CloudWatch Logsをサポートしていないため CloudWatch API DescribeLogGroups、 Resource
フィールドで * を指定する必要があります。詳細については、「Amazon CloudWatch Logs で定義されるアクション」を参照してください。
-
CloudWatch リソースの詳細については、「Amazon ユーザーガイド」の「 CloudWatch Logsリソースとオペレーション」を参照してください。 CloudWatch
-
ログへのログの送信を設定するために必要なアクセス許可については、 CloudWatch 「 に送信されたログ」というタイトルのセクションの「ユーザーアクセス許可」を参照してください。 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": "*" } ] }
CloudWatch ログにアクセスできない
CloudWatch ログにアクセスできない場合は、次の操作が完了していることを確認してください。
-
ステートマシンの実行IAMロールに、 CloudWatch ログへのログ記録のための適切なアクセス許可を付与するように設定しました。
CreateStateMachine または UpdateStateMachineリクエストを使用している場合は、前の例 に示すように、 アクセス許可を含む
roleArn
パラメータでIAMロールを指定していることを確認してください。 -
Logs リソースポリシーが CloudWatch Logs リソースポリシーの 5120 CloudWatch 文字の制限を超えていないことを確認しました。
文字数制限を超えた場合は、 CloudWatch ログリソースポリシーから不要なアクセス許可を削除するか、ロググループ名の前に を付けます。これにより
/aws/vendedlogs
、リソースポリシーにさらに文字を追加することなく、ロググループにアクセス許可が付与されます。Step Function コンソールでロググループを作成すると、ロググループ名に/aws/vendedlogs/states
のプレフィックスが付きます。詳細については、「Amazon CloudWatch Logs リソースポリシーのサイズ制限の回避」を参照してください。