Поделиться через


Подключение к кластеру с частным доступом в Azure Cosmos DB для PostgreSQL

Это важно

Azure Cosmos DB для PostgreSQL больше не поддерживается для новых проектов. Не используйте эту службу для новых проектов. Вместо этого используйте одну из этих двух служб:

В этом руководстве создается виртуальная машина и кластер Azure Cosmos DB для PostgreSQL и устанавливается частный доступ между ними.

Предварительные условия

Создание виртуальной сети

Сначала настройте группу ресурсов и виртуальную сеть для хранения кластера и виртуальной машины.

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.

  1. На портале выберите "Создать ресурс " в верхнем левом углу.

  2. На странице "Создание ресурса" выберите "Базы данных" и выберите Azure Cosmos DB.

  3. На странице "Выбор API" на плитке PostgreSQL нажмите кнопку "Создать".

  4. На странице Создание кластера Azure Cosmos DB для PostgreSQL заполните следующие сведения:

    • Группа ресурсов: выберите Создать, затем введите link-demo.

    • Имя кластера: введите link-demo-sg.

      Примечание.

      Имя кластера должно быть глобально уникальным в Azure, так как оно создает запись DNS. Если link-demo-sg он недоступен, введите другое имя и измените следующие шаги соответствующим образом.

    • Расположение. Выберите Восточная часть США.

    • Пароль: введите и подтвердите пароль.

  5. Выберите Далее: сеть.

  6. На вкладке "Сеть" для метода подключения выберите закрытый доступ.

  7. На экране создания частной конечной точки введите или выберите следующие значения:

    • Группа ресурсов: link-demo
    • Расположение: (US) East US
    • Имя: link-demo-sg-c-pe1
    • Целевой подресурс: coordinator
    • Виртуальная сеть: link-demo-net
    • Подсеть: link-demo-subnet
    • Интеграция с частной зоной DNS: да.
  8. Нажмите ОК.

  9. После создания частной конечной точки нажмите кнопку "Проверить и создать ", а затем нажмите кнопку "Создать ", чтобы создать кластер.

Доступ к кластеру в частном порядке из виртуальной машины

Приватный канал позволяет виртуальной машине подключаться к кластеру и запрещает внешним узлам делать это. На этом шаге убедитесь, что клиент базы данных 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 смог выполнить команду, и приватная ссылка работала.

Очистка ресурсов

Вы узнали, как создать приватный канал между виртуальной машиной и кластером. Теперь вы можете депровизировать ресурсы.

Удалите группу ресурсов, и ресурсы внутри нее будут отозваны:

az group delete --resource-group link-demo

# press y to confirm

Следующие шаги