翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 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 クォータの結果として切り捨てられます。
-
inputDetails
とoutputDetails
パイプラインをレビューして、ペイロードが切り捨てられたかどうかを確定できます。詳細については、HistoryEventExecutionDataDetails
データを参照してください。 -
標準ワークフローs では、
GetExecutionHistory
を使用して完全な実行履歴を表示できます。 -
GetExecutionHistory
は、Express ワークフローでは使用できません。完全な入力と出力を確認するには、Amazon S3 を使用できますARNs。詳細については、「Step Functions で大きなペイロードを渡すARNs代わりに Amazon S3 を使用する」を参照してください。
IAM CloudWatch ログへのログ記録のポリシー
また、次の例に示すように、 CloudWatch ログにログ記録するための適切なアクセス許可を持つようにステートマシンの実行IAMロールを設定する必要があります。
IAM ポリシーの例
以下は、アクセス許可を設定するために使用できるポリシーの例です。次の例に示すように、 Resource
フィールドに * を指定する必要があります。 CloudWatch API CreateLogDelivery や などの アクションは DescribeLogGroups、 で定義されたリソースタイプをサポートしていません。Amazon CloudWatch Logs。 詳細については、「 で定義されるアクション」を参照してください。Amazon CloudWatch Logs.
-
参考情報 CloudWatch リソース、「」を参照してください。 CloudWatch Logs「Amazon 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 Logs へのステートマシンのログ記録のトラブルシューティング
ステートマシンが CloudWatch ログにログを送信できない場合は、次の手順を試してください。
-
ステートマシンの実行ロールに CloudWatch ログに記録するアクセス許可があることを確認します。
CreateStateMachine または UpdateStateMachineAPIエンドポイントを呼び出すときは、
roleArn
パラメータで指定されたIAMロールが、前のIAMポリシー例に示すように、必要なアクセス許可を提供していることを確認してください。 -
CloudWatch Logs リソースポリシーが 5,120 文字の制限を超えていないことを確認します。
ポリシーが文字制限を超える場合は、ロググループ名に
/aws/vendedlogs/states
のプレフィックスを付けて、ステートマシンにアクセス許可を付与し、制限を回避します。Step Function コンソールでロググループを作成すると、推奨されるロググループ名には既に/aws/vendedlogs/states
のプレフィックスが付いています。ログ記録のベストプラクティスの詳細については、「CloudWatch ログリソースポリシーのサイズ制限」を参照してください。
Step Functions 実行イベントのログレベル
ログレベルの範囲は ALL
から ERROR
、FATAL
、OFF
です。すべてのイベントタイプは 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 | ログ記録済み | ログに記録されない | ログに記録されない | ログに記録されない |