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

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

API の API エンドポイントタイプを変更するには、次の一連の手順のいずれかを実行します。

エンドポイントをリージョン別またはエッジ最適化 (またはその逆) からパブリックに変換するには
  1. https://console.aws.amazon.com/apigateway で API Gateway コンソールにサインインします。

  2. REST API を選択します。

  3. [API 設定] を選択します。

  4. [API の詳細] セクションで [編集] を選択します。

  5. API エンドポイントタイプには、[エッジ最適化] または [リージョン別] を選択します。

  6. [Save changes] (変更の保存) をクリックします。

  7. API を再デプロイします。これにより変更が有効になります。

プライベートエンドポイントをリージョンエンドポイントに変換するには
  1. https://console.aws.amazon.com/apigateway で API Gateway コンソールにサインインします。

  2. REST API を選択します。

  3. VPC の外部からの API コールも VPC 内部と同様に成功するように、API のリソースポリシーを編集して、VPC または VPC エンドポイントの指定を削除します。

  4. [API 設定] を選択します。

  5. [API の詳細] セクションで [編集] を選択します。

  6. [API エンドポイントタイプ] で、[リージョン別] を選択します。

  7. [変更を保存] を選択して更新を開始します。

  8. リソースポリシーを API から削除します。

  9. API を再デプロイします。これにより変更が有効になります。

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

AWS CLI を使用して {api-id} という API の ID を持つエッジ最適化の API を更新するには、以下のように update-rest-api の を呼び出します。

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