【发布时间】:2021-05-22 07:56:42
【问题描述】:
我正在努力弄清楚如何为 AutoScalingGroup 资源编写 yaml 模板的覆盖部分。目前,我所拥有的仅适用于固定长度的字符串。在这种情况下,传入模板的字符串称为InstanceTypesOverride。
下面可以看到代码的sn-p:
InstanceTypesOverride = "m5.large,m5d.large,m5a.large"
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
AutoScalingGroupName: !Ref NodeGroupName
DesiredCapacity: !Ref NodeAutoScalingGroupDesiredCapacity
MixedInstancesPolicy:
InstancesDistribution:
OnDemandAllocationStrategy: prioritized
OnDemandBaseCapacity: !Ref OnDemandBaseCapacity
OnDemandPercentageAboveBaseCapacity: !Ref OnDemandPercentageAboveBaseCapacity
SpotAllocationStrategy: !Ref SpotAllocStrategy
LaunchTemplate:
LaunchTemplateSpecification:
LaunchTemplateId: !Ref SpotLaunchTemplate
Version: !GetAtt SpotLaunchTemplate.LatestVersionNumber
Overrides:
- InstanceType: !Select [0, !Split [ ",", !Ref InstanceTypesOverride ] ]
- InstanceType: !Select [1, !Split [ ",", !Ref InstanceTypesOverride ] ]
- InstanceType: !Select [2, !Split [ ",", !Ref InstanceTypesOverride ] ]
我想知道是否可以编写模板的覆盖部分,以便InstanceTypesOverride 可以处理更多或更少的实例类型。如您所知,不同的区域可以处理不同的实例类型,因此对我来说,让 cloudformation 能够处理不同的字符串长度是必不可少的。有人可以建议一些可行的方法吗?
理想情况下,我想要一个 cfm 模板,它同时适用于 InstanceTypesOverride = "m5.large,m5d.large,m5a.large" 和 InstanceTypesOverride = "m5.large,m5d.large,m5a.large,m5ad.large,m5n.large,m5dn.large"
【问题讨论】:
标签: amazon-web-services amazon-ec2 yaml amazon-cloudformation