我正在尝试使用boto3来更新现有的CloudFormation模板,但我的代码在'Parameters'属性上失败了!这是我尝试过的:
从配置文件中读取参数
from ConfigParser import SafeConfigParser
parser = SafeConfigParser()
parser.optionxform=str
parser.read( '/parms/SecGrpsParams.cfg')
parms = dict(parser.items('params'))
print parms“产生
{'申请':'Click2Buy','AdminCidr':'10 .0.0.0 / 8','AppMoniker':'c2b','vId':'vpc-3bec005f'}
调用update_stack
client = boto3.client('cloudformation')
response = client.update_stack(
StackName = args.stackname,
TemplateURL = template,
Parameters = args.params,
Capabilities = ['CAPABILITY_IAM']
)
代码产生此错误:
botocore.exceptions.ParamValidationError:参数验证失败:
参数参数的类型无效,
值:{'应用':'Click2Buy','AdminCidr':'10 .0.0.0 / 8','AppMoniker':'c2b','vId':'vpc-3bec005f'},
type:type :,有效类型:,
我尝试过args.params.items()
,[args.params]
和[args.params.items()]
,但无法弄清楚需要什么。
答案 0 :(得分:0)
我发现了我以前的尝试的问题。 “update_stack”调用需要以Parameters = [{'ParameterKey':"parm_name", "ParameterValue":'parm_value'}].
形式传递给“Parameters”字段的列表对象。传递的参数数量必须与CloudFormation模板中的Parameters定义的数量和语法完全匹配。