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