Я пытаюсь создать единый шаблон, который создает следующие:CloudFormation Template - любой способ получить идентификатор идентификатора Spot-Fleet-Request?
AWS :: EC2 :: SpotFleet ресурс 2 AWS :: ApplicationAutoScaling :: ScalingPolicy ресурсы (масштабы, масштаб вниз)
Первоначально , мой шаблон включал только ресурс SpotFleet, и я подтвердил, что стек создаст без проблем. Когда я добавлю ресурсы ScalingPolicy, стек будет откатываться из-за отсутствия «Нет масштабируемой цели, зарегистрированной для пространства имен ...» Итак, я добавил дополнительный ресурс.
AWS :: ApplicationAutoScaling :: ScalableTarget ресурс. (от http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-resourceid)
{
"Type" : "AWS::ApplicationAutoScaling::ScalableTarget",
"Properties" : {
"MaxCapacity" : Integer,
"MinCapacity" : Integer,
"ResourceId" : String,
"RoleARN" : String,
"ScalableDimension" : String,
"ServiceNamespace" : String
}
}
ResourceId является необходимым свойством. У меня есть данные для всех других свойств, но при исследовании того, какие данные необходимы для свойства ResourceID, я обнаружил, что мне нужны данные идентификатора места-флота, (что-то вроде этого: "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE")
.
Итак, вот в чем проблема: поскольку я создаю запрос спот-флота в том же шаблоне, что и политика масштабирования, я не могу поместить SpotFleetRequestId вручную, поскольку, насколько мне известно, это создается, когда ресурс есть, и нет никакого способа предвидеть, что Идентификатор запроса будет. В других шаблонах с другими видами ресурсов я просто использовал "Ref"
или "Fn::GetAtt"
для передачи в arn ресурса без необходимости вручную вводить это. Однако, похоже, нет способа сделать это это с помощью SpotFleetRequestID. Все проведенные мной исследования ни к чему не привели, даже не один пример шаблона, который использует метод, как я описываю - единственные доступные примеры предполагают, что масштабируемый целевой ресурс уже существует, а SpotFleetRequestID известен до создания ScalingPolicy.
Есть ли у кого-нибудь идеи, если возможно даже обращение к SpotFleetRequestID из AWS :: EC2 :: SpotFleet, инициализированное в том же шаблоне? Или я просто пропущу что-то ДЕЙСТВИТЕЛЬНО очевидное?
-KungFuBilly