Amazon web services Fn:GetAtt未返回StateMachine。名称为字符串
在我的无服务器yaml中,我试图在自定义变量中捕获完整的状态机名称:Amazon web services Fn:GetAtt未返回StateMachine。名称为字符串,amazon-web-services,aws-step-functions,Amazon Web Services,Aws Step Functions,在我的无服务器yaml中,我试图在自定义变量中捕获完整的状态机名称: STATEMACHINE_ARN_NAME: Fn::GetAtt: ["preMobilizatonStateMachine", "Name"] 状态机定义为 步骤功能: 状态机: 预移动状态机: 据 应返回字符串值:MyStateMachine-ABCDEFGHIJ1K 但当我尝试部署时,会出现以下错误: 正在尝试将非字符串值填充到变量${self:custom.STATEMACHINE\u ARN\u NAME}
STATEMACHINE_ARN_NAME:
Fn::GetAtt: ["preMobilizatonStateMachine", "Name"]
状态机定义为
步骤功能:
状态机:
预移动状态机:
据
应返回字符串值:MyStateMachine-ABCDEFGHIJ1K
但当我尝试部署时,会出现以下错误:
正在尝试将非字符串值填充到变量${self:custom.STATEMACHINE\u ARN\u NAME}的字符串中。请确保属性的值是字符串。我也遇到了同样的问题,结果证明根本原因是因为我使用了如下可选选项:${opt:variableName,${self:custom.someVariable'} 其中custom.someVariable正在使用GetAtt函数 显然,可选变量不适用于GetAtt函数,只要我删除了可选部分,一切就开始工作了 环境: 一些变量:
Fn::GetAtt:[RedisCluster,RedisEndpoint.Port]在cloudformation中声明的自定义变量STATEMACHINE\u ARN\u名称在哪里?能否共享cloudformation片段?我遇到了相同的问题;我认为函数的求值是在尝试使用它之后发生的,因此您看到的是对象而不是求值字符串。您解决过这个问题吗?
{ "Fn::GetAtt": ["MyStateMachine", "Name"] }