AWS CLI-为参数分配多个值的语法是什么

dar*_*ren 8 json yaml amazon-web-services aws-cloudformation aws-cli

例如,我有一个需要这些参数的 CF 模板

----- cftemplate.yaml -----
...
Parameters:
  **Subnet:
    Description: Subnet for the Instance
    Type: 'AWS::EC2::Subnet::Id'
  SecurityGroups: 
    Description: Security Group for Instance
    Type: 'List<AWS::EC2::SecurityGroup::Id>'**
...
Resources:
 EC2Instance:
   Type: AWS::EC2::Instance
   Properties:
...
    **SubnetId: !Ref Subnet
    SecurityGroupIds: !Ref SecurityGroups**
...
----- cftemplate.yaml -----
Run Code Online (Sandbox Code Playgroud)

为了部署堆栈,我使用以下命令:

aws cloudformation create-stack --stack-name StackName --template-body file://cftemplate.yaml --parameters file://params.json
Run Code Online (Sandbox Code Playgroud)

其中 params.json 包含:

----- params.json ----- 
[
        {
            "ParameterKey":"Subnet",
            "ParameterValue":"subnet-11111111"
        },
        {
            "ParameterKey":"SecurityGroups",
            "ParameterValue":"sg-111111111",
            "ParameterValue":"sg-222222222"
        } 
]
----- params.json -----
Run Code Online (Sandbox Code Playgroud)

现在,我的目标是消除 .json 文件的使用。有谁知道该命令的简写语法应该达到与上述命令相同的效果?似乎无法在在线文档中找到此内容。提前致谢!

Mar*_*cin 17

等效的命令行是(为了清楚起见,稍微重新格式化):

aws cloudformation create-stack \
    --stack-name StackName \
    --template-body file://cftemplate.yaml \
    --parameters ParameterKey=Subnet,ParameterValue=subnet-11111111 ParameterKey=SecurityGroups,ParameterValue=sg-111111111\\,sg-222222222
Run Code Online (Sandbox Code Playgroud)

在上面注意空格和逗号很重要。

我使用自己的参数和沙箱帐户验证了该命令:

aws cloudformation create-stack --stack-name StackName --template-body file://instance.yaml --parameters ParameterKey=Subnet,ParameterValue=subnet-0ae6ce0f9bbf52251 ParameterKey=SecurityGroups,ParameterValue=sg-06d2a3e9c8aa99620\\,sg-004d23d188ec1146f
Run Code Online (Sandbox Code Playgroud)

这是正确的,并导致开始部署堆栈的过程:

{
    "StackId": "arn:aws:cloudformation:us-east-1:xxxxxx:stack/StackName/61fbacd0-d3b0-11ea-970a-0ad23187ddb2"
}
Run Code Online (Sandbox Code Playgroud)