使用boto3更新CloudFormation模板

3
我正在尝试使用boto3更新现有的CloudFormation模板,但我的代码在“参数”属性上失败了!这是我尝试过的内容:
  1. Read params from a config file

    from ConfigParser import SafeConfigParser  
    parser = SafeConfigParser()  
    parser.optionxform=str  
    parser.read( '/parms/SecGrpsParams.cfg')  
    parms = dict(parser.items('params'))
    

“print parms” 生成的结果如下:

{'应用程序': 'Click2Buy', '管理员CIDR': '10.0.0.0/8', '应用简称': 'c2b', '虚拟ID': 'vpc-3bec005f'}


(注意:保留HTML标签,不要写解释)
  1. Call update_stack

    client = boto3.client('cloudformation')  
    response = client.update_stack(  
        StackName = args.stackname,  
        TemplateURL = template,  
        Parameters = args.params,  
        Capabilities = ['CAPABILITY_IAM']  
     )
    
  2. And the code produces this error:
    botocore.exceptions.ParamValidationError: Parameter validation failed: Invalid type for parameter Parameters,
    value: {'Application': 'Click2Buy', 'AdminCidr': '10.0.0.0/8', 'AppMoniker': 'c2b', 'vId': 'vpc-3bec005f'},
    type: type: , valid types: ,

我尝试过 args.params.items(), [args.params], 和 [args.params.items()],但是不知道需要什么。

1个回答

5

我发现了之前尝试的问题所在。"update_stack"调用希望将一个列表对象作为Parameters = [{'ParameterKey':"parm_name", "ParameterValue":'parm_value'}]的形式传递给“参数”字段。而且,传递的参数数量必须与CloudFormation模板中参数定义的数量和语法完全匹配。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接