Подключение к кластеру с частным доступом в 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-sg.
Примечание.
Имя кластера должно быть глобально уникальным в Azure, так как оно создает запись DNS. Если
link-demo-sg
он недоступен, введите другое имя и измените следующие шаги соответствующим образом.Расположение. Выберите Восточная часть США.
Пароль: введите и подтвердите пароль.
Выберите Далее: сеть.
На вкладке "Сеть" для метода подключения выберите закрытый доступ.
На экране создания частной конечной точки введите или выберите следующие значения:
- Группа ресурсов:
link-demo
- Расположение:
(US) East US
- Имя:
link-demo-sg-c-pe1
- Целевой подресурс:
coordinator
- Виртуальная сеть:
link-demo-net
- Подсеть:
link-demo-subnet
- Интеграция с частной зоной DNS: да.
- Группа ресурсов:
Нажмите ОК.
После создания частной конечной точки нажмите кнопку "Проверить и создать ", а затем нажмите кнопку "Создать ", чтобы создать кластер.
Доступ к кластеру в частном порядке из виртуальной машины
Приватный канал позволяет виртуальной машине подключаться к кластеру и запрещает внешним узлам делать это. На этом шаге убедитесь, что клиент базы данных 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. Дополнительные сведения см. в разделе "Параметры проверки подлинности".
В выходных данных должен отобразиться номер версии для Citus. Если он отображается, psql сможет выполнить команду и приватный канал будет работать.
Очистка ресурсов
Вы узнали, как создать приватный канал между виртуальной машиной и кластером. Теперь вы можете отменить подготовку ресурсов.
Удалите группу ресурсов, и ресурсы внутри нее будут отозваны:
az group delete --resource-group link-demo
# press y to confirm
Следующие шаги
- Узнайте больше о частном доступе
- Ознакомьтесь со сведениями о частных конечных точках
- Ознакомьтесь со сведениями о виртуальных сетях
- Ознакомьтесь со сведениями о частных зонах DNS