

# 使用 API Gateway Lambda 授权方调用 API
<a name="call-api-with-api-gateway-lambda-authorization"></a>

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

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

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

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

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

    添加 Lambda 授权令牌标头，并将值设置为 `allow`。选择**发送**。  
![\[使用 Lambda 授权允许令牌调用 API\]](http://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/images/custom-auth-call-api-with-allow-token.png)

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

1.  仍然是在 Postman 中，将 Lambda 授权令牌标头值更改为 `deny`。选择**发送**。  
![\[使用 Lambda 授权拒绝令牌调用 API\]](http://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/images/custom-auth-call-api-with-deny-token.png)

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

1.  在 Postman 中，将 Lambda 授权令牌标头值更改为 `unauthorized`，并选择**发送**。  
![\[使用 Lambda 授权未授权令牌调用 API\]](http://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/images/custom-auth-call-api-with-unauthorized-token.png)

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

1.  现在，将 Lambda 授权令牌标头值更改为 `fail`。选择**发送**。  
![\[使用 Lambda 授权失败令牌调用 API\]](http://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/images/custom-auth-call-api-with-fail-token.png)

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