AWS Lambda函数REST API端点 - 403错误

Jas*_*per 14 amazon-web-services aws-lambda

我有一个AWS Lambda函数,它作为REST API公开.

当通过aws lambda控制台上的Test按钮调用它时,它可以正常工作.

当通过在线REST客户端调用它时,我收到403错误.它被创建为需要 - 无需身份验证(打开).

我错过了什么配置?

Dav*_*mon 16

据推测,Lambda通过AWS API网关公开.您在新的"无身份验证"API网关资源上获得403的一个原因是您尚未部署更改.

在API Gateway Console中,单击Actions下拉列表并选择Deploy API.

你应该好好去.

  • 操作中没有部署 API (2认同)

sap*_*nov 8

也许您正在向错误的端点发送请求.

我通过向https://example.com/locate发送POST请求获得403错误响应

但是,一旦我添加了阶段http://example.com/dev/locate并将更改部署到此API,它就可以正常工作,返回200响应.

在此输入图像描述

希望有所帮助.


Arp*_*pit 6

如果您从不同的域访问它,您必须首先确保在AWS API 网关上启用 CORS,因为它是 API 网关,它抛出 403 错误而不是 lambda 函数。您可以为方法或完整资源启用 CORS。选择操作,然后选择启用 CORS。如果资源不存在,这将向资源添加 OPTIONS 方法。

在 API 网关上启用 CORS 将确保所有响应标头都将 Access-Control-Allow-Origin 值设置为“*”(即允许所有来源,但您可以指定特定来源,例如http://localhost)。

为方法启用 CORS

始终确保您调用的是正确的 URL。您可以从API Gateway 的Stage部分或从 Lambda 函数获取 url (如果您已将 Lambda 函数设置为集成端点)

API url -> API 网关 -> 舞台

API 网址 -> Lambda 函数

您可以在 Method 和 Integration 响应中看到设置的新标头。

在此处输入图片说明