本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用日志进行 CloudWatch 记录
标准工作流程会在中记录执行历史记录Amazon Step Functions,但您可以选择配置到 Amazon L CloudWatch ogs 的日志记录。
与标准工作流不同,快速工作流不会在 Amazon Step Functions 中记录执行历史记录。要查看 Express Workflow 的执行历史记录和结果,您必须配置到 Amazon Logs 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 日志配额而被截断。
-
您可以通过查看
inputDetails
和outputDetails
属性来确定负载是否已被截断。有关更多信息,请参阅HistoryEventExecutionDataDetails
数据类型。 -
对于标准工作流程,您可以使用查看完整的执行历史记录
GetExecutionHistory
。 -
GetExecutionHistory
不适用于快速工作流程。如果要查看完整的输入和输出,则可以使用 Amazon S3 ARN。有关更多信息,请参阅 使用 Amazon S3 ARN 而不是传递大型有效负载。
用于登录到 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 日志,请确保您已完成以下操作:
-
将您的状态机的执行 IAM 角色配置为具有登录到 CloudWatch 日志的适当权限。
如果您使用
CreateStateMachine
或UpdateStateMachine
请求,请确保您在包含权限的roleArn
参数中指定了 IAM 角色,如前面的示例所示。 -
已检查 CloudWatch 日志资源策略不超过 CloudWatch 日志资源策略的 5120 个字符限制。
如果您已超出字符限制,请从 CloudWatch 日志资源策略中移除不必要的权限,或者在日志组名称
/aws/vendedlogs
前加上前缀,这将向日志组授予权限,而无需向资源策略添加更多字符。在 Step Functions 控制台中创建日志组时,日志组名称前缀为/aws/vendedlogs/states
。有关更多信息,请参阅 Amaz CloudWatch on Logs 资源政策大小限制。