首页 > 解决方案 > Cloudformation AWS:使用参数将 IP 地址分配给 CustomerGateway

问题描述

我正在设计一个cloudformation模板,但我需要将源IP定义为参数

我试图将参数定义为字符串,但它会产生以下错误:

Value (${MyCustomerGateway}) for parameter ipAddress is invalid. Invalid Format. (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterValue; Request ID: 4de02112-fb1f-47a1-931c-97727568df99)

这是模板的片段:

Parameters:
  MyCustomerGateway:
    Description: IpAddress.
    Default: 0.0.0.0
    Type: String  

Resources:
  CustomerGateway_1:
    Type: 'AWS::EC2::CustomerGateway'
    Properties:
      Type: ipsec.1
      BgpAsn: 3352
      IpAddress: ${MyCustomerGateway} 
      Tags:
        - Key: Name
          Value: CustomerGateway_1

IP翻译有什么特殊数据吗?

我不确定哪个是正确的方法

标签: amazon-web-servicesamazon-ec2amazon-cloudformationip-addressipsec

解决方案


更改IpAddress: ${MyCustomerGateway}IpAddress: !Ref myCustomerGateway

更多关于参考

内部函数 Ref 返回指定参数或资源的值。

> 当您指定参数的逻辑名称时,它会返回参数的值。

当您指定资源的逻辑名称时,它会返回一个值,您通常可以使用该值来引用该资源,例如物理 ID。

奖金:

如果要验证参数输入,可以使用该AllowedPattern属性。

用法:

PrimaryIPAddress:
    Type: String
    Description: This must be a valid IP address.
    AllowedPattern: (\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})
    ConstraintDescription: must be a valid IP address of the form x.x.x.x.

输入无效IP时出错:

在此处输入图像描述


推荐阅读