2015-11-02 44 views
1

我遇到了我的CFN模板的問題。我在Parameters中定義了一個CIDR塊,並希望在安全組資源中將其用作CidrIp「屬性值CidrIp必須是字符串類型」cloudformation

但是,當我運行我的堆棧時,我得到Value of property CidrIp must be of type String錯誤,堆棧正在回滾。

這是我最小的失敗模板。我想用VPCCidrBlock來定義CidrIp

有趣的是,AWS的樣本模板LAMP_Multi_AZ的確完全一樣。

{ 
    "AWSTemplateFormatVersion": "2010-09-09", 
    "Description": "A cloud VPC", 
    "Metadata": { 
    }, 
    "Resources": { 
    "myvpc": { 
     "Type": "AWS::EC2::VPC", 
     "Properties": { 
     "CidrBlock": { 
      "Ref": "VPCCidrBlock" 
     } 
     } 
    }, 
    "SipserverSecurityGroup": { 
     "Type": "AWS::EC2::SecurityGroup", 
     "Properties": { 
     "GroupDescription": "Enable VPC access", 
     "VpcId": { 
      "Ref": "myvpc" 
     }, 
     "SecurityGroupIngress": [ 
      { "IpProtocol": "tcp", "FromPort": "22", "ToPort": "22", "CidrIp": { "Ref": "VPCCidrBlock" } }, 
      { "IpProtocol": "udp", "FromPort": "5060", "ToPort": "5060", "CidrIp": { "Ref:": "VPCCidrBlock" } } 
     ] 
     } 
    } 
    }, 
    "Parameters": { 
    "VPCCidrBlock": { 
     "Description": "Main CIDR block for the whole VPC", 
     "Type": "String", 
     "MinLength": "9", 
     "MaxLength": "18", 
     "Default": "10.13.0.0/16", 
     "AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})", 
     "ConstraintDescription": "must be a valid IP CIDR range of the form x.x.x.x/x." 
    } 
    } 
} 
+0

問題在於''參考:「'而不是'」參考「'。有趣的是,它證實確定。 – Darek

回答

1

奇怪的問題。稍微練習一下你的例子。

{ 
    "AWSTemplateFormatVersion": "2010-09-09", 
    "Description": "A cloud VPC", 
    "Metadata": { 
    }, 
    "Resources": { 
    "myvpc": { 
     "Type": "AWS::EC2::VPC", 
     "Properties": { 
     "CidrBlock": { 
      "Ref": "VPCCidrBlock" 
     } 
     } 
    }, 
    "SipserverSecurityGroup": { 
     "Type": "AWS::EC2::SecurityGroup", 
     "Properties": { 
     "GroupDescription": "Enable VPC access", 
     "VpcId": { 
      "Ref": "myvpc" 
     }, 
     "SecurityGroupIngress": [ 
      { "IpProtocol": "tcp", "FromPort": "22", "ToPort": "22", "CidrIp": {"Ref": "VPCCidrBlock"}}, 
      { "IpProtocol": "udp", "FromPort": "5060", "ToPort": "5060", "CidrIp": {"Ref": "VPCCidrBlock"}} 
     ] 
     } 
    } 
    }, 
    "Parameters": { 
    "VPCCidrBlock": { 
     "Description": "Main CIDR block for the whole VPC", 
     "Type": "String", 
     "MinLength": "9", 
     "MaxLength": "18", 
     "Default": "10.13.0.0/16", 
     "AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})", 
     "ConstraintDescription": "must be a valid IP CIDR range of the form x.x.x.x/x." 
    } 
    } 
} 

適合我。有可能是某些特殊字符/編碼存在問題嗎?

0

我也遇到了類似的問題,我可以指出這個問題。我使用「ref」而不是「Ref」來引用參數。

相關問題