Partilhar via


Conectar-se a um cluster com acesso privado no Azure Cosmos DB para PostgreSQL

APLICA-SE A: Azure Cosmos DB para PostgreSQL (alimentado pela extensão de banco de dados Citus para PostgreSQL)

Este tutorial cria uma máquina virtual (VM) e um cluster do Azure Cosmos DB para PostgreSQL e estabelece acesso privado entre eles.

Pré-requisitos

Criar uma rede virtual

Primeiro, configure um grupo de recursos e uma rede virtual para armazenar seu cluster e VM.

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

Criar uma máquina virtual

Para demonstração, crie uma VM executando Debian Linux e o psql cliente 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"

Crie seu cluster do Azure Cosmos DB para PostgreSQL no portal do Azure.

  1. No portal, selecione Criar um recurso no canto superior esquerdo.

  2. Na página Criar um recurso, selecione Bancos de Dados e, em seguida, selecione Azure Cosmos DB.

  3. Na página de opção Selecionar API, no bloco PostgreSQL , selecione Criar.

  4. Na página Criar um cluster do Azure Cosmos DB para PostgreSQL, preencha as seguintes informações:

    • Grupo de recursos: selecione Novo e, em seguida, insira link-demo.

    • Nome do cluster: insira link-demo-sg.

      Nota

      O nome do cluster deve ser globalmente exclusivo no Azure porque cria uma entrada DNS. Se link-demo-sg não estiver disponível, introduza outro nome e ajuste os passos seguintes em conformidade.

    • Localização: Selecione East US.

    • Palavra-passe: introduza e confirme uma palavra-passe.

  5. Selecione Next: Networking.

  6. Na guia Rede, para Método de conectividade, selecione Acesso privado.

  7. Na tela Criar ponto de extremidade privado, insira ou selecione os seguintes valores:

    • Grupo de recursos: link-demo
    • Localização: (US) East US
    • Designação: link-demo-sg-c-pe1
    • Subrecurso de destino: coordinator
    • Rede virtual: link-demo-net
    • Sub-rede: link-demo-subnet
    • Integração com zona DNS privada: Sim
  8. Selecione OK.

  9. Depois de criar o ponto de extremidade privado, selecione Rever + criar e, em seguida, selecione Criar para criar o cluster.

Acessar o cluster de forma privada a partir da VM

O link privado permite que a VM se conecte ao cluster e impede que hosts externos façam isso. Nesta etapa, você verifica se o cliente de banco de dados psql em sua VM pode se comunicar com o nó coordenador do cluster. No código, substitua {your_password} pela senha do cluster.

# 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

Você deve ver um número de versão para o Citus na saída. Se você fizer, então psql foi capaz de executar o comando, e o link privado funcionou.

Clean up resources (Limpar recursos)

Você viu como criar um link privado entre uma VM e um cluster. Agora você pode desprovisionar os recursos.

Exclua o grupo de recursos e os recursos internos serão desprovisionados:

az group delete --resource-group link-demo

# press y to confirm

Próximos passos