將API階段映射至 的自訂網域名稱 REST APIs - Amazon API Gateway

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將API階段映射至 的自訂網域名稱 REST APIs

您可以使用API映射將API階段連接至自訂網域名稱。建立網域名稱並設定DNS記錄後,您可以使用API映射透過自訂網域名稱將流量傳送至APIs您的 。

API 映射會指定 API、 階段,以及選擇性用於映射的路徑。例如,您可以將 的production階段映射API到 https://api.example.com/orders

您可以將 HTTP和 REST API 階段映射至相同的自訂網域名稱。

建立API映射之前,您必須具有 API、階段和自訂網域名稱。如需進一步了解如何建立自訂網域名稱,請參閱在 API Gateway 中設定區域自訂網域名稱

路由API請求

您可以設定具有多個層級的API映射,例如 orders/v1/itemsorders/v2/items

注意

若要設定具有多個層級的API映射,您必須使用具有 1.2 TLS 安全政策的區域自訂網域名稱。

對於具有多個層級的API映射,APIGateway 會將請求路由至具有最長相符路徑的API映射。API Gateway 只會考慮為API映射設定的路徑,而不是API路由,以選取要叫用API的路徑。如果沒有符合請求的路徑,APIGateway 會將請求傳送至API您已映射至空白路徑 的 (none)

對於使用具有多個層級API映射的自訂網域名稱,APIGateway 會將請求路由至具有最長相符字首的API映射。

例如,考慮https://api.example.com具有下列API映射的自訂網域名稱:

  1. (none) 已映射至 API 1。

  2. orders 已映射至 API 2。

  3. orders/v1/items 已映射至 API 3。

  4. orders/v2/items 映射至 API 4。

  5. orders/v2/items/categories 已映射至 API 5。

請求 已選取 API 說明

https://api.example.com/orders

API 2

請求完全符合此API映射。

https://api.example.com/orders/v1/items

API 3

請求完全符合此API映射。

https://api.example.com/orders/v2/items

API 4

請求完全符合此API映射。

https://api.example.com/orders/v1/items/123

API 3

API Gateway 選擇具有最長相符路徑的映射。請求結束時的 123 不會影響選擇。

https://api.example.com/orders/v2/items/categories/5

API 5

API Gateway 選擇具有最長相符路徑的映射。

https://api.example.com/customers

API 1

API Gateway 使用空映射作為全部擷取。

https://api.example.com/ordersandmore

API 2

API Gateway 選擇具有最長相符字首的映射。

對於使用單一層級映射設定的自訂網域名稱,例如 https://api.example.com/ordershttps://api.example.com/,APIGateway 會選擇 API 1,因為沒有與 相符的路徑ordersandmore

限制

  • 在API映射中,自訂網域名稱和映射APIs必須位於相同的 AWS 帳戶中。

  • API 映射只能包含字母、數字和下列字元:$-_.+!*'()/

  • API 映射中路徑的長度上限為 300 個字元。

  • 您可以針對每個網域名稱擁有 200 個具有多個層級的API映射。

  • 您只能對應HTTPAPIs至具有 1.2 TLS 安全政策的區域自訂網域名稱。

  • 您無法對應 WebSocket APIs至與 HTTPAPI或 REST 相同的自訂網域名稱API。

建立API映射

若要建立API映射,您必須先建立自訂網域名稱、 API和 階段。如需建立自訂網域名稱的資訊,請參閱在 API Gateway 中設定區域自訂網域名稱

如需建立所有資源的範例 AWS Serverless Application Model 範本,請參閱 上的使用工作階段SAM GitHub。

AWS Management Console
建立API映射
  1. https://console.aws.amazon.com/apigateway 登入API閘道主控台。

  2. 選擇 Custom domain names (自訂網域名稱)。

  3. 選取您已建立的自訂網域名稱。

  4. 選擇API映射

  5. 選擇 設定API映射

  6. 選擇 Add new mapping (新增對應)

  7. 輸入 API階段 和選用的路徑

  8. 選擇 Save (儲存)。

AWS CLI

下列 AWS CLI 命令會建立API映射。在此範例中,APIGateway 會將請求api.example.com/v1/orders傳送至指定的 API和 階段。

注意

若要建立具有多個層級的API映射,您必須使用 apigatewayv2

aws apigatewayv2 create-api-mapping \ --domain-name api.example.com \ --api-mapping-key v1/orders \ --api-id a1b2c3d4 \ --stage test
AWS CloudFormation

下列 AWS CloudFormation 範例會建立API映射。

注意

若要建立具有多個層級的API映射,您必須使用 AWS::ApiGatewayV2

MyApiMapping: Type: 'AWS::ApiGatewayV2::ApiMapping' Properties: DomainName: api.example.com ApiMappingKey: 'orders/v2/items' ApiId: !Ref MyApi Stage: !Ref MyStage