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


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

Область применения: Azure Cosmos DB для PostgreSQL (на базе расширения базы данных Citus до 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-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. Дополнительные сведения см. в разделе "Параметры проверки подлинности".

В выходных данных должен отобразиться номер версии для Citus. Если он отображается, psql сможет выполнить команду и приватный канал будет работать.

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

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

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

az group delete --resource-group link-demo

# press y to confirm

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