[英]What permissions are required to GET_TEMPLATE for Firebase Remote Config?
[英]Create a CFN stack from template using get_template
我正在嘗試使用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
function 的方式:
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
返回一個 object
{
'TemplateBody': {},
'StagesAvailable': [
'Original'|'Processed',
]
}
但是create_stack
的TemplateBody
接受string
。 您不能在 create_stack 的 templateBody 中使用模板響應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.