Amazon web services 无法将子网ID列表作为参数传递

Amazon web services 无法将子网ID列表作为参数传递,amazon-web-services,amazon-cloudformation,Amazon Web Services,Amazon Cloudformation,我试图将子网ID列表传递给云形成模板,但出现错误。我做错了什么 模板中的参数: ClusterSubnets: Description: Subnets, in the same VPC where cluster ec2 instances reside. Typically private. Use mutiples, each in a different AZ for HA. Type: "List<AWS::EC2::Subn

我试图将子网ID列表传递给云形成模板,但出现错误。我做错了什么

模板中的参数:

  ClusterSubnets:
    Description: Subnets, in the same VPC where cluster ec2 instances reside.
                Typically private.  Use mutiples, each in a different AZ for HA.
    Type: "List<AWS::EC2::Subnet::Id>"
结果: 参数验证失败:
参数参数[1]的类型无效。参数值,值:[u'subnet-8fc8c4f7',类型:类型“list”,有效类型:类型“basestring”

您应该使用逗号分隔的子网ID列表指定参数值,该列表不带空格。请参见此处“列表”下的部分:

您应该使用逗号分隔的子网ID列表指定参数值,该列表不带空格。请参见此处“列表”下的部分:

我知道这个线程已经有一年历史了,我假设您使用的是aws cli来创建堆栈,但是我遇到了同样的问题,最后偶然发现了答案。在到期时给予信贷:

用反斜杠避开“,”将解决问题。在我的例子中,这是在一次杰金斯的工作抨击中,所以我不得不加倍反斜杠:

  sh "aws cloudformation create-stack  --template-url ${TEMPLATE} \
      --stack-name $NAME \
      --capabilities CAPABILITY_IAM \
      --parameters ParameterKey=SecurityGroups,ParameterValue=\"$SG_GROUP2\\,$SG_GROUP1\"; \
  aws cloudformation wait stack-create-complete --stack-name $CLUSTER_NAME"

我知道这个线程已经有一年的历史了,我假设您正在使用aws cli创建堆栈,但是我遇到了同样的问题,最后偶然发现了答案。在到期时给予信贷:

用反斜杠避开“,”将解决问题。在我的例子中,这是在一次杰金斯的工作抨击中,所以我不得不加倍反斜杠:

  sh "aws cloudformation create-stack  --template-url ${TEMPLATE} \
      --stack-name $NAME \
      --capabilities CAPABILITY_IAM \
      --parameters ParameterKey=SecurityGroups,ParameterValue=\"$SG_GROUP2\\,$SG_GROUP1\"; \
  aws cloudformation wait stack-create-complete --stack-name $CLUSTER_NAME"