CloudWatch ログを使用した Step Functions の実行履歴のログ記録 - AWS Step Functions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CloudWatch ログを使用した Step Functions の実行履歴のログ記録

標準ワークフローは実行履歴を に記録しますが AWS Step Functions、オプションで Amazon CloudWatch Logs へのログ記録を設定できます。

Express ワークフローは、標準ワークフローとは異なり AWS Step Functionsに実行履歴を記録しません。Express ワークフローの実行履歴と結果を表示するには、Amazon CloudWatch Logs へのログ記録を設定する必要があります。ログを発行しても、実行がブロックまたは遅くなることはありません。

注記

ログ記録を設定すると、CloudWatch ログ料金が適用され、提供されたログ料金が請求されます。詳細については、「 料金表」ページの「ログ」タブの「Vended Logs」を参照してください。 CloudWatch

のログ記録の設定

Step Functions コンソールを使用して標準ワークフローを作成する場合、そのステートマシンは CloudWatch ログにログを送信するように設定されません。Step Functions コンソールを使用して Express ワークフローを作成すると、そのステートマシンはデフォルトで CloudWatch Logs にログを送信するように設定されます。

Express ワークフローの場合、Step Functions は CloudWatch Logs に必要な AWS Identity and Access Management (IAM) ポリシーを持つロールを作成できます。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 Logs に送信されたエスケープ入力またはエスケープ出力が 248 KiB を超える場合、 CloudWatch Logs クォータの結果として切り捨てられます。

IAM CloudWatch ログへのログ記録のポリシー

また、次の例に示すように、 CloudWatch ログにログ記録するための適切なアクセス許可を持つようにステートマシンの実行IAMロールを設定する必要があります。

IAM ポリシーの例

以下は、アクセス許可を設定するために使用できるポリシーの例です。次の例に示すように、 Resourceフィールドに * を指定する必要があります。 CloudWatch API CreateLogDelivery や などの アクションは DescribeLogGroups、 で定義されたリソースタイプをサポートしていません。Amazon CloudWatch Logs。 詳細については、「 で定義されるアクション」を参照してください。Amazon 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 Logs へのステートマシンのログ記録のトラブルシューティング

ステートマシンが CloudWatch ログにログを送信できない場合は、次の手順を試してください。

  1. ステートマシンの実行ロールに CloudWatch ログに記録するアクセス許可があることを確認します。

    CreateStateMachine または UpdateStateMachineAPIエンドポイントを呼び出すときは、 roleArnパラメータで指定されたIAMロールが、前のIAMポリシー例に示すように、必要なアクセス許可を提供していることを確認してください。

  2. CloudWatch Logs リソースポリシーが 5,120 文字の制限を超えていないことを確認します。

    ポリシーが文字制限を超える場合は、ロググループ名に /aws/vendedlogs/states のプレフィックスを付けて、ステートマシンにアクセス許可を付与し、制限を回避します。Step Function コンソールでロググループを作成すると、推奨されるロググループ名には既に /aws/vendedlogs/states のプレフィックスが付いています。ログ記録のベストプラクティスの詳細については、「CloudWatch ログリソースポリシーのサイズ制限」を参照してください。

Step Functions 実行イベントのログレベル

ログレベルの範囲は ALL から ERRORFATALOFF です。すべてのイベントタイプは ALL に対してログに記録され、OFF に設定するとイベントタイプはログに記録されません。ERROR および FATAL については、次の表を参照してください。

これらのログレベルに基づいて Express ワークフローを実行したときに表示される実行データの詳細については、「Standard コンソールと Express コンソールのエクスペリエンスの違い」を参照してください。

イベントタイプ ALL ERROR FATAL OFF

ChoiceStateEntered

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

ChoiceStateExited

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

ExecutionAborted

ログ記録済み ログ記録済み ログ記録済み ログに記録されない

ExecutionFailed

ログ記録済み ログ記録済み ログ記録済み ログに記録されない

ExecutionStarted

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

ExecutionSucceeded

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

ExecutionTimedOut

ログ記録済み ログ記録済み ログ記録済み ログに記録されない

FailStateEntered

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

LambdaFunctionFailed

ログ記録済み ログ記録済み ログに記録されない ログに記録されない
LambdaFunctionScheduled ログ記録済み ログに記録されない ログに記録されない ログに記録されない

LambdaFunctionScheduleFailed

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

LambdaFunctionStarted

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

LambdaFunctionStartFailed

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

LambdaFunctionSucceeded

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

LambdaFunctionTimedOut

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

MapIterationAborted

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

MapIterationFailed

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

MapIterationStarted

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

MapIterationSucceeded

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

MapRunAborted

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

MapRunFailed

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

MapStateAborted

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

MapStateEntered

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

MapStateExited

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

MapStateFailed

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

MapStateStarted

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

MapStateSucceeded

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

ParallelStateAborted

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

ParallelStateEntered

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

ParallelStateExited

ログ記録済み ログに記録されない ログに記録されない ログに記録されない
ParallelStateFailed ログ記録済み ログ記録済み ログに記録されない ログに記録されない

ParallelStateStarted

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

ParallelStateSucceeded

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

PassStateEntered

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

PassStateExited

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

SucceedStateEntered

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

SucceedStateExited

ログ記録済み ログに記録されない ログに記録されない ログに記録されない

TaskFailed

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

TaskScheduled

ログ記録済み ログに記録されない ログに記録されない ログに記録されない
TaskStarted ログ記録済み ログに記録されない ログに記録されない ログに記録されない

TaskStartFailed

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

TaskStateAborted

ログ記録済み ログ記録済み ログに記録されない ログに記録されない

TaskStateEntered

ログ記録済み ログに記録されない ログに記録されない ログに記録されない
TaskStateExited ログ記録済み ログに記録されない ログに記録されない ログに記録されない
TaskSubmitFailed ログ記録済み ログ記録済み ログに記録されない ログに記録されない
TaskSubmitted ログ記録済み ログに記録されない ログに記録されない ログに記録されない
TaskSucceeded ログ記録済み ログに記録されない ログに記録されない ログに記録されない
TaskTimedOut ログ記録済み ログ記録済み ログに記録されない ログに記録されない
WaitStateAborted ログ記録済み ログ記録済み ログに記録されない ログに記録されない
WaitStateEntered ログ記録済み ログに記録されない ログに記録されない ログに記録されない
WaitStateExited ログ記録済み ログに記録されない ログに記録されない ログに記録されない