问题标签 [vtl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1717 浏览

velocity - VTL 中的美元和感叹号(爆炸)符号

我最近在一些 Velocity 代码中遇到了这两个变量:

我对它们的相似性感到惊讶,所以我开始怀疑代码的正确性,并对找出两者之间的区别感兴趣。

速度是否可能允许这两个符号的任何顺序,或者它们有不同的目的?你知道答案吗?

0 投票
0 回答
797 浏览

json - 如何将 aws API 网关的响应从 json 转换为 XML?

我为 SQS(FIFO) 创建了一个 API,它工作正常,但它返回 Json 响应,但我需要 XML 响应。

以下是在发送给客户端之前需要转换的 Json 响应:

0 投票
1 回答
120 浏览

graphql - 是否可以使用 VTL 随机化 DynamoDB 查询结果?

我有一个 AppSync API,并且需要以随机顺序返回数据。

这就是我目前所拥有的,我不知道从哪里开始,也找不到任何关于此的文档。

0 投票
1 回答
557 浏览

amazon-dynamodb - AppSync BatchGet 过滤返回限制错误

背景

我们将 AWS AppSync 与附加的 DynamoDB 数据源一起使用。在将批处理结果返回给我们的客户之前尝试过滤查询时,我们遇到了一个非常令人困惑的情况。目标是根据被过滤的键中包含的子字符串过滤我们的结果。

我们的 DynamoDB 有一个复合键,如下所示:

例如:

在这里你会找到我们的请求解析器:

我们的响应解析器:

问题

当我们用这样的东西查询时:

filter用户输入字符时,var 的值会发生变化——例如,,$filter = A然后$filter = Au,然后$filter = Aus,等等——我们得到非常奇怪的返回。在几乎所有情况下,我们似乎都会得到这样的结果:

奇怪的是,如果我们使用nextToken我们会在结果的第二页或第三页中找到我们正在寻找的结果:

假设

我们花了太多时间认为这是我们的过滤器表达式的问题(可能contains是问题还是可能begins_with是问题?)。但是,我们注意到的是,如果我们将limit(默认值3或通过客户端提供的count)更改为通常大于查询中返回的元素数组的预期大小 - 也就是说,之前过滤器表达式应用于结果 - 问题似乎不存在。

例如,使用filter: 'Au',如果我们将默认限制设置为200而不是3,我们得到的正是我们应该得到的(只有两个以 'Au' 开头的国家名称)!

我的问题是:为什么limit显然返回了我将要调用的具有“隐藏”值的数组?我的猜测是,除了找到过滤器匹配的索引之外,返回的总返回大小带有一堆空值。无论哪种方式,为什么我们没有以预期的方式获得回报?为什么在limit这里过滤的不仅仅是回报的数量——即回报的实际结构方式?

任何帮助将不胜感激!

0 投票
3 回答
1251 浏览

amazon-web-services - 如何直接从请求映射器返回?

考虑以下 GraphQL 模板:

Foo 类型中字段的映射模板bars如下所示:

这很好用。但是如果该bars字段包含空数组[],模板显然会崩溃并出现以下错误:

所以我的问题是:
如何防止查询被执行,并在$context.source.bars为空时将一个空数组返回到响应模板?

0 投票
2 回答
1031 浏览

amazon-web-services - 解析器中的 AppSync GraphQL 变异服务器逻辑

我在寻找好的来源/弄清楚如何正确地将服务器端验证添加到我的 AppSync GraphQL 突变时遇到问题。

本质上,我使用 AWS 仪表板来定义我的 AppSync 架构,因此为我创建了 DynamoDB 表,以及为数据设置的一些基本解析器。

不,我需要实现以下目标:

  1. inventory我有一个球员gold
  2. 玩家调用purchaseItem突变item_id
  3. 一旦调用此突变,我需要在解析器中执行一些检查,即检查item_id关联 DynamoDB 的 int 'Items' 表是否存在,检查玩家是否有足够的金币,再次在关联 DynamoDB 的“Players”表中,如果是,则写入PlayersDynamoDB 表通过将项目添加到他们的库存和新减去的黄金数量。

我相信实现这一目标并降低成本和延迟的最有效方法是为 AppSync 使用“Apache Velocity”模板语言?

很高兴看到这个例子展示了如何查询/写入 DynamoDB、处理错误和正确解决突变。

0 投票
1 回答
7302 浏览

error-handling - 如何使用 $util.error 在 AppSync 中发送自定义错误

我有一个关于 AppSync 错误处理的问题。我想将errorInfo对象与错误响应一起发送,我尝试使用$util.error. 根据文件:

https://docs.aws.amazon.com/appsync/latest/devguide/resolver-util-reference.html

$util.error(String, String, Object, Object)

引发自定义错误。如果模板检测到请求或调用结果错误,则可以在请求或响应映射模板中使用此功能。此外,还可以指定 errorType 字段、数据字段和 errorInfo 字段。数据值将添加到 GraphQL 响应中的错误内的相应错误块中。注意:数据将根据查询选择集进行过滤。errorInfo 值将添加到 GraphQL 响应中的错误内的相应错误块中。注意:errorInfo 不会根据查询选择集进行过滤。

这是我的 ResponseMappingTemplate 的样子:

这是我在解析器上所做的:

这是我在 CloudWatch 日志中看到的内容:

这是我在回复中得到的:

请注意,它errorInfo是空的,我有些如何得到 CustomTemplateException。我怀疑这是因为$utils.error. 但我不知道为什么。谁能帮忙指出错误或告诉我是否errorInfo可以发送自定义

0 投票
1 回答
457 浏览

amazon-web-services - AppSync 到 DynamoDB 更新查询映射错误

我有以下 DynamoDB 映射模板,用于更新现有 DynamoDB 项目:

但我收到以下错误:

我试过删除部分,它似乎与表达式值有关,但我看不出语法有什么问题。

0 投票
2 回答
315 浏览

amazon-dynamodb - 使用 VTL 在 AppSync 中添加或更新修改日期属性

我正在开发 AppSync,我正在努力研究如何使用 VTL 在 Dynamo Db 中保存日期。我的实际要求是保存调用 API 的日期。请让我知道如何在 Dynamo Db 中使用 Date.now() 来实现这一点。提前致谢。

0 投票
1 回答
670 浏览

aws-appsync - 如何在 VTL 的 putItem 中添加当前日期

我一直在尝试使用 VTL 将 createDate 添加到 DynamoDB 中。我发现 $core_v2_utility.CurrentDate 有错误