API Gateway でリージョン API を設定する
API リクエストが主に EC2 インスタンスまたは API と同じリージョン内のサービスから送られる場合、そのようなシナリオにはリージョン API エンドポイントをお勧めします。このタイプのエンドポイントでは通常、接続のレイテンシーが短くなるためです。
API クライアントが地理的に分散している場合、API Gateway が API をサービス制御された CloudFront ディストリビューションに関連付けないようにするために、リージョン
API エンドポイントを独自の Amazon CloudFront ディストリビューションと一緒に使用することが合理的です。このユースケースの詳細については、「独自の CloudFront ディストリビューションで API Gateway をセットアップする方法を教えてください
リージョン API を作成するには、「エッジ最適化 API の作成」のステップに従いますが、API の endpointConfiguration の唯一のオプションとして REGIONAL
タイプを明示的に設定する必要があります。
以下に示しているのは、API Gateway コンソール、AWS CLI、Javascript 用 AWS SDK for Node.js を使用してリージョン API を作成する方法です。
トピック
API Gateway コンソールを使用したリージョン API の作成
API Gateway コンソールを使用してリージョン API を作成するには
-
API Gateway コンソールにサインインし、[+ Create API (API の作成)] を選択します。
-
[新しい API の作成] で、[新しい API] オプションを選択します。
-
[API 名] に名前 (
Simple PetStore (Console, Regional)
など) を入力します。 -
[エンドポイントタイプ] で、[
Regional
] を選択します。 -
[Create API (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 をテストする
デプロイ後、リージョン 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