使用 API Gateway Lambda 授权方调用 API - Amazon API Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用 API Gateway Lambda 授权方调用 API

配置 Lambda 授权方(以前称为自定义授权方)并部署 API 后,您应在启用 Lambda 授权方的情况下测试 API。为此,您需要一个 REST 客户端(如 cURL 或 Postman)。对于以下示例,我们使用 Postman。

注意

调用已启用授权方的方法时,如果 TOKEN 授权方所需的令牌未设置、为 null 或由指定的令牌验证表达式认定为无效,则 API Gateway 不会将该调用记录到 CloudWatch 中。同样,如果 REQUEST 授权方所需的任何身份来源未设置、为 null 或为空,则 API Gateway 不会将该调用记录到 CloudWatch 中。

在以下示例中,我们将说明如何在已启用前述 Lambda TOKEN 授权方的情况下使用 Postman 调用或测试 API。如果您显式指定必需的路径、标头或查询字符串参数,则可应用此方法以使用 Lambda REQUEST 授权方调用 API。

使用自定义 TOKEN 授权方调用 API

  1. 打开 Postman,选择 GET 方法,并将 API 的 Invoke URL (调用 URL) 粘贴到相邻的 URL 字段中。

    添加 Lambda 授权令牌标头,并将值设置为 allow。选择 Send (发送)

    响应显示,API Gateway Lambda 授权方返回了 200 OK 响应,并成功授权调用访问与此方法集成的 HTTP 终端节点 (http://httpbin.org/get)。

  2. 仍然是在 Postman 中,将 Lambda 授权令牌标头值更改为 deny。选择 Send (发送)

    响应显示,API Gateway Lambda 授权方返回了 403 禁止访问响应,而未授权调用访问 HTTP 终端节点。

  3. 在 Postman 中,将 Lambda 授权令牌标头值更改为 unauthorized,并选择发送

    响应显示,API Gateway 返回了 401 未授权响应,而未授权调用访问 HTTP 终端节点。

  4. 现在,将 Lambda 授权令牌标头值更改为 fail。选择 Send (发送)

    响应显示,API Gateway 返回了 500 内部服务器错误响应,而未授权调用访问 HTTP 终端节点。