模板格式错误:每个映射属性必须是字符串或列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板格式错误:每个映射属性必须是字符串或列表相关的知识,希望对你有一定的参考价值。
我想在CloudFormation模板的顶部提供一些快速参考,以便我不必每次在整个模板中都需要写出复杂的参考。
所以我写了这个:
Mappings:
StandardResourcesMap:
AWSExecuteApi:
string: !Join [ ':' , ['arn', !Sub '${AWS::Partition}', 'execute-api', !Sub '${AWS::Region}', !Sub '${AWS::AccountId}'] ]
AWSLambdaFunctions:
string: !Join [ ':' , ['arn', !Sub '${AWS::Partition}', 'apigateway', !Sub '${AWS::Region}', 'lambda:path/2015-03-31/functions/'] ]
CloudFormation模板的其余部分将遵循此步骤,并且在没有上述内容的情况下,将部署该模板(一个S3存储桶,DynamoDB表和一个基于python 3.7的Lambda)。]]
希望是然后我可以使用:
!FindInMap [StandardResourcesMap,AWSExecuteApi,string]
无论何时我需要长远的价值,但是模板使用以下方法都无法通过验证:
An error occurred (ValidationError) when calling the CreateChangeSet operation: Template format error: Every Mappings attribute must be a String or a List.
正如标题所述。
我已经尝试过Mappings
的多种变体,例如使用!Ref
变体:
Mappings: StandardResourcesMap: AWSExecuteApi: string: !Join [ ':' , ['arn', !Ref 'AWS::Partition', 'execute-api', !Ref 'AWS::Region', !Ref 'AWS::AccountId'] ] AWSLambdaFunctions: string: !Join [ ':' , ['arn', !Ref 'AWS::Partition', 'apigateway', !Ref 'AWS::Region', 'lambda:path/2015-03-31/functions/'] ]
而且我只是以上面介绍的一个为中心,遇到了各种验证错误。
任何帮助将不胜感激。
我想在CloudFormation模板的顶部有一些快速参考,因此我不必每次在整个模板中都需要写出复杂的参考。所以我这样写:...
答案
问题是这样:You cannot include parameters, pseudo parameters, or intrinsic functions in the Mappings section.
Mappings
以上是关于模板格式错误:每个映射属性必须是字符串或列表的主要内容,如果未能解决你的问题,请参考以下文章
如何解决以下错误?输入必须是任意长度的字符向量或字符向量列表,每个字符向量的长度为1
索引(从零开始)必须大于或等于零且小于参数列表的大小。 - 字符串.格式
AWS CloudFormation 错误“属性 AlarmActions 的值必须是字符串列表类型”