共用方式為


在 Azure Cosmos DB for PostgreSQL 中使用私人存取來連線至叢集

適用於: Azure Cosmos DB for PostgreSQL (由 PostgreSQL 的 Citus 資料庫延伸模組提供)

此教學課程會建立虛擬機器 (VM) 與 Azure Cosmos DB for PostgreSQL 叢集,並在兩者之間建立私人存取

必要條件

建立虛擬網路

首先,設定資源群組與虛擬網路來保存您的叢集與 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 叢集。

  1. 在入口網站中,選取左上角的 [建立資源]

  2. 在 [建立資源] 頁面上,選取 [資料庫],然後選取 [Azure Cosmos DB]

  3. 在 [選取 API 選項] 頁面上的 [PostgreSQL] 磚上,選取 [建立]

  4. 在 [Create an Azure Cosmos DB for PostgreSQL cluster] \(建立 Azure Cosmos DB for PostgreSQL 叢集\) 頁面上,填寫下列資訊:

    • 資源群組:選取 [新增],然後輸入 link-demo

    • 叢集名稱:輸入 link-demo-sg

      注意

      叢集名稱會建立 DNS 項目,所以在整個 Azure 中必須是全域唯一。 若 link-demo-sg 無法使用,請輸入其他名稱,並據以調整下列步驟。

    • 位置:選取 [美國東部]

    • 密碼:輸入密碼,然後加以確認。

  5. 選取 [下一步:網路]

  6. 在 [網路] 索引標籤的 [Connectivity method] \(連線方法\) 中,選取 [私人存取]

  7. 在 [Create private endpoint] \(建立私人端點\) 畫面上,輸入或選取下列值:

    • 資源群組link-demo
    • 位置(US) East US
    • 名稱link-demo-sg-c-pe1
    • 目標子資源coordinator
    • 虛擬網路link-demo-net
    • 子網路link-demo-subnet
    • 與私人 DNS 區域整合:是
  8. 選取 [確定]。

  9. 建立私人端點之後,請選取 [檢閱 + 建立],然後選取 [建立] 以建立叢集。

從 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

下一步