Connettersi a un cluster con accesso privato in Azure Cosmos DB for PostgreSQL
SI APPLICA A: Azure Cosmos DB for PostgreSQL (con tecnologia basata su estensione di database Citus per PostgreSQL)
Questa esercitazione crea una macchina virtuale e un cluster Azure Cosmos DB for PostgreSQL e stabilisce un accesso privato tra di essi.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Se non si dispone di un account, crearne uno gratuitamente.
- Se si vuole eseguire il codice in locale, deve essere installata l'interfaccia della riga di comando di Azure. È anche possibile eseguire il codice in Azure Cloud Shell.
Creare una rete virtuale
Prima di tutto, configurare un gruppo di risorse e una rete virtuale per contenere il cluster e la macchina virtuale.
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
Creare una macchina virtuale
Per una dimostrazione, creare una macchina virtuale che esegue Debian Linux e il client 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"
Creare un cluster con un collegamento privato
Creare un cluster di Azure Cosmos DB for PostgreSQL nel portale di Azure.
Nel portale di Azure selezionare Crea una risorsa nell'angolo superiore sinistro.
Nella pagina Crea una risorsa selezionare Database e quindi Azure Cosmos DB.
Nella pagina Seleziona opzione API, nel riquadro PostgreSQL, selezionare Crea.
Nella pagina Creare un account Azure Cosmos DB for PostgreSQL, immettere le informazioni seguenti:
Gruppo di risorse: selezionare Nuovo, quindi immettere link-demo.
Nome cluster: immettere link-demo-sg.
Nota
Il nome del cluster deve essere univoco a livello globale in Azure perché crea una voce DNS. Se
link-demo-sg
non è disponibile, immettere un altro nome e modificare i passaggi seguenti di conseguenza.Località: selezionare Stati Uniti orientali.
Password: immettere e quindi confermare una password.
Al termine, selezionare Avanti: Rete.
Nella scheda Rete selezionare Accesso privato in Metodo di connettività.
Nella schermata Crea endpoint privato immettere o selezionare i valori seguenti:
- Gruppo di risorse:
link-demo
- Posizione:
(US) East US
- Nome:
link-demo-sg-c-pe1
- Sottorisorsa di destinazione:
coordinator
- Rete virtuale:
link-demo-net
- Subnet:
link-demo-subnet
- Integrare con la zona DNS privato: Sì
- Gruppo di risorse:
Seleziona OK.
Dopo aver creato l'endpoint privato, selezionare Rivedi e crea e quindi selezionare Crea per creare il cluster.
Accedere al cluster privatamente dalla macchina virtuale
Il collegamento privato consente alla macchina virtuale di connettersi al cluster e impedisce l'esecuzione di host esterni. In questo passaggio si verifica che il client di database psql nella macchina virtuale possa comunicare con il nodo coordinatore del 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
Nella stringa di connessione sostituire {your_password}
con la password del cluster o il token ID Microsoft Entra. Per ulteriori informazioni consultare Opzioni di autenticazione.
Nell'output dovrebbe essere visualizzato un numero di versione per Citus. In questo caso, psql è stato in grado di eseguire il comando e il collegamento privato ha funzionato.
Pulire le risorse
Si è visto come creare un collegamento privato tra una macchina virtuale e un cluster. È ora possibile effettuare il deprovisioning delle risorse.
Eliminare il gruppo di risorse: le risorse all'interno verranno sottoposte a deprovisioning:
az group delete --resource-group link-demo
# press y to confirm
Passaggi successivi
- Informazioni sull'accesso privato
- Informazioni sugli endpoint privati
- Altre informazioni sulle reti virtuali
- Altre informazioni sulle zone DNS private