API マッピングを使用して、API ステージを REST API のカスタムドメイン名に接続します。
API マッピングを使用して、API ステージをカスタムドメイン名に接続します。これにより、API へのトラフィックがカスタムドメイン名を経由して送信されます。
API マッピングは、API、ステージ、およびオプションでマッピングに使用するパスを指定します。例えば、https://api.example.com/orders
を API の production
ステージにマッピングできます。
HTTP API と REST API ステージを同じカスタムドメイン名にマッピングできます。
API マッピングを作成する前に、API、ステージ、およびカスタムドメイン名が必要です。カスタムドメイン名の作成と設定の詳細については、「API Gateway でリージョン別カスタムドメイン名を設定する」を参照してください。
カスタムドメイン名への受信リクエスト
カスタムドメイン名を API のステージにマッピングすると、API Gateway は受信ベースパスを削除します。これにより、マッピングされたベースパスが API への呼び出しから削除されます。例えば、ベースパスマッピングが https://api.example.com/orders/shop/5
から test
ステージで、次のリクエスト https://api.example.com/orders/shop/5/hats
を使用した場合、API Gateway は orders/shop/5/hats
リソースではなく API の test
ステージの /hats
リソースを呼び出します。
API リクエストのマッピング
以下に、API Gateway が API マッピングを評価する方法について説明します。
API マッピングは、orders
から API の beta
ステージへの API マッピングや、shipping
から API の alpha
ステージへの API マッピングなど、単一レベルのマッピングを使用して作成できます。TLS 1.2 セキュリティポリシーを使用するリージョン別カスタムドメイン名の場合、API Gateway はマルチレベル API マッピングをサポートします。API マッピングは、orders/v1/items
から API の alpha
ステージ、および orders/v2/items
からの API の beta
ステージを作成できます。複数のレベルでマッピングを作成すると、API Gateway は一致するパスが最も長い API マッピングにリクエストを送信します。
空のパス (none)
への API マッピングを作成できます。リクエストに一致するパスがない場合、API Gateway は空のパス (none)
にリクエストを送信します。
この例では、カスタムドメイン名 https://api.example.com
には次の API マッピングがあります。
API マッピング | 選択した API |
---|---|
|
API 1 |
|
API 2 |
|
API 3 |
|
API 4 |
|
API 5 |
次の表は、API Gateway が以前の API マッピングをリクエストの例に適用する方法を示しています。
リクエスト | 選択した API | 説明 |
---|---|---|
|
API 2 |
リクエストは、この API マッピングと完全に一致します。 |
|
API 3 |
リクエストは、この API マッピングと完全に一致します。 |
|
API 4 |
リクエストは、この API マッピングと完全に一致します。 |
|
API 3 |
API Gateway は、最も長い一致パスを持つ API マッピングを選択します。リクエストの最後にある |
|
API 5 |
API Gateway は、最も長い一致パスを持つ API マッピングを選択します。 |
|
API 1 |
API Gateway は、空のマッピングをキャッチオールとして使用します。 |
|
API 2 |
API Gateway は、一致するプレフィックスが最も長い API マッピングを選択します。 単一レベルのマッピングで設定されたカスタムドメイン名の場合 ( |
制限事項
-
API マッピングでは、カスタムドメイン名とマップされた API が同じ AWS アカウントにある必要があります。
-
API マッピングに含めることができるのは、文字、数字、および
$-_.+!*'()/
の文字だけです。 -
API マッピングのパスの最大文字数は 300 文字です。
-
ドメイン名ごとに、複数のレベルで 200 個の API マッピングを設定できます。この制限には、
/prod
などの単一レベルの API マッピングは含まれません。 -
TLS 1.2 セキュリティポリシーでは、HTTP API をリージョン別カスタムドメイン名にだけマッピングできます。
-
WebSocket API を HTTP API または REST API と同じカスタムドメイン名にマッピングすることはできません。
-
API マッピングを作成した後、DNS プロバイダーのリソースレコードを作成または更新して、API エンドポイントにマッピングする必要があります。
-
複数レベルの API マッピングを作成する場合、API Gateway はすべてのヘッダー名を小文字に変換します。
API マッピングを作成する
API マッピングを作成するには、最初にカスタムドメイン名、API、およびステージを作成する必要があります。カスタムドメイン名には、ルーティングモードが ROUTING_RULE_THEN_API_MAPPING
または API_MAPPING_ONLY
に設定されている必要があります。ルーティングモードの設定方法については、「カスタムドメイン名のルーティングモードを設定する」を参照してください。
例えば、すべてのリソースを作成する AWS Serverless Application Model テンプレートについては、GitHub で「Sessions With SAM