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
- Uma conta do Azure com uma subscrição ativa. Se você não tiver uma, crie uma conta gratuitamente.
- Se você quiser executar o código localmente, a CLI do Azure será instalada. Você também pode executar o código no Azure Cloud Shell.
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"
Criar um cluster com um link privado
Crie seu cluster do Azure Cosmos DB para PostgreSQL no portal do Azure.
No portal, selecione Criar um recurso no canto superior esquerdo.
Na página Criar um recurso, selecione Bancos de Dados e, em seguida, selecione Azure Cosmos DB.
Na página de opção Selecionar API, no bloco PostgreSQL , selecione Criar.
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.
Selecione Next: Networking.
Na guia Rede, para Método de conectividade, selecione Acesso privado.
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
- Grupo de recursos:
Selecione OK.
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.
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
Nota
Na cadeia de conexão, substitua {your_password}
pela senha do cluster ou pelo token de ID do Microsoft Entra. Para obter mais informações, consulte Opções de autenticação.
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
- Saiba mais sobre o acesso privado
- Saiba mais sobre endpoints privados
- Saiba mais sobre redes virtuais
- Saiba mais sobre zonas DNS privadas