Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何通过专有网络';是否将s ID作为参数设置为Cluster.template的默认值?_Amazon Web Services_Amazon Cloudformation - Fatal编程技术网

Amazon web services 如何通过专有网络';是否将s ID作为参数设置为Cluster.template的默认值?

Amazon web services 如何通过专有网络';是否将s ID作为参数设置为Cluster.template的默认值?,amazon-web-services,amazon-cloudformation,Amazon Web Services,Amazon Cloudformation,我正在尝试在Cluster.template JSON文件中设置默认VPC、子网和安全组 是否有方法使用内置的“Ref”将现有VPC(或子网/安全组)作为参数传递给模板 这显然是行不通的: "Parameters": { "VpcId": { "Type": "AWS::EC2::VPC::Id", "Default": { "Ref" : "vpc-123456789" }, .... } 要将VPC id注入模板,我将执行以下操作。首先删除默认值 "P

我正在尝试在Cluster.template JSON文件中设置默认VPC、子网和安全组

是否有方法使用内置的“Ref”将现有VPC(或子网/安全组)作为参数传递给模板

这显然是行不通的:

 "Parameters": {
    "VpcId": {
       "Type": "AWS::EC2::VPC::Id",
       "Default": { "Ref" : "vpc-123456789" },
....
}

要将VPC id注入模板,我将执行以下操作。首先删除默认值

"Parameters": {
    "VpcId": {
       "Type": "AWS::EC2::VPC::Id"
....
}
接下来,将要设置VpcId的值放在parameters.json文件中,当使用cloudformation执行创建堆栈或更新堆栈时,将参数文件用作输入

parameters.json

[
  {
    "ParameterKey": "VpcId",
    "ParameterValue": "vpc-123456789"
  }
]
多值参数

如果您有一个接受值列表的参数,您可以将其表示为

"PrivateEC2Subnets": {
  "Type": "CommaDelimitedList",
  "Description": "List of private subnets to run your EC2 instances inside. Note that they must be in the same availability zone that your ELB is configured for. May require you to manually create a private subnet with a specific AZ if your VPC isnt auto-configured."
},
然后在外部参数文件中传入一个逗号分隔的列表,如下所示

  {
    "ParameterKey": "PrivateEC2Subnets",
    "ParameterValue": "subnet-9934670a544,subnet-d74ea349f"
  },

有关不同参数类型的更多信息,请参阅AWS文档,但请注意,人们在尝试在外部参数文件中表示复杂数据类型列表时报告了问题。据我所知,如果您想从cloudformation模板之外的另一个json文件传入值,则只有CommaDelimitedList起作用。

要将VPC id注入模板,我将执行以下操作。首先删除默认值

"Parameters": {
    "VpcId": {
       "Type": "AWS::EC2::VPC::Id"
....
}
接下来,将要设置VpcId的值放在parameters.json文件中,当使用cloudformation执行创建堆栈或更新堆栈时,将参数文件用作输入

parameters.json

[
  {
    "ParameterKey": "VpcId",
    "ParameterValue": "vpc-123456789"
  }
]
多值参数

如果您有一个接受值列表的参数,您可以将其表示为

"PrivateEC2Subnets": {
  "Type": "CommaDelimitedList",
  "Description": "List of private subnets to run your EC2 instances inside. Note that they must be in the same availability zone that your ELB is configured for. May require you to manually create a private subnet with a specific AZ if your VPC isnt auto-configured."
},
然后在外部参数文件中传入一个逗号分隔的列表,如下所示

  {
    "ParameterKey": "PrivateEC2Subnets",
    "ParameterValue": "subnet-9934670a544,subnet-d74ea349f"
  },

有关不同参数类型的更多信息,请参阅AWS文档,但请注意,人们在尝试在外部参数文件中表示复杂数据类型列表时报告了问题。据我所知,如果您想从cloudformation模板之外的另一个json文件传入值,只有CommaDelimitedList才有效。

我发现它比我想象的要简单得多。。。这起到了作用:

 "Parameters": {
    "VpcId": {
       "Type": "List<AWS::EC2::VPC::Id>",
       "Default":  "vpc-123456789,vpc-987654123" ,
....
}
“参数”:{
“VpcId”:{
“类型”:“列表”,
“默认值”:“vpc-123456789,vpc-987654123”,
....
}

我发现这比我想象的要简单得多……这很有效:

 "Parameters": {
    "VpcId": {
       "Type": "List<AWS::EC2::VPC::Id>",
       "Default":  "vpc-123456789,vpc-987654123" ,
....
}
“参数”:{
“VpcId”:{
“类型”:“列表”,
“默认值”:“vpc-123456789,vpc-987654123”,
....
}

如果我有两个值要添加到同一个属性中该怎么办?@VardaElentári我刚才添加了一个使用多个值的示例。@VardaElentári没问题。如果它最终成功,请随时将其标记为未来用户可接受的答案。因此,不幸的是,这不起作用。我尝试了
“Default”:“sg-12334234”
这对自动填充一个属性有效,但当对两个属性执行此操作时,使用类型
CommaDelimitedList
无效。但无论如何,我会向上投票。@VardaElentári使用我列出的解决方案,您不应该设置默认值。您只定义参数类型,然后从外部参数文件获取值。什么您是否收到一条错误消息,说它不起作用?如果我有两个值要添加到同一个属性中怎么办?@VardaElentári我刚才添加了一个使用多个值的示例。@VardaElentári没问题。如果它最终起作用,请随意将其标记为未来用户可接受的答案。因此,很遗憾,这不起作用。我尝试了
“默认值”:“sg-12334234"
这对自动填充一个属性有效,但当对两个属性执行此操作时,使用类型
CommaDelimitedList
无效。但无论如何,我会向上投票。@VardaElentári使用我列出的解决方案,您不应该设置默认值。您只定义参数类型,然后从外部参数文件获取值。什么您收到的错误消息表明它不工作了吗?