Conectar-se a um cluster com acesso privado no Azure Cosmos DB for PostgreSQL
APLICA-SE AO: Azure Cosmos DB for PostgreSQL (da plataforma da extensão de dados Citus para PostgreSQL)
Este tutorial cria uma VM (máquina virtual) e um cluster do Azure Cosmos DB for PostgreSQL e estabelece acesso privado entre eles.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Se você não tiver, crie uma conta gratuita.
- Se você quiser executar o código localmente, precisará da CLI do Azure 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 o cluster e a 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 que execute o Debian Linux e o cliente PostgreSQL psql
.
# 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 o cluster do Azure Cosmos DB for PostgreSQL no portal do Azure.
No portal, selecione Criar um recurso no canto superior esquerdo.
Na página Criar recurso, selecione Bancos de dados, e, em seguida, Azure Cosmos DB.
Na página de opções Selecionar API, no bloco PostgreSQL, selecione Criar.
Na página Criar um cluster do Azure Cosmos DB for PostgreSQL, preencha as seguintes informações:
Grupo de recursos: selecione Novo e, em seguida, insira link-demo.
Nome do cluster: Insira link-demo-sg.
Observação
O nome do cluster deve ser globalmente exclusivo no Azure porque ele cria uma entrada DNS. Se
link-demo-sg
não estiver disponível, insira outro nome e ajuste as etapas a seguir adequadamente.Localização: selecione Leste dos EUA.
Senha: insira e confirme uma senha.
Selecione Avançar: Rede.
Na guia Rede, em 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
- Local:
(US) East US
- Nome:
link-demo-sg-c-pe1
- Sub-recurso de destino:
coordinator
- Rede virtual:
link-demo-net
- Sub-rede:
link-demo-subnet
- Integrar com a zona DNS privada: sim
- Grupo de recursos:
Selecione OK.
Depois de criar o ponto de extremidade privado, selecione Examinar + criar e depois Criar para criar o cluster.
Acessar o cluster de maneira privada pela VM
O link privado permite que a VM se conecte ao cluster e impede que hosts externos façam isso. Nesta etapa, você verificará se o cliente de banco de dados psql em sua máquina virtual 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
Observação
Na cadeia de conexão, substitua {your_password}
pela sua senha do cluster ou token do Microsoft Entra ID. Para mais informações, consulte opções de autenticação.
Você deverá ver um número de versão do Citus na saída. Se for esse o caso, o psql conseguiu executar o comando e o link privado funcionou.
Limpar os 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 dentro dele serão desprovisionados:
az group delete --resource-group link-demo
# press y to confirm
Próximas etapas
- Saiba mais sobre acesso privado
- Saiba mais sobre pontos de extremidade privados
- Saiba mais sobre as redes virtuais
- Saiba mais sobre as zonas DNS privadas