

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

# 為您的 VPC Lattice 服務設定自訂網域名稱
<a name="service-custom-domain-name"></a>

當您建立新的服務時，VPC Lattice 會使用下列語法為服務產生唯一的完整網域名稱 (FQDN)。

```
service_name-service_id.partition_id.vpc-lattice-svcs.region.on.aws
```

不過，VPC Lattice 提供的網域名稱不容易讓使用者記住。自訂網域名稱是更簡單且更直覺URLs，您可以提供給使用者。如果您偏好為您的服務使用自訂網域名稱，例如`www.parking.example.com`，而不是 VPC Lattice 產生的 DNS 名稱，您可以在建立 VPC Lattice 服務時對其進行設定。當用戶端使用您的自訂網域名稱提出請求時，DNS 伺服器會將其解析為 VPC Lattice 產生的網域名稱。

**先決條件**
+ 您必須擁有服務的註冊網域名稱。如果您還沒有已註冊的網域名稱，您可以透過 Amazon Route 53 或任何其他商業註冊商註冊。
+ 若要接收 HTTPS 請求，您必須在 中提供自己的憑證 AWS Certificate Manager。VPC Lattice 不支援預設憑證做為備用憑證。因此，如果您未提供與自訂網域名稱對應的 SSL/TLS 憑證，則與自訂網域名稱的所有 HTTPS 連線都會失敗。如需詳細資訊，請參閱[為 VPC Lattice 自備憑證 (BYOC)](service-byoc.md)。

**限制和考量事項**
+ 您無法為服務擁有多個自訂網域名稱。
+ 建立服務之後，您無法修改自訂網域名稱。
+ 自訂網域名稱對於服務網路必須是唯一的。這表示無法使用相同服務網路中已存在的自訂網域名稱 （適用於其他服務） 來建立服務。

下列程序說明如何為您的服務設定自訂網域名稱。

------
#### [ AWS 管理主控台 ]

**為您的服務設定自訂網域名稱**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中的 **VPC Lattice** 下，選擇**服務**。

1. 選擇**建立服務**。您已導覽至**步驟 1：建立服務**。

1. 在**自訂網域組態**區段中，選擇**指定自訂網域組態**。

1. 輸入您的自訂網域名稱。

1. 若要提供 HTTPS 請求，請在自訂 SSL/TLS 憑證中選取**符合您自訂網域名稱的 SSL/TLS 憑證**。如果您還沒有憑證，或不想立即新增憑證，您可以在建立 HTTPS 接聽程式時新增憑證。不過，如果沒有憑證，您的自訂網域名稱將無法提供 HTTPS 請求。如需詳細資訊，請參閱[新增 HTTPS 接聽程式](https-listeners.md#add-https-listener)。

1. 當您完成新增所有其他資訊以建立服務時，請選擇**建立**。

------
#### [ AWS CLI ]

**為您的服務設定自訂網域名稱**  
使用 [create-service](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-service.html) 命令。

```
aws vpc-lattice create-service --name service_name --custom-domain-name your_custom_domain_name --type https --certificate-arn arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012
```

在上述命令中，針對 `--name`輸入服務的名稱。針對 `--custom-domain-name`，輸入服務的網域名稱，例如 `parking.example.com`。在 ACM `--certificate-arn` 中輸入憑證的 ARN。憑證 ARN 可在您的 帳戶中使用 AWS Certificate Manager。

------

## 將自訂網域名稱與您的服務建立關聯
<a name="dns-associate-custom"></a>

首先，如果您尚未這麼做，請註冊您的自訂網域名稱。網際網路名稱和數字指派公司 (ICANN) 負責管理網際網路上的網域名稱。您可以使用*網域名稱註冊商*註冊網域名稱，這是一家 ICANN 認可的組織，專門管理網域名稱的註冊。您的網站註冊商網站將為註冊您的網域名稱提供詳細指示和定價資訊。如需詳細資訊，請參閱下列資源：
+ 若要使用 Amazon Route 53 註冊網域名稱，請參閱 *Amazon Route 53 開發人員指南*中的[使用 Route 53 註冊網域名稱](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar.html)。
+ 如需這類註冊機構的清單，請參閱[認可的註冊機構目錄](http://www.internic.net/regist.html)。

接著，使用您的 DNS 服務，例如網域註冊商，建立記錄以將查詢路由到您的服務。如需詳細資訊，請參閱您的 DNS 服務文件。或者，您可以使用 Route 53 做為您的 DNS 服務。

如果您使用的是 Route 53，您可以使用別名記錄或 CNAME 記錄，將查詢路由到您的服務。我們建議您使用別名記錄，因為您可以在 DNS 命名空間的頂端節點建立別名記錄，也稱為區域頂點。

如果您使用的是 Route 53，您必須先建立*託管區域*，其中包含如何在網際網路上為網域路由流量的相關資訊。建立私有或公有託管區域之後，請建立記錄，讓您的自訂網域名稱 例如 `parking.example.com`對應至 VPC Lattice 自動產生的網域名稱，例如 `my-service-02031c045478f6ddf1.7d67968.vpc-lattice-svcs.us-west-2.on.aws`。如果沒有此映射，您的自訂網域名稱將無法在 VPC Lattice 中運作。

下列程序說明如何使用 Route 53 建立私有或公有託管區域

------
#### [ AWS 管理主控台 ]

若要建立別名記錄，以使用 Route 53 將查詢路由到服務，請參閱將[流量路由到 Amazon VPC Lattice 服務網域端點](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-vpc-lattice-service.html)。

為您的服務使用 VPC Lattice 產生的網域名稱，例如 `my-service-02031c045478f6ddf1.7d67968.vpc-lattice-svcs.us-west-2.on.aws` **值**。您可以在服務頁面上的 VPC Lattice 主控台中找到此自動產生的網域名稱。

------
#### [ AWS CLI ]

**在託管區域中建立別名記錄**

1. 取得您服務的 VPC Lattice 產生的網域名稱 （例如 `my-service-02031c045478f6ddf1.7d67968.vpc-lattice-svcs.us-west-2.on.aws`)。

1. 若要設定別名，請使用下列命令。

   ```
   aws route53 change-resource-record-sets --hosted-zone-id your-hosted-zone-ID --change-batch file://~/Desktop/change-set.json
   ```

   對於 `change-set.json` 檔案，使用下列 JSON 範例中的內容建立 JSON 檔案，並將其儲存在本機電腦上。將上述命令中的 *file：//\$1/Desktop/change-set.json* 取代為本機機器中儲存的 JSON 檔案路徑。請注意，下列 JSON 中的「類型」可以是 A 或 AAAA 記錄類型。

   ```
   {
       "Comment": "my-custom-domain-name.com alias",
       "Changes": [
           {
               "Action": "CREATE",
               "ResourceRecordSet": {
                   "Name": "my-custom-domain-name.com",
                   "Type": "alias-record-type",
                   "AliasTarget": {
                       "HostedZoneId": "your-hosted-zone-ID",
                       "DNSName": "lattice-generated-domain-name",
                       "EvaluateTargetHealth": true
                   }
               }   
           }
       ] 
   }
   ```

------