使用日志进行 CloudWatch 记录 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用日志进行 CloudWatch 记录

标准工作流程会在中记录执行历史记录Amazon Step Functions,但您可以选择配置到 Amazon L CloudWatch ogs 的日志记录。

与标准工作流不同,快速工作流不会在 Amazon Step Functions 中记录执行历史记录。要查看 Express Workflow 的执行历史记录和结果,您必须配置到 Amazon Logs CloudWatch 的日志记录。发布日志不会阻止或减慢执行速度。

注意

配置日志记录时,将收取CloudWatch 日志费用,并将按提供的日志费率向您收费。有关更多信息,请参阅 “ CloudWatch 定价” 页面上 “” 选项卡下的 “已售日志”。

配置 日志记录

使用 Step Functions 控制台创建标准工作流时,不会将其配置为启用日志 CloudWatch 日志记录。默认情况下,使用 Step Functions 控制台创建的 Express Workflow 将配置为允许记录到 CloudWatch 日志。

对于 Express 工作流程,Step Functions 可以为 CloudWatch 日志创建具有必要的Amazon Identity and Access Management (IAM) 策略的角色。如果您使用 API、CLI 或 Step Functions 创建标准工作流程或Amazon CloudFormation快速工作流程,则默认情况下,Step Functions 将不启用日志记录,您需要确保您的角色拥有必要的权限。

对于从控制台启动的每次执行,Step Functions 都会提供指向 CloudWatch 日志的链接,该链接配置了正确的过滤器,用于获取特定于该执行的日志事件。

要配置日志,可以在使用CreateStateMachine或时传递LoggingConfiguration参数UpdateStateMachine。您可以使用 Logs Insights 进一步分析 CloudWatch CloudWatch 日志中的数据。有关更多信息,请参阅使用 Log CloudWatch s Insights Logs L ogs

CloudWatch 记录有效负载

执行历史事件的定义中可能包含输入或输出属性。如果发送到 L CloudWatch ogs 的转义输入或转义输出超过 248KB,则会因 CloudWatch 日志配额而被截断。

用于登录到 CloudWatch 日志的 IAM 政策

您还需要配置状态机的执行 IAM 角色,以获得登录到 CloudWatch 日志的适当权限,如以下示例所示。

IAM 策略示例

以下是可用于配置权限的示例策略。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": "*" } ] }

如果您无法访问 CloudWatch 日志,请确保您已完成以下操作:

  1. 将您的状态机的执行 IAM 角色配置为具有登录到 CloudWatch 日志的适当权限。

    如果您使用CreateStateMachineUpdateStateMachine请求,请确保您在包含权限的roleArn参数中指定了 IAM 角色,如前面的示例所示。

  2. 已检查 CloudWatch 日志资源策略不超过 CloudWatch 日志资源策略的 5120 个字符限制。

    如果您已超出字符限制,请从 CloudWatch 日志资源策略中移除不必要的权限,或者在日志组名称/aws/vendedlogs前加上前缀,这将向日志组授予权限,而无需向资源策略添加更多字符。在 Step Functions 控制台中创建日志组时,日志组名称前缀为/aws/vendedlogs/states。有关更多信息,请参阅 亚马逊 CloudWatch 日志资源策略大小限制