代码之家  ›  专栏  ›  技术社区  ›  shantanuo

自动选择子网参数值

  •  0
  • shantanuo  · 技术社区  · 6 年前

    我使用以下参数代码来选择最新的AMI。它的工作原理是。

    "Parameters" : {
      "LatestAmiId" : { 
        "Type" : "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>",
        "Default" : "/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-ebs"
    }},
    

    是否有类似的方法来选择默认安全组的子网? 我不想像这样提到子网(或安全组)。

    "SubnetId": "subnet-e8ecf09c, subnet-aa9dfc90, subnet-ce083188, subnet-718bd259",
    

    更新:

    我正在使用以下代码,但失败并出现错误“ SubnetID属性的值必须是字符串类型

    {
    "Parameters": {
      "LatestAmiId": {
        "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>",     
        "Default": "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-ebs"
    },
    
      "myKeyPair" : {
        "Description" : "Amazon EC2 Key Pair",
        "Type" : "AWS::EC2::KeyPair::KeyName"
      },
      "mySubnetIDs" : {
        "Description" : "Subnet IDs",
        "Type" : "List<AWS::EC2::Subnet::Id>"
      },
         "Oksoftaccess":{  
             "Type":"AWS::SSM::Parameter::Value<String>",
             "Default":"myEC2TypeDev"
          },
          "Oksoftsecret":{  
             "Type":"String",
             "Default":"mysecret1"
          }
    },
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Prabhakar Reddy    6 年前

    按照这个 document ,aws::ec2::instance中的subnetid属性必须是字符串类型。然而, parameter 名为subnet的类型定义为列表,即列表。EC2实例只能在一个子网(而不是多个子网)中运行。

    在CF模板中将参数类型更改为如下所示的AWS::EC2::Subnet::ID,然后重试:

        "mySubnetIDs": {
         ...
            "Type": "AWS::EC2::Subnet::Id"
         ...
        }