Aws lambda CloudFormation-无法在StepFunctions状态机的定义字符串中导入lambda arn
我正在创建StepFunctions,它引用在单独的cloudformation堆栈中创建的Lambda函数。 我将Lambda arn导出到CloudFormation导出。 我想通过导入导出值,从STEP函数中引用Lambda函数 这是我的云信息片段Aws lambda CloudFormation-无法在StepFunctions状态机的定义字符串中导入lambda arn,aws-lambda,amazon-cloudformation,aws-step-functions,Aws Lambda,Amazon Cloudformation,Aws Step Functions,我正在创建StepFunctions,它引用在单独的cloudformation堆栈中创建的Lambda函数。 我将Lambda arn导出到CloudFormation导出。 我想通过导入导出值,从STEP函数中引用Lambda函数 这是我的云信息片段 StepFunction: Type: 'AWS::StepFunctions::StateMachine' Properties: RoleArn: !GetAtt IamRole.Arn Defi
StepFunction:
Type: 'AWS::StepFunctions::StateMachine'
Properties:
RoleArn: !GetAtt IamRole.Arn
DefinitionString:
Fn::Sub:
- |-
{
"StartAt": "MessageGenerator",
"States": {
"MessageGenerator": {
"Comment": "generate queue message.",
"Type": "Task",
"Resource": "${LambdaMessageGenerator}",
"ResultPath": "$",
"OutputPath": "$",
"Next": "WaitSeconds"
},
...
}
}
- LambdaMessageGenerator:
Fn::ImportValue: some-export-name
我是按照下面的答案做的。
但是,aws cloudformation deploy
命令失败,我得到了以下错误
Invalid State Machine Definition: 'SCHEMA_VALIDATION_FAILED: Value is not a valid resource ARN at /States/MessageGenerator/Resource' (Service: AWSStepFunctions; Status Code: 400; Error Code: InvalidDefinition; Request ID: 01713d53-4605-11e9-9cf3-c15ff9ce09ae)
有人能帮我吗?试着用这句话:
“资源”:“arn:aws:lambda:${aws::Region}:${aws::AccountId}:函数:${LambdaFunctionName}”
在这种情况下,只需传递lambda函数的名称 为什么不使用
ImportValue
函数的缩写形式呢
DefinitionString:
Fn::Sub:
- |-
{
"StartAt": "MessageGenerator",
"States": {
"MessageGenerator": {
"Comment": "generate queue message.",
"Type": "Task",
"Resource": "${LambdaMessageGenerator}",
"ResultPath": "$",
"OutputPath": "$",
"Next": "WaitSeconds"
},
...
}
}
- LambdaMessageGenerator: !ImportValue some-export-name
您还可以分享您的导出配置吗?您是否尝试删除子组件并对Lambda ARN进行硬编码,以确保它与您的定义字符串中的任何其他内容无关?请提供解决方案?我甚至被困在这个问题上