Amazon API Gateway
開発者ガイド

API Gateway でリージョン API を設定する

API リクエストが主に EC2 インスタンスまたは API と同じリージョン内のサービスから送られる場合、そのようなシナリオにはリージョン API エンドポイントをお勧めします。このタイプのエンドポイントでは通常、接続のレイテンシーが短くなるためです。さらに、お客様が独自の Amazon CloudFront ディストリビューションを管理する場合は、リージョン API エンドポイントを使用して、サービスによって管理される API Gateway ディストリビューションに CloudFront が API を関連付けないようにすることが可能です。

リージョン API を作成するには、「エッジ最適化 API の作成」の手順に従いますが、API の endpointConfiguration の唯一のオプションとして REGIONAL タイプを明示的に設定する必要があります。

以下に示しているのは、API Gateway コンソール、AWS CLI、Javascript 用 AWS SDK for Node.js、API Gateway REST API を使用してリージョン API を作成する方法です。

API Gateway コンソールを使用してリージョン API を作成する

API Gateway コンソールを使用してリージョン API を作成するには

  1. API Gateway コンソールにサインインし、[+ API の作成] を選択します。

  2. [新しい API の作成] で、[新しい API] オプションを選択します。

  3. [API 名] に名前 (Simple PetStore (Console, Regional) など) を入力します。

  4. [エンドポイントタイプ] で、[Regional] を選択します。

  5. [Create API] を選択します。

ここから、「エッジ最適化 API の作成」で説明しているように、API のメソッドとその関連する統合を設定できます。

AWS CLI を使用してリージョン API を作成する

AWS CLI を使用してリージョン API を作成するには、create-rest-api コマンドを呼び出します。

aws apigateway create-rest-api \ --name 'Simple PetStore (AWS CLI, Regional)' \ --description 'Simple regional PetStore API' \ --region us-west-2 \ --endpoint-configuration '{ "types": ["REGIONAL"] }'

レスポンスが成功すると、次のようなペイロードを返します。

{ "createdDate": "2017-10-13T18:41:39Z", "description": "Simple regional PetStore API", "endpointConfiguration": { "types": "REGIONAL" }, "id": "0qzs2sy7bh", "name": "Simple PetStore (AWS CLI, Regional)" }

ここから、「AWS CLI コマンドを使用してエッジ最適化された API をセットアップする」で説明している同様の手順に従って、この API のメソッドと統合を設定できます。

JavaScript 用 AWS SDK を使用してリージョン API を作成する

JavaScript 用 AWS SDK を使用してリージョン API を作成するには

apig.createRestApi({ name: "Simple PetStore (node.js SDK, regional)", endpointConfiguration: { types: ['REGIONAL'] }, description: "Demo regional API created using the AWS SDK for node.js", version: "0.00.001" }, function(err, data){ if (!err) { console.log('Create API succeeded:\n', data); restApiId = data.id; } else { console.log('Create API failed:\n', err); } });

レスポンスが成功すると、次のようなペイロードを返します。

{ "createdDate": "2017-10-13T18:41:39Z", "description": "Demo regional API created using the AWS SDK for node.js", "endpointConfiguration": { "types": "REGIONAL" }, "id": "0qzs2sy7bh", "name": "Simple PetStore (node.js SDK, regional)" }

ここまでの手順を完了したら、「Node.js の AWS SDK を使用してエッジ最適化された API をセットアップする」の手順に従って、この API のメソッドと統合を設定できます。

API Gateway REST API を使用してリージョン API を作成する

API Gateway REST API を使用してリージョン API を作成するには、以下のように POST リクエストを送ります。

POST /restapis HTTP/1.1 Host: apigateway.us-west-2.amazonaws.com Content-Type: application/x-amz-json-1.0 X-Amz-Date: 20170511T214723Z Authorization: AWS4-HMAC-SHA256 Credential={ACCESS-KEY-ID}/20170511/us-west-2/apigateway/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=d0abd98a2a06199531c2916b162ede9f63a247032cdc8e4d077216446d13103c { "name": "Simple PetStore (REST API, Regional)", "description": "A sample API Gateway API created using the REST API.", "endpointConfiguration" : { "types" : ["REGIONAL"] } }

成功のレスポンスには、201 Created ステータスコードと以下のような本文が含まれます。

{ "createdDate": "2017-10-13T18:41:39Z", "description": "A sample API Gateway API created using the REST API.", "endpointConfiguration": { "types": "REGIONAL" }, "id": "0qzs2sy7bh", "name": "Simple PetStore (REST API, Regional)" }

ここまでの手順を完了したら、「API Gateway REST API を使用してエッジ最適化 API をセットアップする」の手順に従って、この API のメソッドと統合を設定できます。

リージョン API をテストする

デプロイ後、リージョン API のデフォルトの URL ホスト名は以下の形式になっています。

{restapi-id}.execute-api.{region}.amazonaws.com

API を呼び出すためのベース URL は以下のようになっています。

https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}

この例で GET /pets メソッドと GET /pets/{petId} メソッドを設定したとすると、ブラウザで以下の URL を入力して API をテストできます。

https://0qzs2sy7bh.execute-api.us-west-2.amazonaws.com/test/pets

および

https://0qzs2sy7bh.execute-api.us-west-2.amazonaws.com/test/pets/1

または、cURL コマンドを使用することもできます。

curl -X GET https://0qzs2sy7bh.execute-api.us-west-2.amazonaws.com/test/pets

および

curl -X GET https://0qzs2sy7bh.execute-api.us-west-2.amazonaws.com/test/pets/2