问题标签 [amazon-api-gateway]

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 投票
1 回答
100 浏览

aws-lambda - 通过 API 网关测试 Java lambda 函数:无法确定要授权的服务/操作名称

我正在玩 API Gateway。基本上,我有一个简单的 java 代码,旨在返回问候消息:

我已将具有以下特征的角色附加到 lambda 函数:

4 个默认策略(AmazonAPIGatewayInvokeFullAccess、CloudWatchFullAccess、AmazonAPIGatewayAdministrator、AWSLambdaBasicExecutionRole)和一个自定义策略(lambda_execute)。

角色的信任关系:

关于自定义策略“lambda_execute”:

关于 API 网关:

资源:

在此处输入图像描述

方法请求:

在此处输入图像描述

集成请求:

在此处输入图像描述

在此处输入图像描述

当我测试资源时,会发出以下消息:

在此处输入图像描述

任何人都可以指出我错过了什么或做错了什么?提前这么多。

0 投票
2 回答
589 浏览

amazon-web-services - 如何每周调用一次 API Gateway API

我有一个使用 API Gateway 和几种方法构建的 REST API。我需要每周POST对一个方法运行一次请求。/generate-stats我目前通过 AWS 控制台调用此方法,方法是将请求正文粘贴到方法执行流程图下 API Gateway 中存在的“测试”功能中。

我将如何自动执行此呼叫?每周运行一次的 lambda 会是最简单的解决方案吗?理想情况下,如果请求失败,我可以存储响应或触发警报。

0 投票
1 回答
1308 浏览

json - 如何从 AWS API Gateway cloudwatch 日志中获取用户的公共 IP?

我正在尝试将用户的公共 IP 地址记录到 AWS API Gateway 中的 CloudWatch 日志中。

我创建了一个名为 SourceIP 的模型,并尝试根据 AWS 官方文档添加以下架构,但它给了我错误。

代码 :

错误 :

指定的模型无效:验证结果:警告:[],错误:[指定的模型架构无效。不支持的关键字:[“source_ip”]]

我的架构可能有什么问题?

在此处输入图像描述

任何帮助将不胜感激。

谢谢。

0 投票
2 回答
230 浏览

amazon-web-services - 删除处于“已存储”状态的 SQS 消息

我有一个用例,我必须将消息对消费者的可见性延迟大约 15 分钟,但如果在 15 分钟内发生事件变化;我应该取消消息,以便状态在那里结束。

我看到 Amazon SQS 消息计时器适用于这种情况,但我无法满足要求的第二部分。

这在编程上是可能的吗?

在文档https://docs.amazonaws.cn/en_us/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html中提到,Amazon SQS 消息具有三种基本状态:

  1. 由生产者发送到队列。
  2. 从队列中接收到
  3. 消费者。从队列中删除。
  • 一条消息在被生产者发送到队列后被认为已存储,但消费者尚未从队列中接收到消息(即在状态 1 和 2 之间)。
  • 一条消息在消费者从队列中接收到但尚未从队列中删除(即在状态 2 和 3 之间)后被认为是在传输中。

我知道消息可以在消费后被删除,但我如何在消费者看到它之前删除或过期它?

我可以使用其他任何 AWS 服务吗?查看阶跃函数,但不完全适合上面提到的这个简单用例。

任何指针都会非常有帮助。

请多多包涵/AWS noob。谢谢。

0 投票
1 回答
168 浏览

aws-lambda - AWS APIGW - 访问 Lambda 映射模板中集成请求的静态 HTTP 标头

我正在尝试修改类似于在此处找到的 API GW 配置https://oozio.medium.com/serverless-discord-bot-55f95f26f743

我需要做的是将自定义静态 HTTP 标头传递给 lambda。我已经定义了APIGW -> /{resource} -> Integration Request -> HTTP Headers:一个标题{"Name": "application", "Mapped from": "'discord'", "Caching": false}(如文档中所述的静态值的单个刻度)

此标头永远不会出现在映射模板的标头列表中。我花了一天的大部分时间试图解决这个问题。

简化问题:

您如何访问映射模板中集成请求中定义的静态 HTTP 标头?

TIA

0 投票
1 回答
541 浏览

amazon-web-services - Amazon API Gateway:有没有办法像在 AWS 控制台中测试 REST API 一样测试 HTTP API?

我正在使用 AWS Lambda 和 Amazon API Gateway 构建 HTTP API。
在 AWS 控制台中,我可以通过 Method Execution 测试 REST API,但在 HTTP API 配置页面中找不到类似的方法。

我怎样才能完成我想要的?
有没有好的方法可以做到这一点,或者由于某种原因没有这样的方法?

谢谢!

0 投票
1 回答
1035 浏览

amazon-api-gateway - 亚马逊 SP-API 身份验证

我正在尝试使用 Amazon SP-API 通过 Postman 进行测试调用。我有一个可以发出 API 请求的应用程序,但它不在亚马逊应用市场中。我已经看到您可以使用 LWA 令牌发出 Grantless 请求,尽管我一直在进行实际调用。下面是我用来获取令牌的调用。

URL:https ://api.amazon.com/auth/o2/token 授权:AWS 签名 我添加了必要的密钥 在正文中我添加了grant_type:client_credentials,client_id:myclientid,client_secret:myclientsecret,范围:sellingpartnerapi::notifications ' ''“access_token”:“mytoken”,“范围”:“sellingpartnerapi::notifications”,“token_type”:“bearer”,“expires_in”:3600 '''

收到响应后,我想使用此 URL 进行测试调用以检索订单

网址:https ://salespartnerapi-na.amazon.com/orders/v0/orders

然后,我不知道如何验证该调用以获取订单。

0 投票
0 回答
23 浏览

amazon-web-services - 使用 AWS 网关的 API 版本控制(非 lambda 函数)

我们已经在使用部署了多个 API 的 AWS API 网关。现在,我们正在尝试为我们的 api 添加版本控制,如下所示:/v1/myapi/v2/myapi. /myapi也应该可以工作并且应该指向/v1/myapi 。我们已经在我们的代码内部处理了这个(Springboot)

现在,为上述用例实现版本控制的最佳方法是什么?我最初的想法是:我可以有多个 URL 高级资源:v1 和 v2 及以下它们一个一个地实现所有 URL。

就像是:

有一个更好的方法吗?我担心的一个问题是:如果我继续添加 api 版本,那将意味着要在 aws api 网关中添加越来越多的版本。

thx - 欧姆

0 投票
1 回答
238 浏览

java - 如何根据请求路径过滤 Java lambda 的 API Gateway 请求

我有一个与 API Gateway 代理集成的 Lambda 函数,这意味着它接受代理+资源作为输入。

我有一个 java Lambda 类,它接受APIGatewayProxyRequestEvent类型作为输入并将APIGatewayProxyRequestOutput作为响应/输出。

现在我正在寻找一些关于如何根据请求路径和请求参数编排不同类的指南。

0 投票
1 回答
909 浏览

amazon-web-services - 从 Lambda 调用 API 网关

我有一个用例,当向 S3 存储桶创建新对象时触发 Lambda 事件。

现在在 Lambda 中,我想调用 API Gateway。

s3 对象添加 -> Lambda -> API 网关

在 Lambda 中调用 API 网关的任何代码参考都会有所帮助。