Подключение к кластеру с частным доступом в Azure Cosmos DB для PostgreSQL
ПРИМЕНИМО К: Azure Cosmos DB для PostgreSQL (на базе расширения базы данных Citus для PostgreSQL)
В этом руководстве создаются виртуальная машина и кластер Azure Cosmos DB для PostgreSQL, а также устанавливается частный доступ между ними.
Предварительные требования
- Учетная запись Azure с активной подпиской. Если у вас ее нет, создайте учетную запись бесплатно.
- Если вы хотите выполнить код локально, установите Azure CLI . Вы также можете выполнить код в azure Cloud Shell.
Создание виртуальной сети
Сначала настройте группу ресурсов и виртуальную сеть для хранения кластера и виртуальной машины.
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.
# 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 Cosmos DB для PostgreSQL в портал Azure.
На портале выберите Создать ресурс в верхнем левом углу.
На странице Создание ресурса выберите Базы данных, а затем — Azure Cosmos DB.
На странице Выбор параметра API на плитке PostgreSQL выберите Создать.
На странице Создание кластера Azure Cosmos DB для PostgreSQL укажите следующие сведения:
Группа ресурсов: выберите Создать, а затем введите link-demo.
Имя кластера: введите link-demo-sg.
Примечание
Имя кластера должно быть глобально уникальным в Azure, так как оно создает запись DNS. Если
link-demo-sg
параметр недоступен, введите другое имя и соответствующим образом измените следующие действия.Расположение: выберите Восточная часть США.
Пароль. Введите и подтвердите пароль.
По завершении выберите Next: сеть.
На вкладке Сеть в поле Метод подключения выберите Частный доступ.
На экране Создание частной конечной точки введите или выберите следующие значения:
- Группа ресурсов:
link-demo
- Расположение
(US) East US
. - Имя:
link-demo-sg-c-pe1
- Целевой подресурс:
coordinator
- Виртуальная сеть:
link-demo-net
- Подсеть:
link-demo-subnet
- Интеграция с частной зоной DNS: да.
- Группа ресурсов:
Щелкните ОК.
После создания частной конечной точки выберите Проверка и создание , а затем щелкните Создать , чтобы создать кластер.
Частный доступ к кластеру с виртуальной машины
Приватный канал позволяет виртуальной машине подключаться к кластеру и не позволяет внешним узлам это сделать. На этом шаге вы убедитесь, что клиент базы данных psql на виртуальной машине может взаимодействовать с узлом-координатором кластера. В коде замените {your_password}
паролем кластера.
# replace {your_password} in the string with your actual password
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
В выходных данных должен отобразиться номер версии для Citus. Если он отображается, psql сможет выполнить команду и приватный канал будет работать.
Очистка ресурсов
Вы узнали, как создать приватный канал между виртуальной машиной и кластером. Теперь вы можете отозвать ресурсы.
Удалите группу ресурсов, и ресурсы внутри нее будут отозваны:
az group delete --resource-group link-demo
# press y to confirm
Дальнейшие действия
- Узнайте больше о частном доступе
- Ознакомьтесь со сведениями о частных конечных точках
- Ознакомьтесь со сведениями о виртуальных сетях
- Ознакомьтесь со сведениями о частных зонах DNS