簡體   English   中英

選擇從 cloudformation 創建的 VPC

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM