Tworzenie usługi Private Link dla usługi Azure Database for PostgreSQL i zarządzanie nim — pojedynczy serwer przy użyciu interfejsu wiersza polecenia

DOTYCZY: Azure Database for PostgreSQL — pojedynczy serwer

Ważne

Usługa Azure Database for PostgreSQL — pojedynczy serwer znajduje się na ścieżce wycofania. Zdecydowanie zalecamy uaktualnienie do usługi Azure Database for PostgreSQL — serwer elastyczny. Aby uzyskać więcej informacji na temat migracji do usługi Azure Database for PostgreSQL — serwer elastyczny, zobacz Co się dzieje z usługą Azure Database for PostgreSQL — pojedynczy serwer?.

Prywatny punkt końcowy to podstawowy blok konstrukcyjny linku prywatnego na platformie Azure. Umożliwia ona zasobom platformy Azure, na przykład maszynom wirtualnym, prywatną komunikację z zasobami łącza prywatnego. W tym artykule dowiesz się, jak za pomocą interfejsu wiersza polecenia platformy Azure utworzyć maszynę wirtualną w sieci wirtualnej platformy Azure i pojedynczy serwer usługi Azure Database for PostgreSQL z prywatnym punktem końcowym platformy Azure.

Uwaga

Funkcja łącza prywatnego jest dostępna tylko dla serwerów usługi Azure Database for PostgreSQL w warstwach cenowych Ogólnego przeznaczenia lub Zoptymalizowane pod kątem pamięci. Upewnij się, że serwer bazy danych znajduje się w jednej z tych warstw cenowych.

Wymagania wstępne

Aby przejść przez ten przewodnik z instrukcjami, potrzebne są następujące elementy:

Azure Cloud Shell

Na platforma Azure hostowane jest Azure Cloud Shell, interaktywne środowisko powłoki, z którego można korzystać w przeglądarce. Do pracy z usługami platformy Azure można używać programu Bash lub PowerShell w środowisku Cloud Shell. Aby uruchomić kod w tym artykule, możesz użyć wstępnie zainstalowanych poleceń usługi Cloud Shell bez konieczności instalowania niczego w środowisku lokalnym.

Aby uruchomić środowisko Azure Cloud Shell:

Opcja Przykład/link
Wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu lub polecenia. Wybranie pozycji Wypróbuj nie powoduje automatycznego skopiowania kodu lub polecenia do usługi Cloud Shell. Zrzut ekranu przedstawiający przykład narzędzia Try It dla usługi Azure Cloud Shell.
Przejdź do witryny https://shell.azure.com lub wybierz przycisk Uruchom Cloud Shell, aby otworzyć środowisko Cloud Shell w przeglądarce. Przycisk uruchamiania usługi Azure Cloud Shell.
Wybierz przycisk Cloud Shell na pasku menu w prawym górnym rogu witryny Azure Portal. Zrzut ekranu przedstawiający przycisk usługi Cloud Shell w witrynie Azure Portal

Aby użyć usługi Azure Cloud Shell:

  1. Uruchom usługę Cloud Shell.

  2. Wybierz przycisk Kopiuj w bloku kodu (lub bloku poleceń), aby skopiować kod lub polecenie.

  3. Wklej kod lub polecenie do sesji usługi Cloud Shell, wybierając klawisze Ctrl+Shift V w systemach Windows i Linux lub wybierając pozycję Cmd+Shift++V w systemie macOS.

  4. Wybierz klawisz Enter, aby uruchomić kod lub polecenie.

Jeśli zdecydujesz się zainstalować interfejs wiersza polecenia platformy Azure i korzystać z niego lokalnie, ten przewodnik Szybki start wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.0.28 lub nowszej. Aby dowiedzieć się, jaka wersja jest zainstalowana, uruchom polecenie az --version. Aby uzyskać informacje na temat instalacji i uaktualnienia, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Tworzenie grupy zasobów

Przed utworzeniem dowolnego zasobu należy utworzyć grupę zasobów do hostowania sieci wirtualnej. Utwórz grupę zasobów za pomocą polecenia az group create. W tym przykładzie zostanie utworzona grupa zasobów o nazwie myResourceGroup w lokalizacji westeurope :

az group create --name myResourceGroup --location westeurope

