gpt4 book ai didi

amazon-web-services - 使用 get_template 从模板创建 CFN 堆栈

转载 作者:行者123 更新时间:2023-12-03 07:38:48 24 4
gpt4 key购买 nike

我尝试使用 get_template() 并传递堆栈 ID 从模板创建 CFN 堆栈,但在尝试创建堆栈时出现错误:

Response
{
"errorMessage": "Parameter validation failed:\nInvalid type for parameter TemplateBody, value: {'TemplateBody': OrderedDict([('Resources', OrderedDict([('BastionHostInstanceSecurityGroupE75D4274', OrderedDict([('Type', 'AWS::EC2::SecurityGroup'), ('Properties', OrderedDict([('GroupDescription', 'SharedInfraPipelineStack/Dev/BastionInfraStack/BastionHost/Resource/InstanceSecurityGroup'), ........ 'ResponseMetadata': {'RequestId': '117d66c7-7bb4-4c92-9c41-0680c943dbb7', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '117d66c7-7bb4-4c92-9c41-0680c943dbb7', 'content-type': 'text/xml', 'content-length': '8055', 'date': 'Mon, 23 Jan 2023 21:16:00 GMT'}, 'RetryAttempts': 0}}, type: <class 'dict'>, valid types: <class 'str'>",
"errorType": "ParamValidationError",
"requestId": "f879686f-2cbf-4b75-aa7e-b940535f0a7d",
"stackTrace": [
" File \"/var/task/lambda_function.py\", line 22, in lambda_handler\n create_cfn_stack(stack_name, stack_id)\n",
" File \"/var/task/lambda_function.py\", line 43, in create_cfn_stack\n cfn.create_stack(\n",
" File \"/var/runtime/botocore/client.py\", line 391, in _api_call\n return self._make_api_call(operation_name, kwargs)\n",
" File \"/var/runtime/botocore/client.py\", line 691, in _make_api_call\n request_dict = self._convert_to_request_dict(\n",
" File \"/var/runtime/botocore/client.py\", line 739, in _convert_to_request_dict\n request_dict = self._serializer.serialize_to_request(\n",
" File \"/var/runtime/botocore/validate.py\", line 360, in serialize_to_request\n raise ParamValidationError(report=report.generate_report())\n"
]
}

这就是我获取模板并将其传递给 create_stack 函数的方式:

def create_cfn_stack(stack_name, stack_id):
try:
template = cfn.get_template(StackName=stack_id)
cfn.create_stack(
StackName=stack_name,
TemplateBody=template,
Capabilities=['CAPABILITY_IAM']
)
logger.info("Success :: create_cfn_stack %s", stack_name)
except ClientError as error:
logger.error(error)
return None
return "created:OK"

那么,我错过了什么?

谢谢。

最佳答案

get_template 返回一个对象

{
'TemplateBody': {},
'StagesAvailable': [
'Original'|'Processed',
]
}

但是create_stackTemplateBody接受string。您不能在create_stack的templateBody中使用模板响应。

关于amazon-web-services - 使用 get_template 从模板创建 CFN 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75215808/

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