

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 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 或因指定的 **Token validation expression (字符驗證表達式)** 而失效，則 API Gateway 不會將呼叫記錄到 CloudWatch。同樣地，如果 `REQUEST` 授權方的任何必要身分來源未設定、為 Null 或空白，API Gateway 不會將呼叫記錄到 CloudWatch。

 以下示範如何使用 Postman 來呼叫或測試具有 Lambda `TOKEN` 授權方的 API。如果您明確指定必要的路徑、標頭或查詢字串參數，則可以套用此方法呼叫具有 Lambda `REQUEST` 授權方的 API。

**呼叫具有自訂 `TOKEN` 授權方的 API**

1.  開啟 **Postman**，選擇 **GET** 方法，然後將 API 的 **Invoke URL (呼叫 URL)** 貼到相鄰的 URL 欄位中。

    新增 Lambda 授權字符標頭，並將值設定為 `allow`。選擇 **Send (傳送)**。  
![\[使用 Lambda 授權 Allow (允許) 字符呼叫 API\]](http://docs.aws.amazon.com/zh_tw/apigateway/latest/developerguide/images/custom-auth-call-api-with-allow-token.png)

    回應顯示 API Gateway Lambda 授權方傳回 **200 OK (200 OK)** 回應，並成功授權呼叫存取與方法整合的 HTTP 端點 (http://httpbin.org/get)。

1.  同樣在 Postman 中，將 Lambda 授權字符標頭值變更為 `deny`。選擇 **Send (傳送)**。  
![\[使用 Lambda 授權 Deny (拒絕) 字符呼叫 API\]](http://docs.aws.amazon.com/zh_tw/apigateway/latest/developerguide/images/custom-auth-call-api-with-deny-token.png)

   回應顯示 API Gateway Lambda 授權方傳回 **403 Forbidden (403 禁止)** 回應，而不授權呼叫存取 HTTP 端點。

1.  在 Postman 中，將 Lambda 授權字符標頭值變更為 `unauthorized`，然後選擇 **Send (傳送)**。  
![\[使用 Lambda 授權 Unauthorized (未經授權) 字符呼叫 API\]](http://docs.aws.amazon.com/zh_tw/apigateway/latest/developerguide/images/custom-auth-call-api-with-unauthorized-token.png)

    回應顯示 API Gateway 傳回 **401 Unauthorized (401 未經授權)** 回應，而不授權呼叫存取 HTTP 端點。

1.  現在，將 Lambda 授權字符標頭值變更為 `fail`。選擇 **Send (傳送)**。  
![\[使用 Lambda 授權 Fail (失敗) 字符呼叫 API\]](http://docs.aws.amazon.com/zh_tw/apigateway/latest/developerguide/images/custom-auth-call-api-with-fail-token.png)

    回應顯示 API Gateway 傳回 **500 Internal Server Error (500 內部伺服器錯誤)** 回應，而不授權呼叫存取 HTTP 端點。