Tworzenie sieci wirtualnej

Utwórz sieć wirtualną za pomocą polecenia az network vnet create. W tym przykładzie zostanie utworzona domyślna sieć wirtualna o nazwie myVirtualNetwork z jedną podsiecią o nazwie mySubnet:

az network vnet create \
--name myVirtualNetwork \
--resource-group myResourceGroup \
--subnet-name mySubnet

Wyłączanie zasad prywatnego punktu końcowego podsieci

Platforma Azure wdraża zasoby w podsieci w sieci wirtualnej, dlatego należy utworzyć lub zaktualizować podsieć, aby wyłączyć zasady sieci prywatnego punktu końcowego. Zaktualizuj konfigurację podsieci o nazwie mySubnet za pomocą polecenia az network vnet subnet update:

az network vnet subnet update \
--name mySubnet \
--resource-group myResourceGroup \
--vnet-name myVirtualNetwork \
--disable-private-endpoint-network-policies true

Tworzenie maszyny wirtualnej

Utwórz maszynę wirtualną za pomocą polecenia az vm create. Po wyświetleniu monitu podaj hasło do użycia jako poświadczenia logowania dla maszyny wirtualnej. W tym przykładzie zostanie utworzona maszyna wirtualna o nazwie myVm:

az vm create \
  --resource-group myResourceGroup \
  --name myVm \
  --image Win2019Datacenter

Zanotuj publiczny adres IP maszyny wirtualnej. Użyjesz tego adresu do nawiązania połączenia z maszyną wirtualną z Internetu w następnym kroku.

Tworzenie usługi Azure Database for PostgreSQL — pojedynczy serwer

Utwórz usługę Azure Database for PostgreSQL za pomocą polecenia az postgres server create. Pamiętaj, że nazwa serwera PostgreSQL musi być unikatowa na platformie Azure, dlatego zastąp wartość symbolu zastępczego własnymi unikatowymi wartościami użytymi powyżej:

# Create a server in the resource group

[!INCLUDE [applies-to-postgresql-single-server](../includes/applies-to-postgresql-single-server.md)]

[!INCLUDE [azure-database-for-postgresql-single-server-deprecation](../includes/azure-database-for-postgresql-single-server-deprecation.md)]


az postgres server create \
--name mydemoserver \
--resource-group myresourcegroup \
--location westeurope \
--admin-user mylogin \
--admin-password <server_admin_password> \
--sku-name GP_Gen5_2

Tworzenie prywatnego punktu końcowego

Utwórz prywatny punkt końcowy dla serwera PostgreSQL w sieci wirtualnej:

az network private-endpoint create \  
    --name myPrivateEndpoint \  
    --resource-group myResourceGroup \  
    --vnet-name myVirtualNetwork  \  
    --subnet mySubnet \  
    --private-connection-resource-id $(az resource show -g myResourcegroup -n mydemoserver --resource-type "Microsoft.DBforPostgreSQL/servers" --query "id" -o tsv) \    
    --group-id postgresqlServer \  
    --connection-name myConnection  

Konfigurowanie strefy Prywatna strefa DNS

Utwórz domenę serwera Prywatna strefa DNS dla bazy danych PostgreSQL i utwórz link skojarzenia z siecią wirtualną.

az network private-dns zone create --resource-group myResourceGroup \ 
   --name  "privatelink.postgres.database.azure.com" 
az network private-dns link vnet create --resource-group myResourceGroup \ 
   --zone-name  "privatelink.postgres.database.azure.com"\ 
   --name MyDNSLink \ 
   --virtual-network myVirtualNetwork \ 
   --registration-enabled false

#Query for the network interface ID  

networkInterfaceId=$(az network private-endpoint show --name myPrivateEndpoint --resource-group myResourceGroup --query 'networkInterfaces[0].id' -o tsv)


az resource show --ids $networkInterfaceId --api-version 2019-04-01 -o json
# Copy the content for privateIPAddress and FQDN matching the Azure database for PostgreSQL name

[!INCLUDE [applies-to-postgresql-single-server](../includes/applies-to-postgresql-single-server.md)]

[!INCLUDE [azure-database-for-postgresql-single-server-deprecation](../includes/azure-database-for-postgresql-single-server-deprecation.md)]


