[英]AWS CloudFormation: how do I refer to the default/main route table (that is created when a VPC is created) in a cloudformation template?
[英]Select VPC created from cloudformation
我正在創建兩個 EKS 模板和一個 VPC 模板。 在 VPC 模板中,我創建了 3 個私有子網和 3 個公共子網,它們運行良好。 因此,我希望一個 EKS 應該在公共子網中,一個 EKS 應該在私有子網中。 那么如何通過cloudformation來做到這一點。
Type: List<AWS::EC2::Subnet::Id>
這給了我 6 個子網的列表。
Ec2SubnetId:
!Select [0, !Ref SubnetIds]
這將從所有子網中選擇第一個子網。 但我不確定如何僅在 cloudformation 中選擇 3 個特定的公共或私有子網。
如果我了解您想要您的 VPC 堆棧創建的私有和公共子網列表。 您可以從 VPC 堆棧導出您的公有和私有子網,並在您的 EKS 堆棧中使用它們。
Outputs:
PublicSubnets:
Description: Public Subnets
Value: !Join [",", [!Ref PublicSubnet1, !Ref PublicSubnet2, !Ref PublicSubnet3]]
Export:
Name: PublicSubnets
PrivateSubnets:
Description: Private Subnets
Value: !Join [",", [!Ref PrivateSubnet1, !Ref PrivateSubnet2, !Ref PrivateSubnet3]]
Export:
Name: PrivateSubnets
我認為您現在應該能夠在您的 EKS 堆棧中將它們稱為
Ec2SubnetId:
!Select [0, !ImportValue PrivateSubnets]
或者可能是Split
功能
Ec2SubnetId:
!Select [0, !Split [",", !ImportValue PrivateSubnets]]
讓我知道這是否有效。
據我了解您的問題,您有一個返回第一個子網 ID 的表達式,即:
!Select [0, !Ref SubnetIds]
如果您想要所有三個子網,您可以編寫:
[!Select [0, !Ref SubnetIds], !Select [1, !Ref SubnetIds], !Select [2, !Ref SubnetIds]]
但是這個表達就像寫一樣:
!Ref SubnetIds
因為SubnetIds
已經是一個List<AWS::EC2::Subnet::Id>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.