使用boto3更新云信息模板

时间:2016-04-13 16:06:45

标签: python boto3 amazon-cloudformation

我正在尝试使用boto3来更新现有的CloudFormation模板,但我的代码在'Parameters'属性上失败了!这是我尝试过的:

  1. 从配置文件中读取参数

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

      

    {'申请':'Click2Buy','AdminCidr':'10 .0.0.0 / 8','AppMoniker':'c2b','vId':'vpc-3bec005f'}

    1. 调用update_stack

      client = boto3.client('cloudformation')  
      response = client.update_stack(  
          StackName = args.stackname,  
          TemplateURL = template,  
          Parameters = args.params,  
          Capabilities = ['CAPABILITY_IAM']  
       )
      
    2. 代码产生此错误:
      botocore.exceptions.ParamValidationError:参数验证失败: 参数参数的类型无效,
      值:{'应用':'Click2Buy','AdminCidr':'10 .0.0.0 / 8','AppMoniker':'c2b','vId':'vpc-3bec005f'},
      type:type :,有效类型:,

    3. 我尝试过args.params.items()[args.params][args.params.items()],但无法弄清楚需要什么。

1 个答案:

答案 0 :(得分:0)

我发现了我以前的尝试的问题。 “update_stack”调用需要以Parameters = [{'ParameterKey':"parm_name", "ParameterValue":'parm_value'}].形式传递给“Parameters”字段的列表对象。传递的参数数量必须与CloudFormation模板中的Parameters定义的数量和语法完全匹配。