问题标签 [aws-http-api]

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 回答
900 浏览

aws-lambda - 无服务器:httpApi 中的请求参数

这就是我的serverless.yml部分的样子:

我想使用 AWS HTTP-API。所以我把http->改成httpApi这样:

但我收到此错误消息:

如何在httpApi部分中定义 URL 参数?

0 投票
1 回答
392 浏览

amazon-web-services - 如何使用 AWS lambda 中的账户 ID 获取账户名称

我正在使用 Node.js 12.x 开发 AWS Lambda 函数。我有从event.requestContext. 有没有办法使用 lambda 函数中的 accountId 获取帐户名称?

0 投票
1 回答
596 浏览

amazon-web-services - AWS API Gateway - 带有 HTTP API 的参数映射路径(覆盖:路径)

我开始研究使用 AWS HTTP API 作为一些使用 ECS 运行的微服务的单一入口点。

一个微服务在服务器内部具有以下路由:

我在我的 HTTP API 中定义了完全相同的路由,并使用 CloudMap 和 VPC Link 来访问我的 ECS 集群。到目前为止一切顺利,请求可以到达服务器。然而,到达时的路径并不相同。根据 AWS 文档 [1],它将预先添加阶段名称,以便请求在到达时如下所示:

所以我开始研究参数映射,以便我可以更改集成的路径,但我无法让它工作。

对于 requestParameters 我想覆盖下面的路径,但由于某种原因,带有阶段变量的原始路径仍然存在。如果我只是将 overwrite:path 定义为 $request.path.sessionId 我只会得到 ID 作为路径,或者如果我写任何我想要的字符串,它将在我定义它时到达。但是当我混合 $request.path.sessionId 和字符串的其他部分时,它似乎不起作用。

如何正确格式化?

[1] https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-private.html

0 投票
1 回答
213 浏览

aws-lambda - AWS API 网关:支持多个 Http API 的自定义域

我创建了两个 lambda 函数

  • 登记
  • 登录

并且它们都是从 API 网关中各自的“Http API”触发的。我已经为他们两个人搭建了舞台作为产品。现在我想通过将路径设置为“v1”来使用我的自定义子域来调用它们,例如 prodapi.mydomain.com

  • prodapi.mydomain.com/v1/register
  • prodapi.mydomain.com/v1/login

我能够为单个 API 实现它,但是当我尝试使用相同的路径为另一个 API 映射时,它不允许这样做并说“此域名的 ApiMapping 密钥已经存在”。关于如何实现这一目标的任何建议?

0 投票
1 回答
359 浏览

amazon-web-services - 如何使用 API Gateway v2 检查 http 请求方法

我的架构:

  • 具有反向代理集成的 AWS HTTP API
  • 普通 Lambda 函数
  • 邮递员或浏览器

我正在尝试根据他们推荐的这个答案检查请求方法以处理操作

我将该代码粘贴到我的 lambda 中,但它不起作用,我在日志中收到此错误:

该 lambda 由我的 HTTP API 触发,并且路由具有 GET 方法。

如果我返回事件,我可以看到方法是 GET 或 POST,或者其他,看:

在此处输入图像描述

有人知道发生了什么吗?

0 投票
1 回答
412 浏览

amazon-web-services - 获取使用 Lambda - Node.js 调用 AWS HTTP API 的 URL

我想为我的待办事项建立一些路线,例如:

  • 列表
  • 得到
  • ETC

因此,为了做到这一点,我想检查调用 API 的 URL(如果有更好的方法请叫我出来)。我首先在一个简单的 lambda 中尝试它,但无法获取 URL,这就是我尝试过的:

这就是我的路线的样子:

这是事件显示的内容:

在此处输入图像描述

这就是我得到的:"Calling from: undefined"

知道如何得到它吗?

谢谢

0 投票
2 回答
1696 浏览

aws-lambda - HTTPApi + 无服务器框架 + API 网关 CORS 不起作用

我有一个使用无服务器框架创建的 HTTPApi API 网关。但是对于某些路线,CORS 不起作用。

我尝试cors:true在提供程序上设置选项,但仍然不起作用。这是在所有路由上返回的响应,无论是 4xx 还是 2xx 代码。

如果我检查控制台,我可以看到确实应用了这些选项 但是,有些路由确实有效 ,而 另一些则没有,那些不起作用的有X-Transaction-Key标题并且OPTIONS不返回access-control-allow-headers: authorization,content-type,x-amz-date,x-amz-security-token,x-amz-user-agent,x-api-key,x-transaction-key标题

我错过了什么?提前致谢

0 投票
1 回答
826 浏览

amazon-web-services - 导出方法以在同一 lambda 函数中的其他文件中使用 - Node.js

在我使用集成了反向代理的 http api 网关的 lambda 中,我需要检查 API 的不同路由。我现在有 2 个index.js文件,在主文件中,我有处理程序:

在我的另一个文件上:

/v1/listalltodos当用户访问我看到的网址时message "Internal Server Error"

这里有什么问题?

编辑:

每次我尝试在日志上导出函数时,我都会看到: "errorMessage": "SyntaxError: Unexpected token 'export'",

那么在 lambda 中导出方法的正确方法是什么?

0 投票
1 回答
388 浏览

python - 如何使用 HTTP API 在 AWS 中进行多个 HTTP 方法调用?

我刚开始使用 AWS Serverless,我有一些疑问。这是我的用例以及到目前为止我尝试和完成的工作:

用例

使用 lambda 函数在 AWS 中使用HTTP API(不是 REST API)向 API 发出多个 GET 和 POST 请求。

我做了什么

创建了一个 HTTP API。当前使用 $default 阶段。创建了一个 POST 路由。使用 POST 请求创建了一个函数(在 python 中)。将功能集成与我的 POST 路由附加在一起。我可以使用我的前端代码(用 vanilla js 编写)成功调用此路由。使用从前端收到的数据,我在我的 python lambda 函数中使用它的 URL 调用外部 API。

问题

我想使用它的 URL 向另一个 API 发出 GET 请求。我是否必须制作另一个 lambda 函数才能这样做?

任何帮助都会很棒。如果我问了一个愚蠢的问题,请原谅我。只是我是 AWS 和 HTTP API 的新手。感谢您的时间!

0 投票
0 回答
28 浏览

aws-api-gateway - 使用 VPC 链接自定义 API Gateway http api 的路由选项

我有一个带有 vpc 链接和自定义域(example.com)的 api 网关。

我设置了以下路线-> /endpoint

在后端, /endpoint 存在。

我想用另一个路由(例如,/app1/endpoint)自定义它,而不修改后端的 url。

换句话说,我希望能够使用 API 网关成功地通过以下两个 url 访问相同的资源:

example.com/endpoint

example.com/app1/endpoint

在使用 vpc 链接且不修改后端时,API Gateway 是否可以做到这一点?