本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 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 端點類型,請執行下列任一組步驟:
將端點從區域或邊緣最佳化轉換為公有 (以及反向轉換)
-
在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway
。 選擇 REST API。
選擇 API 設定。
在 API 詳細資訊區段中,選擇編輯。
-
對於 API 端點類型,選取邊緣最佳化或區域。
-
選擇儲存變更。
-
重新部署您的 API,變更才會生效。
將私有端點轉換為區域端點
-
在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway
。 選擇 REST API。
-
編輯您的 API 資源政策,以移除任何提及的 VPC 或 VPC 端點;如此一來,從您的 VPC 內、外部進行的 API 呼叫將可成功。
選擇 API 設定。
在 API 詳細資訊區段中,選擇編輯。
-
對於 API 端點類型,選取區域。
-
選擇儲存變更。
-
從您的 API 移除資源政策。
-
重新部署您的 API,變更才會生效。
將地區端點轉換為私有端點
-
在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway
。 選擇 REST API。
-
建立可授與 VPC 或 VPC 端點存取權的資源原則。如需詳細資訊,請參閱 步驟 3:為非公開設定資源策略 API。
選擇 API 設定。
在 API 詳細資訊區段中,選擇編輯。
-
針對 API 端點類型,選取私有。
-
(選擇性) 對於 VPC 端點識別碼,請選取您要與私有 API 建立關聯的 VPC 端點識別碼。
-
選擇儲存變更。
-
重新部署您的 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 端點類型。