

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

# 設定 Amazon MSK 叢集的自訂網域名稱
<a name="custom-domain-names"></a>

您可以設定 MSK 佈建叢集來公告自訂網域名稱，而不是預設 AWS產生的代理程式地址。自訂網域名稱會在 Amazon MSK 組態中定義一次，並自動套用至叢集中的每個代理程式，包括在擴展操作期間新增的新代理程式。這適用於 ZooKeeper 和 KRaft 中繼資料管理模式。

**Topics**
+ [自訂網域名稱的運作方式](#custom-domain-names-how-it-works)
+ [先決條件](#custom-domain-names-prerequisites)
+ [端對端設定自訂網域名稱](custom-domain-setup.md)

## 自訂網域名稱的運作方式
<a name="custom-domain-names-how-it-works"></a>

當您將 `custom.advertised.listeners` 屬性新增至 Amazon MSK 組態時，Amazon MSK 會執行下列動作：

1. 驗證組態 （接聽程式名稱、格式和唯一性）。

1. 解決每個代理程式的`{broker_id}`範本。

1. 透過滾動重新啟動套用組態，一次一個代理程式。

屬性採用下列格式。

```
custom.advertised.listeners=LISTENER_NAME://hostname-pattern:port+{broker_id}
```

例如，在具有三個代理程式的 IAM 叢集上：

```
custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.example.com:9000+{broker_id}
```

這會解析為下列地址：
+ 中介裝置 1： `b-1.example.com:9001`
+ 中介裝置 2： `b-2.example.com:9002`
+ 中介裝置 3： `b-3.example.com:9003`

`{broker_id}` 範本變數是必要的，且必須出現在連接埠中，以便每個代理程式解析為唯一的地址。`+` 運算子會將代理程式 ID 新增至基本連接埠 (9000 \+ 1 = 9001、9000 \+ 2 = 9002、9000 \+ 10 = 9010)。

如果您的叢集有多個面向用戶端的接聽程式，您可以透過以逗號分隔來為每個接聽程式指派不同的網域。

```
custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.iam.example.com:9000+{broker_id},CLIENT_SASL_SCRAM://b-{broker_id}.scram.example.com:19000+{broker_id}
```

每個接聽程式都會對應至一個自訂網域。您無法將多個網域指派給相同的接聽程式。不過，只要每個接聽程式解析為每個代理程式的唯一`host:port`組合，接聽程式就可以共用相同的網域名稱。例如，兩個接聽程式只能依連接埠共用`b-{broker_id}.example.com`和不同。

```
custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.example.com:9000+{broker_id},CLIENT_SASL_SCRAM://b-{broker_id}.example.com:19000+{broker_id}
```

此行為在 ZooKeeper 和 KRaft 中繼資料管理模式中是相同的。

**套用組態之前，請先驗證聯網**  
當您套用 時`custom.advertised.listeners`，您的自訂網域名稱會取代覆寫接聽程式的預設地址。因此，您的聯網層必須就地並經過驗證，才能套用組態。如果聯網和信任層未就位、可解析、可連線且受用戶端信任，則用戶端無法重新連線。即使用戶端稍早已連線，也是如此。如果用戶端無法解析自訂網域，則會失去連線。

## 先決條件
<a name="custom-domain-names-prerequisites"></a>

在叢集上設定自訂網域名稱之前，請確定下列項目為 true：
+ 您的叢集是`ACTIVE`處於 狀態的 MSK 佈建叢集 （標準或快速代理程式）。
+ 每個接聽程式對應至叢集上的身分驗證類型。您只能為用戶端接聽程式設定自訂公告端點：`CLIENT`、`CLIENT_SECURE`、`CLIENT_SECURE_PUBLIC`、`CLIENT_SASL_SCRAM`、`CLIENT_SASL_SCRAM_PUBLIC`、 `CLIENT_IAM`和 `CLIENT_IAM_PUBLIC`。不支援內部接聽程式 (`REPLICATION` 和 `CONTROLLER`)，並在驗證時遭到拒絕。您指定的接聽程式也必須在您的叢集上繫結 （作用中）。例如，如果您的叢集僅使用 IAM 身分驗證，則會`CLIENT_SECURE`拒絕指定，錯誤訊息會列出叢集的有效用戶端接聽程式。
+ 您的聯網層已就位，並在套用組態之前經過驗證。套用後，重新整理中繼資料的所有用戶端都會收到自訂網域地址。如果用戶端無法解析自訂網域，則會失去連線。套用組態之前，請確定已設定好您的聯網層，且可從所有用戶端連線。如需 Network Load Balancer、Route 53 和 AWS Certificate Manager 設定的完整圖表逐步解說，請參閱 AWS 大數據部落格上的[為 Amazon MSK 叢集設定自訂網域名稱](https://aws.amazon.com/blogs/big-data/configure-a-custom-domain-name-for-your-amazon-msk-cluster/)。