

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

# 主機名路由模式
<a name="api-routing-hostname"></a>

透過主機名稱路由是一種透過為每個 API 提供自己的主機名來隔離 API 服務的機制；例如，`service-a.api.example.com` 或 `service-a.example.com`。

## 一般使用案例
<a name="hostname-use-case"></a>

使用主機名稱進行路由可減少版本中的摩擦量，因為服務團隊之間不會共用任何內容。團隊負責管理從 DNS 項目到生產中的服務操作的所有內容。

![\[向上游消費者公開 HTTP APIs主機名稱路由模式。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/cloud-design-patterns/images/routing-1.png)


## 優點
<a name="hostname-pros"></a>

主機名稱路由是目前為止最直接且可擴展的 HTTP API 路由方法。您可以使用任何相關的 AWS 服務來建置遵循此方法的架構 – 您可以使用 [Amazon API Gateway](https://aws.amazon.com/api-gateway/)、[AWS AppSync](https://aws.amazon.com/appsync/)、[Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/) 和 [Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/ec2/) 或任何其他 HTTP 相容服務建立架構。

團隊可以使用主機名稱路由來完全擁有自己的子網域。它也可讓您更輕鬆地隔離、測試和協調特定 AWS 區域 或 版本的部署；例如 `region.service-a.api.example.com`或 `dev.region.service-a.api.example.com`。

## 缺點
<a name="hostname-cons"></a>

當您使用主機名稱路由時，您的消費者必須記住不同的主機名稱，才能與您公開的每個 API 進行互動。您可以透過提供客戶端 SDK 來緩解此問題。不過，使用者端 SDK 會面臨各自的挑戰。例如，他們必須支援滾動更新，多種語言，版本控制，溝通由安全問題或錯誤修復，文檔等引起的突破性更改。

當您使用主機名稱路由時，也需要在每次建立新服務時註冊子網域或網域。