【问题标题】:Link mulitple mutations in AppSync在 AppSync 中链接多个突变
【发布时间】:2021-05-13 10:54:09
【问题描述】:

我正在 AppSync 中做一个应用程序,我正在尝试使用 Cloud Formation 创建一个架构,其中一个突变链接到一个解析器,第二个突变链接到第二个解析器。但它总是给我一个错误,说我不能在一个请求中附加两个突变。

如果我尝试在控制台中执行,我可以在两个解析器中附加两个突变。

有人知道如何在 Cloud Formation 中配置所有内容吗?

[编辑] 我将此解析器添加到模板中

AppSyncMutationResolverOne:
   Type: "AWS::AppSync::Resolver"
   DependsOn: AppSyncSchema
   Properties:
     ApiId: !Ref GraphApiId
     TypeName: Mutation
     FieldName: exampleOne
     DataSourceName: !GetAtt DataSourceOne.example
     RequestMappingTemplate: !Ref RequestMappingTemplate
     ResponseMappingTemplate: !Ref ResponseRequestMappingTemplate

但是当我尝试添加第二个 Mutation Resolver 时,与第一个非常相似

 AppSyncMutationResolverTwo:
    Type: "AWS::AppSync::Resolver"
    DependsOn: AppSyncSchema
    Properties:
      ApiId: !Ref GraphApiId
      TypeName: Mutation
      FieldName: exampleTwo
      DataSourceName: !GetAtt DataSourceTwo.example
      RequestMappingTemplate: !Ref RequestMappingTemplate
      ResponseMappingTemplate: !Ref ResponseRequestMappingTemplate

它返回一个错误,说我无法将两个突变解析器添加到同一个 API

这是我的 RequestMappingTemplate 用于两个突变:

    {
       "version": "2017-02-28",
       "operation": "Invoke",
       "payload": { 
             "arguments": $utils.toJson($context.arguments)
          }
    }

【问题讨论】:

  • 您能添加您要部署的代码吗?
  • 嗨,我用云形成示例更新了问题

标签: amazon-cloudformation aws-appsync


【解决方案1】:

您的 Cloudformation 模板对我来说似乎很好,但是,根据您使用的 DataSource 的类型,您也可以按照 here 的说明在 RequestMappingTemplate 上定义字段名称(即 Lambda 数据源),像这样:

{
    "version": "2018-05-29",
    "operation": "Invoke",
    "payload": {
        "field": "getPost",
        "postId": "1",
    }
}

因此,基于此,您似乎对两个突变解析器使用了相同的 RequestMappingTemplate。检查两个请求映射是否对应于在 Cloudformation 模板上为每个解析器定义的相同 FieldName。这可能是它在控制台上运行但不能通过 Cloudformation 运行的原因。

【讨论】:

  • 嗨,我添加了用于两个突变的请求映射模板。在这种情况下,我只传递参数......我也应该传递字段吗?
  • 是的,你也应该通过!在这种情况下,您需要两个不同的请求映射模板,每个解析器一个。
猜你喜欢
  • 2018-11-05
  • 2018-12-24
  • 2019-04-13
  • 2020-01-02
  • 2018-11-21
  • 2018-12-02
  • 1970-01-01
  • 2020-08-13
  • 2019-12-27
相关资源
最近更新 更多