8

我想使用 CloudFormation 按计划(30 分钟)使用 Step Functions 将一堆预先存在的 Lambda 函数创建到状态机中。我已经成功地为我的其他方法创建了堆栈。

本质上,我需要有关如何在 CloudFormation中为 Step Functions创建计划事件的帮助或指导。这是我一直在尝试的:

"NOTDScheduler": {
        "Type": "AWS::Events::Rule",
        "Properties": {
            "Description": "Schedules a NOTD every 30 minutes",
            "ScheduleExpression": "rate(30 minutes)",
            "State": "ENABLED",
            "Targets": [
                {
                    "Arn": "${statemachineARN}",
                    "statemachineARN": {
                        "Fn::GetAtt": [
                            "NOTDStateMachine",
                            "Arn"
                        ]
                    },
                    "Id": "NOTDScheduleTarget"
                }
            ]
        },

但我不断收到错误,例如

[错误] /Resources/NOTDScheduler/Properties/Targets/0/statemachineARN/Fn::GetAtt:资源类型 AWS::StepFunctions::StateMachine 不支持属性 {Arn}。

并且不知道 Arn 如何不是受支持的属性。有解决方法吗?

4

1 回答 1

8

要获取AWS::StepFunctions::StateMachine资源的 ARN,您需要调用!Ref NOTDStateMachine而不是!GetAtt NOTDStateMachine.Arn

在这里查看:http Return Values: //docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html

于 2017-06-13T17:25:51.677 回答