在 API Gateway 中變更公有或私有 API 端點類型 - Amazon API 网关

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

在 API Gateway 中變更公有或私有 API 端點類型

變更 API 端點類型需要您更新 API 的組態。您可以使用 API Gateway 主控台、或 API Gateway 的 AWS CLI AWS SDK 來變更現有的 API 類型。無法再次變更其端點類型,直到目前變更完成為止。

支援下列端點類型的變更:

  • 從邊緣最佳化到區域或私有

  • 從區域到邊緣優化或私有

  • 從私人到區域

您不能將私有 API 改為邊緣最佳化 API。

如果您要將公用 API 從邊緣最佳化變更為區域,反之亦然,請注意,邊緣最佳化 API 的行為可能與地區 API 不同。例如,邊緣最佳化 API 會移除 Content-MD5 標頭。任何傳送到後端的 MD5 雜湊值都可以請求字串參數或內文屬性表示。但是,區域 API 會通過此標題傳遞,儘管它可能會將標題名稱重新映射到其他名稱。了解這些差異有助於您決定如何將邊緣優化 API 更新為區域 API,或從區域 API 更新為邊緣優化 API。

使用 API Gateway 主控台變更 API 端點類型

若要為您的 API 變更 API 端點類型,請執行下列任一組步驟:

將端點從區域或邊緣最佳化轉換為公有 (以及反向轉換)
  1. 在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway

  2. 選擇 REST API。

  3. 選擇 API 設定

  4. API 詳細資訊區段中,選擇編輯

  5. 對於 API 端點類型,選取邊緣最佳化區域

  6. 選擇儲存變更

  7. 重新部署您的 API,變更才會生效。

將私有端點轉換為區域端點
  1. 在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway

  2. 選擇 REST API。

  3. 編輯您的 API 資源政策,以移除任何提及的 VPC 或 VPC 端點;如此一來,從您的 VPC 內、外部進行的 API 呼叫將可成功。

  4. 選擇 API 設定

  5. API 詳細資訊區段中,選擇編輯

  6. 對於 API 端點類型,選取區域

  7. 選擇儲存變更

  8. 從您的 API 移除資源政策。

  9. 重新部署您的 API,變更才會生效。

將地區端點轉換為私有端點
  1. 在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway

  2. 選擇 REST API。

  3. 建立可授與 VPC 或 VPC 端點存取權的資源原則。如需詳細資訊,請參閱 步驟 3:為非公開設定資源策略 API

  4. 選擇 API 設定

  5. API 詳細資訊區段中,選擇編輯

  6. 針對 API 端點類型,選取私有

  7. (選擇性) 對於 VPC 端點識別碼,請選取您要與私有 API 建立關聯的 VPC 端點識別碼。

  8. 選擇儲存變更

  9. 重新部署您的 API,變更才會生效。

使用變 AWS CLI 更 API 端點類型

若要使用 AWS CLI 更新 API ID update-rest-api為的邊緣最佳化 API{api-id},請依照下列方式呼叫:

aws apigateway update-rest-api \ --rest-api-id {api-id} \ --patch-operations op=replace,path=/endpointConfiguration/types/EDGE,value=REGIONAL

成功回應會有 200 OK 狀態碼與類似下列的承載:

{ "createdDate": "2017-10-16T04:09:31Z", "description": "Your first API with Amazon API Gateway. This is a sample API that integrates via HTTP with our demo Pet Store endpoints", "endpointConfiguration": { "types": "REGIONAL" }, "id": "0gsnjtjck8", "name": "PetStore imported as edge-optimized" }

反之,將區域 API 更新成邊緣最佳化 API,如下所示:

aws apigateway update-rest-api \ --rest-api-id {api-id} \ --patch-operations op=replace,path=/endpointConfiguration/types/REGIONAL,value=EDGE

put-rest-api於用於更新 API 定義,因此不適用於更新 API 端點類型。