

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

# 了解 Amazon DocumentDB 端點
<a name="endpoints"></a>

您可以使用 Amazon DocumentDB （與 MongoDB 相容） 端點來連線至叢集或執行個體。Amazon DocumentDB 有三種不同類型的端點，每個端點都有自己的用途。

**Topics**
+ [尋找叢集的端點](db-cluster-endpoints-find.md)
+ [尋找執行個體的端點](db-instance-endpoint-find.md)
+ [連線至端點](endpoints-connecting.md)

**叢集端點**  
叢集端點是 Amazon DocumentDB 叢集的端點，可連線至叢集的目前主要執行個體。每個 Amazon DocumentDB 叢集都有一個叢集端點和一個主要執行個體。如果發生容錯移轉，叢集端點會重新對應至新的主要執行個體。

**讀取器端點**  
讀取器端點是 Amazon DocumentDB 叢集的端點，可連線至該叢集的其中一個可用複本。每個 Amazon DocumentDB 叢集都有一個讀取器端點。如果有多個複本，讀取器端點會將每個連線請求導向其中一個 Amazon DocumentDB 複本。

**執行個體端點**  
執行個體端點會連接至特定的執行個體。叢集中的每個執行個體，不論是主要或複本執行個體，都有自己的唯一執行個體端點。最好不要在您的應用程式中使用執行個體端點。這是因為它們可在容錯移轉時變更角色，因此需要在您的應用程式中進行程式碼變更。

# 尋找叢集的端點
<a name="db-cluster-endpoints-find"></a>

您可以使用 Amazon DocumentDB 主控台或 尋找叢集的叢集端點和讀取器端點 AWS CLI。

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

**若要使用主控台尋找叢集的端點：**

1. 登入 AWS 管理主控台，並在 [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb)：// 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。

1. 從叢集清單中選擇您有興趣之叢集的名稱。