#Create DNS records 

az network private-dns record-set a create --name myserver --zone-name privatelink.postgres.database.azure.com --resource-group myResourceGroup  
az network private-dns record-set a add-record --record-set-name myserver --zone-name privatelink.postgres.database.azure.com --resource-group myResourceGroup -a <Private IP Address>

Uwaga

Nazwa FQDN w ustawieniu DNS klienta nie jest rozpoznawana jako skonfigurowany prywatny adres IP. Musisz skonfigurować strefę DNS dla skonfigurowanej nazwy FQDN, jak pokazano tutaj.

Uwaga

W niektórych przypadkach usługa Azure Database for PostgreSQL i podsieć sieci wirtualnej znajdują się w różnych subskrypcjach. W takich przypadkach należy zapewnić następujące konfiguracje:

  • Upewnij się, że obie subskrypcje mają zarejestrowanego dostawcę zasobów Microsoft.DBforPostgreSQL . Aby uzyskać więcej informacji, zapoznaj się z dostawcami zasobów.

Nawiązywanie połączenia z maszyną wirtualną z Internetu

Połączenie do maszyny wirtualnej myVm z Internetu w następujący sposób:

  1. Na pasku wyszukiwania portalu wprowadź ciąg myVm.

  2. Wybierz przycisk Połącz. Po wybraniu przycisku Połącz zostanie otwarta strona Łączenie z maszyną wirtualną.

  3. Wybierz pozycję Pobierz plik RDP. Plik Remote Desktop Protocol (.rdp) zostanie utworzony na platformie Azure, a następnie pobrany na komputer.

  4. Otwórz plik downloaded.rdp.

    1. Po wyświetleniu monitu wybierz pozycję Połącz.

    2. Wprowadź nazwę użytkownika i hasło określone podczas tworzenia maszyny wirtualnej.

      Uwaga

      Może okazać się konieczne wybranie pozycji Więcej opcji>Użyj innego konta, aby podać poświadczenia wprowadzone podczas tworzenia maszyny wirtualnej.

  5. Wybierz przycisk OK.

  6. Podczas procesu logowania może pojawić się ostrzeżenie o certyfikacie. Jeśli zostanie wyświetlone ostrzeżenie o certyfikacie, wybierz opcję Tak lub Kontynuuj.

  7. Po wyświetleniu pulpitu maszyny wirtualnej zminimalizuj ją i wróć z powrotem do pulpitu lokalnego.

Uzyskiwanie dostępu do serwera PostgreSQL prywatnie z maszyny wirtualnej

  1. Na pulpicie zdalnym maszyny wirtualnej myVM otwórz program PowerShell.

  2. Wprowadź nslookup mydemopostgresserver.privatelink.postgres.database.azure.com.

    Zostanie wyświetlony komunikat podobny do następującego:

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemopostgresserver.privatelink.postgres.database.azure.com
    Address:  10.1.3.4
    
  3. Przetestuj połączenie usługi Private Link dla serwera PostgreSQL przy użyciu dowolnego dostępnego klienta. W poniższym przykładzie użyto narzędzia Azure Data Studio do wykonania operacji.

  4. W obszarze Nowe połączenie wprowadź lub wybierz następujące informacje:

    Ustawienie Wartość
    Typ serwera Wybierz pozycję PostgreSQL.
    Nazwa serwera Wybierz mydemopostgresserver.privatelink.postgres.database.azure.com
    User name Wprowadź nazwę użytkownika jako username@servername podaną podczas tworzenia serwera PostgreSQL.
    Hasło Wprowadź hasło podane podczas tworzenia serwera PostgreSQL.
    Protokół SSL Wybierz Wymagane.
  5. Wybierz pozycję Połącz.

  6. Przeglądaj bazy danych z menu po lewej stronie.

  7. (Opcjonalnie) Tworzenie informacji o serwerze postgreSQL lub wykonywanie na ich podstawie zapytań.

  8. Zamknij połączenie pulpitu zdalnego z maszyną wirtualną myVm.

Czyszczenie zasobów

Gdy grupa zasobów i wszystkie zawarte w niej zasoby nie będą już potrzebne, można je usunąć za pomocą polecenia az group delete:

az group delete --name myResourceGroup --yes 

Następne kroki