Я довольно новичок в AWS и CloudFormation и пытаюсь создать шаблон CF для ускорения трех разных сред, но я хочу иметь возможность выбрать, в какой подсети запускается экземпляр EC2, без жесткого кодирования определенной подсети вшаблон.В моем примере ниже, однако, я получаю ошибку, что SubnetId должен быть строкой.Я не могу придумать другого способа добиться этого.Есть мысли?
Parameters:
EnvironmentType:
Type: String
Default: Dev
AllowedValues:
- Dev
- Test
- Production
Description: Select Environment Type (Dev, Test, Production)
SubnetIdList:
Type: String
AllowedValues:
- Public1
- Public2
- Private
Description: Select a subnet
Mappings:
InstanceSize:
Dev:
"EC2" : "t3.micro"
Test:
"EC2" : "t3.small"
Production:
"EC2" : "t3.medium"
Sub:
Public1:
"Subnet" : "subnet-05daa558dc3f65529" #public 1
Public2:
"Subnet" : "subnet-0f57bb83e0fc545f4" #public 2
Private:
"Subnet" : "subnet-0eb76c49954acc803" #Private
Resources:
EC2:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-0080e4c5bc078760e
InstanceType: !FindInMap [InstanceSize, !Ref EnvironmentType, EC2]
KeyName: Ashkelon
SubnetId: [Sub, !Ref SubnetIdList, Subnet]