Herstellen einer Verbindung mit einem Cluster mit privatem Zugriff in Azure Cosmos DB for PostgreSQL
GILT FÜR: Azure Cosmos DB for PostgreSQL (unterstützt von der Citus-Datenbankerweiterung auf PostgreSQL)
In diesem Tutorial werden ein virtueller Computer (VM) und ein Azure Cosmos DB for PostgreSQL-Cluster erstellt. Außerdem wird der private Zugriff zwischen ihnen eingerichtet.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Erstellen Sie ein kostenloses Konto, falls Sie keines besitzen.
- Wenn Sie den Code lokal ausführen möchten, muss die Azure CLI installiert sein. Sie können den Code auch in Azure Cloud Shell ausführen.
Erstellen eines virtuellen Netzwerks
Richten Sie zunächst eine Ressourcengruppe und ein virtuelles Netzwerk ein, in der bzw. dem sich Ihr Cluster und Ihr virtueller Computer befinden sollen.
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
Erstellen eines virtuellen Computers
Erstellen Sie zu Demonstrationszwecken eine VM, auf der Debian Linux ausgeführt wird, und den PostgreSQL-Client 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"
Erstellen eines Clusters mit einer privaten Verbindung
Erstellen Sie Ihren Azure Cosmos DB for PostgreSQL-Cluster im Azure-Portal.
Wählen Sie im Portal oben links die Option Ressource erstellen aus.
Wählen Sie auf der Seite Ressource erstellen die Option Datenbanken und dann Azure Cosmos DB aus.
Wählen Sie auf der Seite API-Option auswählen auf der Kachel PostgreSQL die Option Erstellen aus.
Füllen Sie auf der Seite Azure Cosmos DB for PostgreSQL-Cluster erstellen die folgenden Informationen aus:
Ressourcengruppe: Wählen Sie Neu aus, und geben Sie dann link-demo ein.
Clustername: Geben Sie link-demo-sg ein.
Hinweis
Der Clustername muss in Azure global eindeutig sein, da damit ein DNS-Eintrag erstellt wird. Wenn
link-demo-sg
nicht verfügbar ist, müssen Sie einen anderen Namen auswählen. Passen Sie die unten angegebenen Schritte dann entsprechend an.Standort: Wählen Sie USA, Osten aus.
Kennwort: Geben Sie ein Kennwort ein, und bestätigen Sie es anschließend.
Klicken Sie auf Weiter: Netzwerk.
Wählen Sie auf der Registerkarte Netzwerk als Konnektivitätsmethode die Option Privater Zugriff aus.
Geben Sie auf dem Bildschirm Privaten Endpunkt erstellen die folgenden Werte ein, oder wählen Sie sie aus:
- Ressourcengruppe:
link-demo
- Standort:
(US) East US
- Name:
link-demo-sg-c-pe1
- Untergeordnete Zielressource:
coordinator
- Virtuelles Netzwerk:
link-demo-net
- Subnetz:
link-demo-subnet
- Integration mit einer private DNS-Zone: Ja
- Ressourcengruppe:
Klicken Sie auf OK.
Nachdem Sie den privaten Endpunkt erstellt haben, wählen Sie Überprüfen und erstellen und dann Erstellen aus, um Ihren Cluster zu erstellen.
Privates Zugreifen auf das Cluster über den virtuellen Computer
Die private Verbindung sorgt dafür, dass der virtuelle Computer eine Verbindung mit dem Cluster herstellen kann, externe Hosts dagegen nicht. In diesem Schritt überprüfen Sie, ob der Datenbankclient psql auf dem virtuellen Computer mit dem Koordinatorknoten des Clusters kommunizieren kann.
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
Hinweis
Ersetzen Sie in der Verbindungszeichenfolge {your_password}
durch Ihr Clusterkennwort oder das Microsoft Entra ID-Token. Weitere Informationen finden Sie unter Authentifizierungsoptionen.
In der Ausgabe sollte eine Versionsnummer für Citus angezeigt werden. In diesem Fall konnte psql den Befehl ausführen, und die private Verbindung hat funktioniert.
Bereinigen von Ressourcen
Sie haben erfahren, wie Sie eine private Verbindung zwischen einem virtuellen Computer und einem Cluster erstellen. Nun können Sie die Bereitstellung der Ressourcen aufheben.
Löschen Sie die Ressourcengruppe, und die Bereitstellung der darin enthaltenen Ressourcen wird aufgehoben:
az group delete --resource-group link-demo
# press y to confirm
Nächste Schritte
- Weitere Informationen zu privatem Zugriff
- Weitere Informationen zu privaten Endpunkten
- Informieren Sie sich ausführlicher über virtuelle Netzwerke.
- Erfahren Sie mehr über private DNS-Zonen.