gpt4 book ai didi

aws-cloudformation - boto3 cloudformation 参数验证失败

转载 作者:行者123 更新时间:2023-12-03 07:35:23 31 4
gpt4 key购买 nike

我创建了以下参数,这些参数应该在调用 cloudformation 客户端以创建 SNS 堆栈命令时传递。

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': '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="681b07050d280d05090104460b0705" rel="noreferrer noopener nofollow">[email protected]</a>'
},
]
)

我认为这与参数的数据类型有关,那么我该如何修复它呢?

最佳答案

您的参数是字符串:

"{'ParameterKey': 'Environment', 'ParameterValue': 'dev'}" <-- note quotations at the beginning and end.

这是因为您要将字符串附加到 pubSNSCFParameters:

pubSNSCFParameters.append("{'ParameterKey': 'Environment','ParameterValue':'" + Constants.Env + "'}")

应该是字典:

pubSNSCFParameters.append({'ParameterKey': 'Environment','ParameterValue': Constants.Env})

假设 Constants.Env 是字符串。

关于aws-cloudformation - boto3 cloudformation 参数验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61567998/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com