我已经创建了下面的参数,这些参数应该是在调用cloudformation client for create SNS stack命令时传递的。
pubSNSCFParameters = []
pubSNSCFParameters.append("{'ParameterKey': 'Environment','ParameterValue':'" + Constants.Env + "'}")
pubSNSCFParameters.append("{'ParameterKey':'pDisplayName','ParameterValue':'" + SNSStackName + "'}")
pubSNSCFParameters.append("{'ParameterKey':'pTopicName','ParameterValue':'" + SNSStackName + "'}")它给出了如下输出:
["{'ParameterKey': 'Environment', 'ParameterValue': 'dev'}", u"{'ParameterKey': 'pDisplayName', 'ParameterValue': 'some-big-value'}", u"{'ParameterKey': 'pTopicName', 'ParameterValue': 'asome-big-value'}"]现在,当我运行我的boto3客户端为SNS创建堆栈时,我得到了botocore.exceptions.ParamValidationError:参数验证失败:
Invalid type for parameter Parameters[0], value: {'ParameterKey': 'Environment', 'ParameterValue': 'dev'}, type: <type 'str'>, valid types: <type 'dict'>代码片段:
with open(templatelocation + 'CFT_SNS.json', 'r') as f:
client.create_stack(StackName=stackName,
TemplateBody=f.read(),
Parameters=pubSNSCFParameters ,
Capabilities=['CAPABILITY_NAMED_IAM'],
Tags=[
{
'Key': 'CreatorName',
'Value': 'some@email.com'
},
]
)我认为这与参数的数据类型有关,那么我如何解决它呢?
发布于 2020-05-03 12:21:37
您的参数是字符串:
"{'ParameterKey': 'Environment', 'ParameterValue': 'dev'}" <-- note quotations at the beginning and end.这是因为您要将字符串附加到pubSNSCFParameters:
pubSNSCFParameters.append("{'ParameterKey': 'Environment','ParameterValue':'" + Constants.Env + "'}")应该是dict:
pubSNSCFParameters.append({'ParameterKey': 'Environment','ParameterValue': Constants.Env})假设Constants.Env为字符串。
https://stackoverflow.com/questions/61567998
复制相似问题