Nawiązywanie połączenia z klastrem z dostępem prywatnym w usłudze Azure Cosmos DB for PostgreSQL
DOTYCZY: Usługa Azure Cosmos DB for PostgreSQL (obsługiwana przez rozszerzenie bazy danych Citus do bazy danych PostgreSQL)
Ten samouczek tworzy maszynę wirtualną i klaster usługi Azure Cosmos DB for PostgreSQL oraz ustanawia między nimi prywatny dostęp .
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Jeśli go nie masz, utwórz bezpłatne konto.
- Jeśli chcesz uruchomić kod lokalnie, zainstalowany interfejs wiersza polecenia platformy Azure. Możesz również uruchomić kod w usłudze Azure Cloud Shell.
Tworzenie sieci wirtualnej
Najpierw skonfiguruj grupę zasobów i sieć wirtualną do przechowywania klastra i maszyny wirtualnej.
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
Tworzenie maszyny wirtualnej
Na potrzeby pokazu utwórz maszynę wirtualną z systemem Debian Linux i klientem psql
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"
Tworzenie klastra za pomocą łącza prywatnego
Utwórz klaster usługi Azure Cosmos DB for PostgreSQL w witrynie Azure Portal.
W portalu wybierz pozycję Utwórz zasób w lewym górnym rogu.
Na stronie Tworzenie zasobu wybierz pozycję Bazy danych, a następnie wybierz pozycję Azure Cosmos DB.
Na stronie Wybierz interfejs API na kafelku PostgreSQL wybierz pozycję Utwórz.
Na stronie Tworzenie klastra usługi Azure Cosmos DB for PostgreSQL wypełnij następujące informacje:
Grupa zasobów: wybierz pozycję Nowy, a następnie wprowadź link-demo.
Nazwa klastra: wprowadź link-demo-sg.
Uwaga
Nazwa klastra musi być globalnie unikatowa na platformie Azure, ponieważ tworzy wpis DNS. Jeśli
link-demo-sg
jest niedostępny, wprowadź inną nazwę i odpowiednio dostosuj poniższe kroki.Lokalizacja: wybierz pozycję Wschodnie stany USA.
Hasło: wprowadź i potwierdź hasło.
Wybierz pozycję Dalej: Sieć.
Na karcie Sieć w polu Metoda łączności wybierz pozycję Dostęp prywatny.
Na ekranie Tworzenie prywatnego punktu końcowego wprowadź lub wybierz następujące wartości:
- Grupa zasobów:
link-demo
- Lokalizacja:
(US) East US
- Nazwa:
link-demo-sg-c-pe1
- Docelowy zasób podrzędny:
coordinator
- Sieć wirtualna:
link-demo-net
- Podsieć:
link-demo-subnet
- Integracja z prywatną strefą DNS: Tak
- Grupa zasobów:
Wybierz przycisk OK.
Po utworzeniu prywatnego punktu końcowego wybierz pozycję Przejrzyj i utwórz , a następnie wybierz pozycję Utwórz , aby utworzyć klaster.
Uzyskiwanie dostępu do klastra prywatnie z maszyny wirtualnej
Link prywatny umożliwia maszynie wirtualnej nawiązywanie połączenia z klastrem i uniemożliwia wykonywanie tych czynności przez hosty zewnętrzne. W tym kroku sprawdzisz, czy klient bazy danych psql na maszynie wirtualnej może komunikować się z węzłem koordynacji klastra.
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
Uwaga
W parametry połączenia zastąp {your_password}
ciąg hasłem klastra lub tokenem Microsoft Entra ID. Aby uzyskać więcej informacji, zobacz opcje uwierzytelniania.
W danych wyjściowych powinien zostać wyświetlony numer wersji citus. Jeśli to zrobisz, narzędzie psql było w stanie wykonać polecenie, a link prywatny zadziałał.
Czyszczenie zasobów
Pokazano, jak utworzyć połączenie prywatne między maszyną wirtualną a klastrem. Teraz możesz anuluj aprowizować zasoby.
Usuń grupę zasobów, a zasoby wewnątrz zostaną anulowane:
az group delete --resource-group link-demo
# press y to confirm
Następne kroki
- Dowiedz się więcej o dostępie prywatnym
- Dowiedz się więcej o prywatnych punktach końcowych
- Dowiedz się więcej o sieciach wirtualnych
- Dowiedz się więcej o prywatnych strefach DNS