View a markdown version of this page

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

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

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

變更 API 端點類型需要您更新 API 的組態。您可以使用 API Gateway 主控台、 AWS CLI或適用於 API Gateway 的 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,變更才會生效。

    由於您要將端點類型從私有移轉至區域,因此 API Gateway 會將 IP 位址類型變更為 IPv4。如需詳細資訊,請參閱API Gateway 中 REST API 的 IP 位址類型。

將區域端點轉換為私有端點
  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 端點 ID,選取您要與私有 API 建立關聯的 VPC 端點 ID。

  8. 選擇儲存變更。

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

    由於您要將端點類型從區域移轉至私有,因此 API Gateway 會將 IP 位址類型變更為雙堆疊。如需詳細資訊,請參閱API Gateway 中 REST API 的 IP 位址類型。

使用 AWS CLI 變更 API 端點類型

以下 update-rest-api 命令會將邊緣最佳化 API 更新為區域 API:

aws apigateway update-rest-api \ --rest-api-id a1b2c3 \ --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": "a1b2c3", "name": "PetStore imported as edge-optimized" }

以下 update-rest-api 命令會將區域 API 更新為邊緣最佳化 API:

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

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