#amazon-web-services #amazon-cloudformation
Вопрос:
Я пытаюсь развернуть приложение на Amazon с помощью stackery. И мне нужно указать строковое значение для RequestMappingTemplate. Но я не могу правильно написать это. Вот часть yaml для настройки функций
CreateArticleConfiguration:
Type: AWS::AppSync::FunctionConfiguration
Properties:
ApiId: !Sub ${ApiId}
Name: !Sub kp_${EnvironmentTagName}_createArticle
DataSourceName: !GetAtt CourseGraphQLToFnCreateArticleDataSource.Name
FunctionVersion: 2018-05-29
RequestMappingTemplate: |-
{
"version" : "2018-05-29",
"operation": "Invoke",
"payload": $util.toJson($context.args.input)
}
Когда я пытаюсь развернуть его с помощью stackery, возникает ошибка
Ошибка: Не удалось проанализировать шаблон: при анализе сопоставления блоков в «», строка 1658, столбец 7: Идентификатор: ^ ожидалось , но найдено » в «», строка 1667, столбец 39: … RequestMappingTemplate: версия «{/n /»/» : /»2018-05-29/»,/н / …
Вот как RequestMappingTemplate был обработан в aws-sambuildtemplate.yaml
RequestMappingTemplate: версия «{/n /»/» : /»2018-05-29/»,/n /»операция/»/ : /»Вызов/»,/n /»полезная нагрузка/»: $util.toJSON($context.args.input)/n}»
Если я изменю двойные кавычки на одинарные, шаблон будет успешно развернут, но в AWS шаблон отображения неверен
{/n «версия» : «2018-05-29»,/n «операция»: «Вызов»,/n/ / «полезная нагрузка»: $util.toJSON($context.args.input)/n}
Я пытался избежать двойных кавычек с /, но это не помогло. Может ли кто-нибудь сказать мне, как правильно описывать такие шаблоны?
Ответ №1:
Текст шаблона должен храниться в отдельном файле, а затем вам нужно использовать его следующим образом
CreateArticleConfiguration:
Type: AWS::AppSync::FunctionConfiguration
Properties:
ApiId: !Sub ${ApiId}
Name: !Sub kp_${EnvironmentTagName}_createArticle
DataSourceName: !GetAtt CourseGraphQLToFnCreateArticleDataSource.Name
FunctionVersion: 2018-05-29
RequestMappingTemplateS3Location: **path-to-file**