我正在尝试创建一个跨堆栈引用。将我引用的堆栈视为主 VPC,而我现在创建的堆栈基本上是在主 VPC 中创建一个子网,然后与另一个帐户共享它(VPC/资源共享)。当我在 aws 设计器中验证此模板时,我在第 15 行收到 Yaml 格式不正确的错误,即:
CidrBlock: !Select [ 0, !Cidr [!ImportValue 'Fn::Sub': '${NetworkStackParameter}-VPCCIDR', 3, 8]] 我是编码和云形成的新手,所以我很感激任何帮助。请看下面的模板:
AWSTemplateFormatVersion: "2010-09-09"
#Description:
Parameters:
NetworkStackParameter:
Type: String
Resources:
#Create Private Subnet ABC
PrivateSubnetABC:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: !Select [ 0, !Cidr [!ImportValue
'Fn::Sub': '${NetworkStackParameter}-VPCCIDR', 3, 8]]
VpcId: !ImportValue
'Fn::Sub': '${NetworkStackParameter}-VPCID'
AvailabilityZone: "us-east-1a"
Tags:
- Key: "name"
Value: "PrivateSubnetABC"
#Create Resource Share
PrivateSubnetABCShare:
Type: AWS::RAM::ResourceShare
Properties:
# AllowExternalPrincipals: Boolean
Name: "Service ABC"
# PermissionArns:
# - String
Principals:
- "1234567890"
ResourceArns:
- !Sub 'arn:aws:ec2:${AWS::Region}:${AWS::AccountId}:subnet/${PrivateSubnetABC}'
# Tags:
# - Tag
在这种情况下,将其编写为单独的块要容易得多,而不是尝试在一行中完成:
Resources:
#Create Private Subnet ABC
PrivateSubnetABC:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: !Select
- 0
- !Cidr
- !ImportValue
'Fn::Sub': '${NetworkStackParameter}-VPCCIDR'
- 3
- 8
VpcId: !ImportValue
'Fn::Sub': '${NetworkStackParameter}-VPCID'
AvailabilityZone: "us-east-1a"
Tags:
- Key: "name"
Value: "PrivateSubnetABC"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句