在 Azure Cosmos DB for PostgreSQL 中使用私人存取來連線至叢集
適用於: Azure Cosmos DB for PostgreSQL (由 PostgreSQL 的 Citus 資料庫延伸模組提供)
此教學課程會建立虛擬機器 (VM) 與 Azure Cosmos DB for PostgreSQL 叢集,並在兩者之間建立私人存取。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 如果您沒有帳戶,可免費建立帳戶。
- 若要在本機執行程式碼,請使用已安裝的 Azure CLI。 您也可以在 Azure Cloud Shell 中執行程式碼。
建立虛擬網路
首先,設定資源群組與虛擬網路來保存您的叢集與 VM。
az group create \
--name link-demo \
--location eastus
az network vnet create \
--resource-group link-demo \
--name link-demo-net \
--address-prefix 10.0.0.0/16
az network nsg create \
--resource-group link-demo \
--name link-demo-nsg
az network vnet subnet create \
--resource-group link-demo \
--vnet-name link-demo-net \
--name link-demo-subnet \
--address-prefixes 10.0.1.0/24 \
--network-security-group link-demo-nsg
建立虛擬機器
為了示範,會建立執行 Debian Linux 與 psql
PostgreSQL 用戶端的 VM。
# provision the VM
az vm create \
--resource-group link-demo \
--name link-demo-vm \
--vnet-name link-demo-net \
--subnet link-demo-subnet \
--nsg link-demo-nsg \
--public-ip-address link-demo-net-ip \
--image Debian11 \
--admin-username azureuser \
--generate-ssh-keys
# install psql database client
az vm run-command invoke \
--resource-group link-demo \
--name link-demo-vm \
--command-id RunShellScript \
--scripts \
"sudo touch /home/azureuser/.hushlogin" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get update" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y postgresql-client"
使用私人連結來建立叢集
在 Azure 入口網站中建立 Azure Cosmos DB for PostgreSQL 叢集。
在入口網站中,選取左上角的 [建立資源]。
在 [建立資源] 頁面上,選取 [資料庫],然後選取 [Azure Cosmos DB]。
在 [選取 API 選項] 頁面上的 [PostgreSQL] 磚上,選取 [建立]。
在 [Create an Azure Cosmos DB for PostgreSQL cluster] \(建立 Azure Cosmos DB for PostgreSQL 叢集\) 頁面上,填寫下列資訊:
資源群組:選取 [新增],然後輸入 link-demo。
叢集名稱:輸入 link-demo-sg。
注意
叢集名稱會建立 DNS 項目,所以在整個 Azure 中必須是全域唯一。 若
link-demo-sg
無法使用,請輸入其他名稱,並據以調整下列步驟。位置:選取 [美國東部]。
密碼:輸入密碼,然後加以確認。
選取 [下一步:網路]。
在 [網路] 索引標籤的 [Connectivity method] \(連線方法\) 中,選取 [私人存取]。
在 [Create private endpoint] \(建立私人端點\) 畫面上,輸入或選取下列值:
- 資源群組:
link-demo
- 位置:
(US) East US
- 名稱:
link-demo-sg-c-pe1
- 目標子資源:
coordinator
- 虛擬網路:
link-demo-net
- 子網路:
link-demo-subnet
- 與私人 DNS 區域整合:是
- 資源群組:
選取 [確定]。
建立私人端點之後,請選取 [檢閱 + 建立],然後選取 [建立] 以建立叢集。
從 VM 私下存取叢集
私人連結可讓 VM 連線至叢集,並防止外部主機這麼做。 在此步驟中,您會檢查 VM 上的 psql 資料庫用戶端是否可與叢集的協調器節點通訊。
PG_URI='host=c-link-demo-sg.12345678901234.postgres.cosmos.azure.com port=5432 dbname=citus user=citus password={your_password} sslmode=require'
# Attempt to connect to cluster with psql in the VM
az vm run-command invoke \
--resource-group link-demo \
--name link-demo-vm \
--command-id RunShellScript \
--scripts "psql '$PG_URI' -c 'SHOW citus.version;'" \
--query 'value[0].message' \
| xargs printf
注意
在 連接字串 中,將 取代{your_password}
為您的叢集密碼或Microsoft Entra ID 令牌。 如需詳細資訊,請參閱驗證選項。
您應該會在輸出中看到 Citus 的版本號碼。 若看到,表示 psql 能夠執行命令,且私人連結有作用。
清除資源
您已了解如何在 VM 與叢集之間建立私人連結。 現在您可以取消佈建資源了。
刪除資源群組,將會取消佈建內部的資源:
az group delete --resource-group link-demo
# press y to confirm