You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS AppSync解析器中获取GraphQL查询?

在AWS AppSync解析器中访问原始GraphQL查询

要在Lambda解析器中获取完整的GraphQL查询内容,你可以通过AppSync提供的VTL上下文变量$context.request来获取,其中queryString字段就是原始的查询文本。只需修改Terraform中的请求模板,将该字段传递给Lambda的payload即可。

步骤1:修改Terraform的AppSync解析器请求模板

更新request_template的payload部分,新增query字段,把$context.request.queryString传入:

resource "aws_appsync_resolver" "graphql_event_resolver" {
  api_id      = aws_appsync_graphql_api.appsync.id
  type        = "Query"
  field       = "event"
  data_source = aws_appsync_datasource.graphql_datasource.name

  request_template = <<EOF
{
    "version" : "2017-02-28",
    "operation": "Invoke",
    "payload": {
        "resolve": "event",
        "arguments": $util.toJson($context.arguments),
        "query": $util.toJson($context.request.queryString)
    }
}
EOF

  response_template = var.response_template
}

步骤2:更新Lambda解析器代码

在Lambda的handler中,直接从传入的event对象里读取query字段即可:

exports.handler = (event, context, callback) => {
    console.log('原始GraphQL查询:', event.query);
    console.log('VTL details: ', event);
    callback(null, event);
};

额外说明

$context.request还包含其他有用的请求元数据,你可以按需添加到payload中:

  • $context.request.variables:查询中使用的变量键值对
  • $context.request.headers:请求头信息
  • $context.request.operationName:指定的GraphQL操作名称

内容的提问来源于stack exchange,提问作者Happy Koala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 03:51:05