Udostępnij za pośrednictwem


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

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"

Utwórz klaster usługi Azure Cosmos DB for PostgreSQL w witrynie Azure Portal.

  1. W portalu wybierz pozycję Utwórz zasób w lewym górnym rogu.

  2. Na stronie Tworzenie zasobu wybierz pozycję Bazy danych, a następnie wybierz pozycję Azure Cosmos DB.

  3. Na stronie Wybierz interfejs API na kafelku PostgreSQL wybierz pozycję Utwórz.

  4. 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.

  5. Wybierz pozycję Dalej: Sieć.

  6. Na karcie Sieć w polu Metoda łączności wybierz pozycję Dostęp prywatny.

  7. 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
  8. Wybierz przycisk OK.

  9. 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. W kodzie zastąp {your_password} element hasłem klastra.

# replace {your_password} in the string with your actual password

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

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