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

在AWS AppSync嵌套解析器中访问父解析器属性(插值问题)

AWS AppSync嵌套解析器字符串插值问题解决

你的核心问题是Velocity模板中$context.source.id未被正确解析,导致下游收到字面量字符串。原因是直接将带变量的字面量传入$util.toJson,Velocity不会解析其中的变量。以下是两种可行的修复方案:

修复后的Velocity模板

方案1:字符串拼接后转JSON

{
  "version": "2018-05-29",
  "method": "POST",
  "params": {
    "headers": {
      "Content-Type": "application/json"
    },
    "query": {
      "command_name": "set_email",
      "new": $util.toJson($context.arguments.new)
    }
  },
  "resourcePath": $util.toJson("/customers/" + $context.source.id)
}

方案2:使用Velocity原生插值语法

Velocity支持在双引号包裹的字符串中直接解析变量,也可以这样写:

{
  "version": "2018-05-29",
  "method": "POST",
  "params": {
    "headers": {
      "Content-Type": "application/json"
    },
    "query": {
      "command_name": "set_email",
      "new": $util.toJson($context.arguments.new)
    }
  },
  "resourcePath": "$util.toJson('/customers/$context.source.id')"
}

关键说明

  1. 移除了原模板中"new"字段后的多余逗号,避免JSON语法错误
  2. $context.source.id会从父解析器(customer字段的解析结果)中获取真实ID值
  3. 必须让Velocity先完成变量解析/字符串拼接,再通过$util.toJson生成合法的JSON格式值,不能直接将带变量的字面量传入toJson

内容的提问来源于stack exchange,提问作者Lee Hambley

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:05:19