【问题标题】:RequestMappingTemplate in Cloudformation yamlCloudformation yaml 中的 RequestMappingTemplate
【发布时间】:2021-06-25 14:00:53
【问题描述】:

我正在尝试使用 stackery 将应用程序部署到 Amazon。我需要为 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 列: APIID: ^ 预期,但在“”,第 1667 行,第 39 列中找到 '': ... RequestMappingTemplate: "{/n /"version/" : /"2018-05-29/",/n / ...

以下是 RequestMappingTemplate 被处理为 aws-sam\build\template.yaml 的方式

RequestMappingTemplate: "{/n /"version/" : /"2018-05-29/",/n /"操作/"/ : /"调用/",/n /"有效负载/": $util.toJson($context.args.input)/n}"

如果我将双引号改为单引号,则模板部署成功,但在 AWS 映射模板不正确

{/n '版本' : '2018-05-29',/n '操作': '调用',/n/ / “有效载荷”:$util.toJson($context.args.input)/n}

我尝试用 / 转义双引号,但没有帮助。谁能告诉我应该如何正确描述这些模板?

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案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**
    

    【讨论】:

      猜你喜欢
      • 2021-01-05
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 2018-07-16
      • 2017-04-26
      • 2021-02-07
      • 1970-01-01
      • 2020-08-06
      相关资源
      最近更新 更多