RequestMappingTemplate в Cloudformation yaml

#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**