gpt4 book ai didi

aws-api-gateway - 在 AWS API 网关集成中操作路径映射

转载 作者:行者123 更新时间:2023-12-02 01:26:37 27 4
gpt4 key购买 nike

我想修改 API 网关中的 url 参数/resource/{VaRiAbLe} 到 S3 映射,使其实际指向/my-bucket/{variable}。也就是说,它接受大小写混合的输入,并将其映射到小写名称。映射路径变量对于 S3 集成来说相对简单,但我似乎无法使用小写映射。

通读 documentation对于映射参数,路径参数看起来像是简单的字符串值(而不是模板化值),因此将映射定义为 method.request.path.variable.toLowerCase() 是行不通的。

有没有人知道如何实现这个映射?

  • 将路径变量映射到 JSON 主体,然后调用另一个实际执行 S3 调用的 API 方法?
  • 硬着头皮实现 Lambda 函数来为我获取 S3?
  • 找到另一个 S3 的 api 方法,它接受我可以用来获取数据的 JSON 主体?

使用编排调用更新

根据 Jack 提供的信息,我认为我应该尝试进行编排调用,因为流量足够低,我确信我无法让 lambda 保持热状态。

作为概念证明,我向我的资源添加了两种方法(位于 /resource/{variable} - GETPOST . GET 方法链接到 POST,后者执行数据的实际检索。

POST 方法配置这是一种普通的 S3 代理方法,您可以在其中将 {variable} 的 URL 路径参数设置为 method.request.body.variable

GET 方法配置这是一种 HTTPS 代理方法。您将需要 POST 方法的 URL,因此您需要部署 API 以获取 URL。这里唯一需要的其他配置是一个 body 映射模板,其内容如下:

{
"variable" : "$input.params('variable').toLowerCase()",
"something" : "$input.params('something')"
}

这应该足以让它正常工作。

这样做的缺点似乎是我要为该资源向我的 API 添加一个额外的方法 (POST),这可能会使 API 的使用者感到困惑。我认为应该可以在 /resource 资源上创建 POST,从 API 设计的角度来看,这至少更有意义。

最佳答案

根据调用此 API 的频率,我要么使用 Lambda 代理,要么将两个 API 网关方法链接在一起。如果 API 的调用频率足以使 Lambda 函数保持温暖(比如每分钟一次),则使用 Lambda。如果没有,请使用编排的 API 调用。

编排的 API 调用会很有趣,如果您有任何疑问,我很乐意为您提供帮助。

据我所知,唯一用于获取对象数据的 S3 API 是在其 API 引用中记录的 GET。

关于aws-api-gateway - 在 AWS API 网关集成中操作路径映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36522300/

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