简体   繁体   中英

Lookup IGW after specifying VPC parameter in CloudFormation template

In the below snippet, can I do a lookup for the IGW using a function (or something) based on the VpcId parameter instead of needing it as a parameter?

Parameters:
  VpcId:
    Type: AWS::EC2::VPC::Id
    Description: Enter the Existing Landing Zone VPC ID. 
  InternetGateway:
    Type: String
    Description: Enter the Existing Landing Zone IGW.

Resources:
  DefaultRoute:
    Type: AWS::EC2::Route
    Properties: 
      DestinationCidrBlock: 0.0.0.0/0
      GatewayId: !Ref InternetGateway
      RouteTableId: !Ref RouteTable

Thanks.

I have not tried anything because I can't find anything that makes me thinks this would work, just not sure if I am missing something.

No, that is not possible in CloudFormation.

The only way you can dynamically look up resources in such a way is if you leverage a CloudFormation macro to invoke a lambda function which executes custom code. For example, in Python, you could use the boto3 describe_inte.net_gateways API which returns a list of inte.net gateways (you could use a filter for the VPC ID).


More on CloudFormation macros: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html

Macro example: https://stackoverflow.com/a/70475459/3390419

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM