amazon-web-services - 如何动态获取 Cloud Formation 中的 AWS 可用区?
问题描述
最近我开始探索 AWS CloudFormation。我对使用 Fn::GetAZs 动态获取可用区有疑问吗?我希望可用区不被硬编码。YAML 格式的代码如下:-
AWSTemplateFormatVersion: 2010-09-09
Description: Hardcoded Value of Availability zone
Parameters:
MyKeyName:
Description: Arshan Select the key Name from the boelow
Type: AWS::EC2::KeyPair::KeyName
MyZone:
Description: Select the MyAZone
Type: String
Default: us-east-1
AllowedValues:
- us-east-1
- us-east-2
Resources:
DevEC2Instance:
Type: AWS::EC2::Instance
Properties:
InstanceType: t2.micro
ImageId: ami-04aa88aebb9fefd83
KeyName: !Ref MyKeyName
SecurityGroup: !Ref SSHSecurityGroup
AvailabilityZone: !Ref MyZone
SSHSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: My Sg
SecurityIngress:
IpProtocol: tcp
ToPort: 22
FromPort: 22
Cidr: 0.0.0.0/0
SecurityEgress:
IpProtocol: tcp
ToPort: 8080
FromPort: 8080
Cidr: 0.0.0.0/0
解决方案
如果您想Fn::GetAZs
在 Parameter 中使用MyZone
来定义允许的 AZ,那么您不能这样做。CloudFormation不支持这样的事情。您MyZone
必须对要允许的可用区进行硬编码。
Fn::GetAZs
稍后可以在您的资源中使用,但不能在MyZone
参数中使用。
推荐阅读
- python - 如何使用 pandas group by 应用数组函数(前一行计算)
- moodle - 在 Moodle 中报告“所有备份”的问题
- python-3.x - 无法创建可识别架构的 Pcollection 以在 Google Dataflow 中运行
- node.js - nodejs express监听静态资源变化后重启服务
- jasonette - 更改设备方向时如何防止移动应用程序中的页面重新加载?
- python - Python - Selenium 陈旧异常
- linux - twilio 登录 - 我从哪里获得秘密?
- xamarin.forms - 创建一个视图/控件,以便在 ios 中它是 UIAccessibilityTrait.Adjustable 使用 Xamarin.Forms
- mysql - MySQL 列别名未在集合中命名
- xamarin - 当应用最小化时系统时间发生变化时,Xamarin 窗体应用变得无响应