在 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 chinanorth3
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”磁贴上的“创建”。
在“创建 Azure Cosmos DB for PostgreSQL 群集”页上,填写以下信息:
资源组:选择“新建”,然后输入“link-demo”。
群集名称:输入“link-demo-sg”。
注意
群集名称在 Azure 中必须是多区域唯一的,因为它会创建一个 DNS 条目。 如果
link-demo-sg
不可用,请输入其他名称并相应地调整以下步骤。位置:选择“中国北部 3”。
密码:输入并确认密码。
选择“下一页:网络”。
在“网络”选项卡上,对于“连接方法”,选择“专用访问”。
在“创建专用终结点”屏幕上,输入或选择以下值:
- 资源组:
link-demo
- 位置:
China North3
- 名称:
link-demo-sg-c-pe1
- 目标子资源:
coordinator
- 虚拟网络:
link-demo-net
- 子网:
link-demo-subnet
- 与专用 DNS 区域集成:是
- 资源组:
选择“确定”。
创建专用终结点后,选择“查看 + 创建”,然后选择“创建”以创建群集。
以私密方式从 VM 访问群集
使用专用链接可以将 VM 连接到群集,但外部主机无法执行此操作。 在此步骤中,需要检查 VM 上的 psql 数据库客户端是否可以与群集的协调器节点通信。 在代码中,将 {your_password}
替换为群集密码。
# replace {your_password} in the string with your actual password
PG_URI='host=c-link-demo-sg.12345678901234.postgres.cosmos.chinacloudapi.cn 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
输出中应显示 Citus 的版本号。 如果显示,则 psql 可以执行该命令,专用链接将正常运行。
清理资源
你已了解如何在 VM 和群集之间创建专用链接。 现在可以取消设置资源。
删除资源组,其中的资源将被取消设置:
az group delete --resource-group link-demo
# press y to confirm