首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Appsync VTL前环极限为101

Appsync VTL前环极限为101
EN

Stack Overflow用户
提问于 2018-04-05 14:00:57
回答 2查看 1.5K关注 0票数 2

当我试图在VTL响应模板中返回一个#foreach循环时,即使我有116个条目,它也不会返回超过101个。为了进行测试,我创建了两个字段itemsitemCount,并运行相同的ES查询。

items的VTL响应映射

代码语言:javascript
复制
[
  #foreach($entry in $context.result)
    #if( $velocityCount > 1 ) , #end
    $util.toJson($entry.get("_source"))
  #end
]

itemCount的VTL响应映射

代码语言:javascript
复制
$context.result.size()

看起来,appsync (引用:http://people.apache.org/~henning/velocity/html/ch05s04.html)对foreach循环设置了一个限制。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-10 19:14:03

我们刚刚将这个限制更新为1000,这是在AppSync限制页中更新的。

票数 4
EN

Stack Overflow用户

发布于 2022-02-25 05:10:47

绕过AppSync和arbitrary设置的任意速度AppSync限制的一种方法是通过在1000桶中进行分区来分解foreach循环。下面是一个有用的例子:

代码语言:javascript
复制
## Partition to get around foreach iteration limit
#set($partition_size = 1000)
#set($max_partition_index = $list.size()/$partition_size)
#foreach($partition_index in [0..$max_partition_index])
  #set($start_index = $partition_index * $partition_size)
  #if($partition_index == $max_partition_index)
    ## Last partition
    #set($end_index = $list.size() - 1)
  #else
    #set($end_index = (($partition_index + 1) * $partition_size) - 1)
  #end

  #foreach($index in [$start_index..$end_index])
    #if($index != 0),#end
    "$list[$index].S"
  #end
#end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49674301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档