簡體   English   中英

如何在 CloudFormation 中引用默認 VPC?

[英]How can I reference the Default VPC in CloudFormation?

我有一個需要部署在某個 VPC 中的資源的堆棧。 我想使用默認 VPC,但我不想對其進行參數化。 有沒有辦法自動獲取默認的 VPC 值? (例如Fn::GetAZs: region中 AZ 的區域)。

可以使用以下 AWS CLI 命令獲取默認 VPC 的 ID:

$ aws ec2 describe-vpcs \
    --filters Name=isDefault,Values=true \
    --query 'Vpcs[*].VpcId' \
    --output text

vpc-a1b2c3d4

上面的命令將輸出類似: vpc-a1b2c3d4

您可以將此輸出分配給一個變量,然后將其傳遞給您的 CF 模板,如下所示:

$ default_vpc_id=$(aws ec2 describe-vpcs \
    --filters Name=isDefault,Values=true \
    --query 'Vpcs[*].VpcId' \
    --output text)

$ echo ${default_vpc_id}

vpc-a1b2c3d4

請記住,VPC 有一個名為 Default VPC 且值為 Yes 或 No 的屬性。您可以使用宏獲取具有值為 Yes 的 Default VPC 屬性的 VPC 的 ID,然后將該 ID 傳遞給您的 cloudformation 模板。 創建一個具有邏輯的宏模板以獲取默認 ID(例如使用 boto3),然后在主模板中寫入值。 在您的主模板中,在 Resources 部分添加以下內容以執行宏:

Resources:
  Fn::Transform:
    Name: GetDefaultVpcId

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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