【问题标题】:AWS appync query resolver returns nullAWS appync 查询解析器返回 null
【发布时间】:2020-01-02 15:53:20
【问题描述】:

我有以下疑问:

query kitchen {
  getItemKitchen(id:"fakeIdHere") {
    id
    kitchenName
  }
}

返回:

{
  "data": {
    "getItemKitchen": null
  }
}

并且已经在模式中定义了这样的查询:

type Query @aws_cognito_user_pools
@aws_api_key {
    getItemKitchen(id: ID!): ItemKitchen

解析器请求模板是:

{
    "version":"2017-02-28",
    "operation":"GET",
    "path":"/myType/myIndex/_search",
    "params": {
        "body": {
            "query": {
                "match": {
                    "id.keyword": "${context.arguments.id}"
                }
            }
        }
    }
}

还有我的回复模板:

$util.toJson($context.result.get("_source"))

我希望得到以下回复:

{
"result": {
        "_source": {
            "id": "HelloWorldTestId",
            "createdAt": "Hello, world!"
        }
    }
}

我还有一个可以正常工作的突变,使我能够在 dynamodb 上创建项目,然后将其发送到 elasticsearch 以通过 lambda 函数进行查询。

我已经检查过该项目是否存在于 elasticsearch 中。

我的 Elasticsearch 和 DynamoDb 实例都位于 VPC 中。在添加 VPC 之前,我能够查询弹性搜索实例并获得响应。 根据文档,这种响应意味着没有附加解析器,但突变似乎工作得很好。我尝试移除并重新连接解析器,但没有任何反应。

任何帮助将不胜感激,因为这变得非常令人沮丧。

【问题讨论】:

  • 您期望什么?一个空哈希而不是 null,因为您查询的是假 ID?
  • 我期待一个项目。万一的项目存在。同样的查询在 kibana 上运行得很好,返回了预期的项目
  • 只返回 $context 参数没有任何改变
  • 您能否展示您希望匹配的示例文档?
  • 添加了示例文档

标签: elasticsearch graphql amazon-vpc aws-appsync


【解决方案1】:

目前,AppSync 不支持位于 VPC 后面的 Elasticsearch 实例。 在此处查看文档的第一行:

这就是在添加 VPC 之前查询对您有效的原因。

【讨论】:

    猜你喜欢
    • 2014-07-24
    • 2021-04-21
    • 2021-09-09
    • 1970-01-01
    • 2019-07-30
    • 2019-02-04
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多