CloudWatch Logs を使用したログ記録 - AWS Step Functions

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

CloudWatch Logs を使用したログ記録

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

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

注記

ログ記録を設定すると、CloudWatch Logs 料金が適用され、提供されたログのレートで請求されます。詳細については、「CloudWatch の料金」ページの [ログ] タブにある [Vended 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 クォータの結果として切り捨てられます。

CloudWatch Logs にログ記録するための IAM ポリシー

CloudWatch Logs にログ記録するための適切な許可を持つ、ステートマシンの実行 IAM ロールを、以下の例に示されるように設定する必要もあります。

IAM ポリシーの例

以下は、アクセス許可を設定するために使用できるポリシーの例です。次の例に示すように、CreateLogDelivery や DescribeLogGroups などの CloudWatch API アクションは、Amazon CloudWatch Logs で定義されるリソースタイプをサポートしていないため、Resource フィールドには * を指定する必要があります。詳細については、「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 Logs にアクセスできない場合は、次のことを行っているかを確認してください。

  1. CloudWatch Logs にログを記録するための適切なアクセス許可を持つ、ステートマシン実行 IAM ロールを設定した。

    CreateStateMachine リクエストまたは UpdateStateMachine リクエストを使用している場合は、前の例に示されているように、アクセス許可を持つ roleArn パラメータに IAM ロールが指定されていることを確認してください。

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

    文字数制限を超えた場合は、CloudWatch Logs リソースポリシーから不要なアクセス権限を削除するか、ロググループ名にプレフィックス /aws/vendedlogs を付けてください。これにより、リソースポリシーに文字を付加しなくてもロググループにアクセス許可が付与されます。Step Function コンソールでロググループを作成すると、ロググループ名に /aws/vendedlogs/states のプレフィックスが付きます。詳細については「Amazon CloudWatch Logs リソースポリシーのサイズ制限」を参照してください。