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