AWS Appsync 中的 VTL 宏

VTL macro in AWS Appsync

我正在为 aws appsync 编写请求解析器,我的宏不工作

我尝试将其简化为最简单的形式,如下面的代码所示,它只是 returns #addArgs() 而不是 "test"

#set( $argNames  = {} )

#macro( addArgs)
"test"
#end

#addArgs()
#foreach( $entry in $arguments.entrySet() )
    $!{argNames.put("$entry.key", $entry.value)}
#end

{
"version": "2017-02-28",
"operation": "Invoke",
"payload": {
    "body": {
        "args": $util.toJson($argNames)
    },
    "headers": {
        "Authorization": "$ctx.request.headers.Authorization",
    }
}
}

我希望在 运行 测试时得到单词 "test",但我得到的却是 #addArgs。

AppSync 的 VTL 不支持宏

正如@Jose A 所说,目前还不支持宏。这是功能请求的问题:

https://github.com/aws/aws-appsync-community/issues/90