1. 在叢集詳細資訊頁面上，選取**組態**索引標籤。在**組態和狀態**區段中，您會找到**叢集端點**和**讀取器端點**。  
![\[顯示叢集和讀取器端點的組態和狀態區段。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/db-cluster-endpoints.png)

1. 若要連線至此叢集，請選取**連線與安全**索引標籤。找到 `mongo` Shell 的連線字串，以及可用於應用程式程式碼的連線字串，以連接至您的叢集。  
![\[連線區段顯示使用 mongo shell 連線到執行個體的字串，以及使用 應用程式連線到叢集的字串。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/cluster-connection-strings.png)

------
#### [ Using the AWS CLI ]

若要使用 尋找叢集的叢集和讀取器端點 AWS CLI，請使用這些參數執行 `describe-db-clusters`命令。

**參數**
+ **--db-cluster-identifier**- 選用。指定要傳回其端點的叢集。如果省略，則最多會傳回您的 100 個叢集的端點。
+ **--query**- 選用。指定顯示的欄位。有助於減少您尋找端點時需要檢視的資料量。如果省略，將會傳回叢集的所有資訊。
+ **--region**- 選用。使用 `--region` 參數來指定您要套用命令的區域。若省略，則使用您的預設區域。

**Example**  
以下範例傳回 `sample-cluster` 的 `DBClusterIdentifier`、端點 (叢集端點)，以及 `ReaderEndpoint`。  
若為 Linux、macOS 或 Unix：  

```
aws docdb describe-db-clusters \
   --region us-east-1 \
   --db-cluster-identifier sample-cluster \
   --query 'DBClusters[*].[DBClusterIdentifier,Port,Endpoint,ReaderEndpoint]'
```
針對 Windows：  

```
aws docdb describe-db-clusters ^
   --region us-east-1 ^
   --db-cluster-identifier sample-cluster ^
   --query 'DBClusters[*].[DBClusterIdentifier,Port,Endpoint,ReaderEndpoint]'
```
此操作的輸出將會如下所示 (JSON 格式)。  

```
[
  [
     "sample-cluster",
     27017,
     "sample-cluster.cluster-corlsfccjozr.us-east-1.docdb.amazonaws.com",
     "sample-cluster.cluster-ro-corlsfccjozr.us-east-1.docdb.amazonaws.com"
  ]
]
```

現在，有了叢集端點，您可以使用 `mongo` 或 `mongodb` 連接至該叢集。如需詳細資訊，請參閱[連線至端點](endpoints-connecting.md)。

------

# 尋找執行個體的端點
<a name="db-instance-endpoint-find"></a>

您可以使用 Amazon DocumentDB 主控台或 尋找執行個體的端點 AWS CLI。

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

**使用主控台尋找執行個體的端點**

1. 登入 AWS 管理主控台，並在 [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb)：// 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在叢集導覽方塊中，您會看到 欄**叢集識別符**。您的執行個體會列在叢集下，類似於下方的螢幕擷取畫面。  
![\[叢集資料表顯示叢集識別符欄下的叢集清單，其中執行個體巢狀在叢集內。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/choose-clusters.png)

1. 勾選您感興趣的執行個體左側的方塊。

1. 向下捲動到 **Details (詳細資訊)** 區段，然後找到執行個體端點。  
![\[主控台螢幕擷取畫面顯示詳細資訊頁面，並反白顯示執行個體端點。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/db-instance-endpoint.png)

1. 若要連接至這個執行個體，捲動到 **Connect (連接)** 區段。找出 `mongo` 殼層的連線字串及可用在應用程式碼的連線字串，以連接至您的執行個體。  
![\[主控台螢幕擷取畫面，顯示已反白顯示 mongo shell 和應用程式連線字串的連線區段。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/instance-connection-strings.png)

------
#### [ Using the AWS CLI ]

若要使用 尋找執行個體端點 AWS CLI，請使用這些引數執行下列命令。

**引數**
+ **--db-instance-identifier**- 選用。指定要傳回其端點的執行個體。如果省略，則最多會傳回您的 100 個執行個體的端點。
+ **--query**- 選用。指定顯示的欄位。有助於減少您尋找端點時需要檢視的資料量。如果省略，將會傳回執行個體的所有資訊。`Endpoint` 欄位有三個成員，若如以下範例將其列入查詢中，則會傳回全部三個成員。如果您只對某些 `Endpoint` 成員有興趣，請將查詢中的 `Endpoint` 取代為您有興趣的成員，如第二個範例所示。
+ **--region**- 選用。使用 `--region` 參數來指定您要套用命令的區域。若省略，則使用您的預設區域。

**Example**  
若為 Linux、macOS 或 Unix：  

```
aws docdb describe-db-instances \
    --region us-east-1 \
    --db-instance-identifier sample-cluster-instance \
    --query 'DBInstances[*].[DBInstanceIdentifier,Endpoint]'
```
針對 Windows：  

```
aws docdb describe-db-instances ^
    --region us-east-1 ^
    --db-instance-identifier sample-cluster-instance ^
    --query 'DBInstances[*].[DBInstanceIdentifier,Endpoint]'
```
此操作的輸出將會如下所示 (JSON 格式)。  

```
[
    [
        "sample-cluster-instance",
        {
            "Port": 27017,
            "Address": "sample-cluster-instance.corcjozrlsfc.us-east-1.docdb.amazonaws.com",
            "HostedZoneId": "Z2R2ITUGPM61AM"
        }
    ]
]
```
您可以藉由指定 `Endpoint.Port` 和 `Endpoint.Address` 來修改您的查詢，降低輸出以消除端點的 `HostedZoneId`。  
若為 Linux、macOS 或 Unix：  

```
aws docdb describe-db-instances \
    --region us-east-1 \
    --db-instance-identifier sample-cluster-instance \
    --query 'DBInstances[*].[DBInstanceIdentifier,Endpoint.Port,Endpoint.Address]'
```
針對 Windows：  

```
aws docdb describe-db-instances ^
    --region us-east-1 ^
    --db-instance-identifier sample-cluster-instance ^
    --query 'DBInstances[*].[DBInstanceIdentifier,Endpoint.Port,Endpoint.Address]'
```
此操作的輸出將會如下所示 (JSON 格式)。  

```
[
    [
        "sample-cluster-instance",
        27017,
        "sample-cluster-instance.corcjozrlsfc.us-east-1.docdb.amazonaws.com"
    ]
]
```

現在，有了執行個體端點，您可以使用 `mongo` 或 `mongodb` 連接至該執行個體。如需詳細資訊，請參閱[連線至端點](endpoints-connecting.md)。

------

# 連線至端點
<a name="endpoints-connecting"></a>

有了端點之後，您可以使用 `mongo` 殼層或連線字串連接至該叢集或執行個體。

## 使用 mongo shell 連線
<a name="endpoints-connecting-mongo"></a>

使用以下結構來建構您需要的字串，以使用 `mongo` 殼層連接至叢集或執行個體：

```
mongo \
    --ssl \
    --host Endpoint:Port \
    --sslCAFile global-bundle.pem \
    --username UserName \
    --password Password
```

**`mongo` 殼層範例**  
連接至叢集：

```
mongo \
    --ssl \
    --host sample-cluster.corcjozrlsfc.us-east-1.docdb.amazonaws.com:27017 \
    --sslCAFile global-bundle.pem \
    --username UserName \
    --password Password
```

連接至執行個體：

```
mongo \
    --ssl \
    --host sample-cluster-instance.corcjozrlsfc.us-east-1.docdb.amazonaws.com:27017 \
    --sslCAFile global-bundle.pem \
    --username UserName \
    --password Password
```

## 使用連線字串進行連線
<a name="endpoints-connecting-mongodb"></a>

使用以下結構來建構您需要的連線字串，以連接至叢集或執行個體。

```
mongodb://UserName:Password@endpoint:port?replicaSet=rs0&ssl_ca_certs=global-bundle.pem 
```

**連線字串範例**  
連接至叢集：

```
mongodb://UserName:Password@sample-cluster.cluster-corlsfccjozr.us-east-1.docdb.amazonaws.com:27017?replicaSet=rs0&ssl_ca_certs=global-bundle.pem 
```

連接至執行個體：

```
mongodb://UserName:Password@sample-cluster-instance.cluster-corlsfccjozr.us-east-1.docdb.amazonaws.com:27017?replicaSet=rs0&ssl_ca_certs=global-bundle.pem 
```

 