gpt4 book ai didi

amazon-web-services - 如何在速度模板中添加生成随机 UUID 等功能,用于 API 网关中的请求/响应映射

转载 作者:行者123 更新时间:2023-12-04 00:27:24 27 4
gpt4 key购买 nike

我正在为 AWS API 网关创建请求映射模板。在该模板中,我想根据某些条件自定义请求参数并应用运算符。

 #foreach($header in $input.params().header.keySet())
#if($header=="id")#set($idVal =
$util.escapeJavaScript($input.params().header.get($header)))
#if($idVal.matches("^[0-9a-f]{4}-[0-9A-Z]{3}$"))
"$header":"$idVal"
#else
#set($random = UUID.randomUUID())
"$header":"$random"
#end
#else

例如,在上面基于 if 条件的模板中,我想生成 randomUUID 并添加到标题中。但是当我测试时,id 值设置为空字符串。

如何在速度模板映射 api 网关中使用包和 java 函数支持?另外,请分享对格式良好的模板的任何引用,了解更多信息会非常有用。

最佳答案

API Gateway 中使用的 VTL 不能使用您自己的包进行扩展。只有built-in variables and $util functions可以使用。

您可能会发现 $context.requestId包含适合您目的的 UUID,每个请求都是唯一的。请注意,如果您使用的是 Lambda 集成,则此值与 Lambda 的 context.requestId 不同。这只是巧合地具有相同的名称。

或者,$context.xrayTraceId 最右边的 33 个字符应该包含一个 4 字节的时间戳(8 个十六进制数字)+ '-' + 一个 96 位唯一值(24 个十六进制数字),您可以从中构造一个可用的 UUID,并使用一些轻量字符串操作。

关于amazon-web-services - 如何在速度模板中添加生成随机 UUID 等功能,用于 API 网关中的请求/响应映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55094888/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com