メニュー
Amazon API Gateway
開発者ガイド

API Gateway で API エンドポイントタイプを更新する

API エンドポイントタイプを更新するには、API の設定を更新する必要があります。API Gateway コンソール、AWS CLI、API Gateway 用 AWS SDK、または API Gateway REST API を使用して、既存の API タイプをエッジ最適化からリージョン、またはその逆に更新できます。更新オペレーションが完了するまでに最大 60 秒かかることがあります。

エッジ最適化 API とリージョン API とでは動作が異なることがあります。たとえば、エッジ最適化 API は Content-MD5 ヘッダーを削除します。バックエンドに渡される MD5 ハッシュ値はすべて、リクエスト文字列パラメータまたは body プロパティで表現できます。しかし、リージョン API は、場合によってはヘッダー名を別の名前に再マップするものの、このヘッダーを渡します。 この違いを理解することは、エッジ最適化 API をリージョン API に更新する方法、またはリージョン API からエッジ最適化 API に更新する方法を決めるのに役立ちます。

API Gateway コンソールを使用して API エンドポイントを更新する

  1. コンソールにサインインし、プライマリナビゲーションペインで [APIs] を選択します。

  2. [+ Create API] の下にある API の設定 (歯車アイコン) を選択します。

     コンソールで API エンドポイントを更新する
  3. [Endpoint Configuration] で、[Endpoint Type] オプションを [Edge Optimized] から [Regional] に、または [Regional] から [Edge Optimized] に変更します。

  4. [Save] を選択して、更新を開始します。

AWS CLI を使用して API エンドポイントを更新する

AWS CLI コマンドを使用して {api-id} のエッジ最適化 API を更新するには、以下のように restapi:update を呼び出します。

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 エンドポイントタイプの更新には適用されません。

API Gateway REST API を使用して API エンドポイントを更新する

API Gateway REST API を使用して {api-id} のエッジ最適化 API を更新するには、以下のように restapi:update を呼び出します。

PATCH /restapis/{api-id} { "patchOperations" : [{ "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 に更新するには、以下のように restapi:update を呼び出します。

PATCH /restapis/{api-id} { "patchOperations" : [{ "op" : "replace", "path" : "/endpointConfiguration/types/REGIONAL", "value" : "EDGE" }] }

restapi:put は API 定義の更新用なので、API エンドポイントタイプの更新には適用されません。