有没有办法自定义状态机执行名称?

问题描述

认情况下,每个 AWS Step Function 执行名称都是随机生成的。我想为每个随机生成名称添加一个前缀。我在文档的任何地方都找不到这样做的方法。我设想这样做的方式是在定义 EventBridge 规则的 CloudFormation 模板中,但如果有我目前不知道的方式,我愿意接受建议。

有没有其他人能够做到这一点,还是我不走运?

解决方法

如果您正在调用 startExecution,那么我在下面提到了一种方法。但似乎您的问题与从其他服务(也许是 EventBridge)调用 Step Functions 相关,我的回答没有涵盖它。为此,如果没有直接的方法,您可以调用 Lambda 函数并从 Lambda 调用 Step Function startExecution。

StartExecution 接受这个:

{
   "input": "string","name": "string","stateMachineArn": "string","traceHeader": "string"
}

name 正是您要找的:

执行的名称。此名称对于您的 AWS 必须是唯一的 帐户、区域和状态机 90 天。了解更多信息, 请参阅与 AWS 步骤中的状态机执行相关的限制 函数开发者指南。

名称不得包含:

空白区域

括号 { } [ ]

通配符? *

特殊字符" # % \ ^ | ~ ` $ &,; : /

控制字符(U+0000-001F、U+007F-009F)

要使用 CloudWatch Logs 启用日志记录,名称应仅包含 0-9、A-Z、a-z、- 和 _。

链接:https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html

从 AWS CLI、控制台开始执行时,您有类似的选项...