Json CloudFormation模板-有没有获得Spot车队请求ID的方法?

Json CloudFormation模板-有没有获得Spot车队请求ID的方法?,json,amazon-web-services,amazon-cloudformation,Json,Amazon Web Services,Amazon Cloudformation,我正在尝试创建一个模板来创建以下内容: AWS::EC2::SpotFleet资源 2 AWS::ApplicationAutoScaling::缩放策略资源(放大、缩小) 最初,我的模板只包含SpotFleet资源,我确认堆栈将创建而不会出现问题。添加ScalingPolicy资源后,堆栈将回滚,因为“没有为命名空间注册可伸缩目标…”,因此,我添加了一个额外的资源 AWS::ApplicationAutoScaling::ScalableTarget资源。 (来自) ResourceID是必需

我正在尝试创建一个模板来创建以下内容:

AWS::EC2::SpotFleet资源 2 AWS::ApplicationAutoScaling::缩放策略资源(放大、缩小)

最初,我的模板只包含SpotFleet资源,我确认堆栈将创建而不会出现问题。添加ScalingPolicy资源后,堆栈将回滚,因为“没有为命名空间注册可伸缩目标…”,因此,我添加了一个额外的资源

AWS::ApplicationAutoScaling::ScalableTarget资源。 (来自)

ResourceID是必需的属性。我有所有其他属性的数据,但在研究ResourceID属性需要什么数据时,我发现我需要的数据是spot fleet请求ID(类似于:
“SpotFleetRequestId”:“sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE”)

问题是:由于我在与缩放策略相同的模板中创建spot fleet请求,因此我无法手动将SpotFleetRequestId放入,因为据我所知,这是在资源处于活动状态时创建的,并且无法预测请求ID将是什么。在其他模板中,对于其他类型的资源,我只使用了
“Ref”
“Fn::GetAtt”
来传递资源的arn,而无需手动输入。然而,似乎没有办法用SpotFleetRequestID实现这一点。我所做的所有研究都没有发现任何结果,甚至没有一个使用我所描述的方法的单一模板示例-唯一可用的示例假设可伸缩目标资源已经存在,并且SpotFleetRequestID在创建ScalingPolicy之前是已知的

有人知道引用在同一模板中初始化的AWS::EC2::SpotFleet的SpotFleetRequestID是否可行吗?还是我错过了一些非常明显的东西


-Kungfully

证明,如果您
“Ref”
AWS::EC2::SpotFleet的逻辑名称,它将返回请求ID。然后,使用
“Fn::Join”
为ResourceID获取正确的数据。应该是这样的:

"ResourceId":  {
                "Fn::Join": [
                    "/",
                    [
                        "spot-fleet-request",
                        {
                            "Ref": "SpotFleet"
                        }
                    ]
                ]
            },
将输出:
spotfleetrequest/“SpotFleetRequestID”

"ResourceId":  {
                "Fn::Join": [
                    "/",
                    [
                        "spot-fleet-request",
                        {
                            "Ref": "SpotFleet"
                        }
                    ]
                ]
            },