Tworzenie punktów końcowych usługi sieci wirtualnej i zarządzanie nimi dla usługi Azure Database for PostgreSQL — pojedynczy serwer przy użyciu interfejsu wiersza polecenia platformy Azure

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

Punkty końcowe i reguły usług sieci wirtualnej rozszerzają prywatną przestrzeń adresową sieci wirtualnej na serwer usługi Azure Database for PostgreSQL. Korzystając z wygodnych poleceń interfejsu wiersza polecenia platformy Azure, można tworzyć, aktualizować, usuwać, wyświetlać i wyświetlać punkty końcowe i reguły usługi sieci wirtualnej do zarządzania serwerem. Aby zapoznać się z omówieniem punktów końcowych usługi sieci wirtualnej usługi Azure Database for PostgreSQL, w tym ograniczeń, zobacz Punkty końcowe usługi sieci wirtualnej serwera usługi Azure Database for PostgreSQL. Punkty końcowe usługi sieci wirtualnej są dostępne we wszystkich obsługiwanych regionach usługi Azure Database for PostgreSQL.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Wymagania wstępne

Uwaga

Obsługa punktów końcowych usługi sieci wirtualnej dotyczy tylko serwerów ogólnego przeznaczenia i zoptymalizowanych pod kątem pamięci. W przypadku komunikacji równorzędnej sieci wirtualnych, jeśli ruch przepływa przez wspólną bramę sieci wirtualnej z punktami końcowymi usługi i ma przepływać do komunikacji równorzędnej, utwórz regułę listy ACL/sieci wirtualnej, aby zezwolić usłudze Azure Virtual Machines w sieci wirtualnej bramy na dostęp do serwera usługi Azure Database for PostgreSQL.

Konfigurowanie punktów końcowych usługi sieci wirtualnej

Polecenia az network vnet służą do konfigurowania sieci wirtualnych. Punkty końcowe usługi można konfigurować niezależnie w sieciach wirtualnych przez użytkownika z dostępem do zapisu w sieci wirtualnej.

Aby zabezpieczyć zasoby usługi platformy Azure w sieci wirtualnej, użytkownik musi mieć uprawnienie do dodawania podsieci "Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/". To uprawnienie jest domyślnie uwzględniane we wbudowanych rolach administratora usługi, domyślnie i może być modyfikowane przez tworzenie ról niestandardowych.

Dowiedz się więcej na temat wbudowanych ról i przypisywaniu określonych uprawnień do ról niestandardowych.

Sieci wirtualne i zasoby usług platformy Azure mogą należeć do tej samej lub różnych subskrypcji. Jeśli zasoby sieci wirtualnej i usługi platformy Azure znajdują się w różnych subskrypcjach, zasoby powinny znajdować się w tej samej dzierżawie usługi Active Directory (AD). Upewnij się, że obie subskrypcje mają zarejestrowanego dostawcę zasobów Microsoft.Sql . Aby uzyskać więcej informacji, zobacz informacje o rejestracji menedżera zasobów.

Ważne

Zdecydowanie zaleca się przeczytanie tego artykułu na temat konfiguracji i zagadnień dotyczących punktu końcowego usługi przed uruchomieniem poniższego przykładowego skryptu lub skonfigurowaniem punktów końcowych usługi. Punkt końcowy usługi dla sieci wirtualnej:punkt końcowy usługi sieci wirtualnej to podsieć, której wartości właściwości obejmują co najmniej jedną formalną nazwę typu usługi platformy Azure. Punkty końcowe usług sieci wirtualnej używają nazwy typu usługi Microsoft.Sql, która odwołuje się do usługi platformy Azure o nazwie SQL Database. Ten tag usługi dotyczy również usług Azure SQL Database, Azure Database for PostgreSQL i MySQL. Należy pamiętać, że podczas stosowania tagu usługi Microsoft.Sql do punktu końcowego usługi sieci wirtualnej konfiguruje ruch punktu końcowego usługi dla wszystkich usług Azure Database, w tym usług Azure SQL Database, Azure Database for PostgreSQL i Azure Database for MySQL w podsieci.

Przykładowy skrypt

Uruchamianie usługi Azure Cloud Shell

Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, której możesz używać do wykonywania kroków opisanych w tym artykule. Udostępnia ona wstępnie zainstalowane i najczęściej używane narzędzia platformy Azure, które są skonfigurowane do użycia na koncie.

Aby otworzyć usługę Cloud Shell, wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu. Możesz również uruchomić usługę Cloud Shell w oddzielnej karcie przeglądarki, przechodząc do strony https://shell.azure.com.

Po otwarciu usługi Cloud Shell sprawdź, czy dla danego środowiska wybrano powłokę Bash . Kolejne sesje będą używać interfejsu wiersza polecenia platformy Azure w środowisku powłoki Bash, wybierz pozycję Kopiuj , aby skopiować bloki kodu, wkleić go do usługi Cloud Shell i nacisnąć klawisz Enter , aby go uruchomić.

Logowanie się do platformy Azure

Usługa Cloud Shell jest automatycznie uwierzytelniana na początkowym koncie zalogowanym. Użyj następującego skryptu, aby zalogować się przy użyciu innej subskrypcji, zastępując <Subscription ID> element identyfikatorem subskrypcji platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Aby uzyskać więcej informacji, zobacz set active subscription or log in interactively (Ustawianie aktywnej subskrypcji lub logowanie się interaktywnie)

Uruchamianie skryptu

# Create a PostgreSQL server and configure a vNet rule

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-postgresql-rg-$randomIdentifier"
tag="create-postgresql-server"
server="msdocs-postgresql-server-$randomIdentifier"
sku="GP_Gen5_2"
vNet="vNet-$randomIdentifier"
vNetAddressPrefix="10.0.0.0/16"
subnet="subnet-$randomIdentifier"
subnetAddressPrefix="10.0.1.0/24"
rule="rule-$randomIdentifier"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"

echo "Using resource group $resourceGroup with login: $login, password: $password..."

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

# Create a PostgreSQL server in the resource group
# Name of a server maps to DNS name and is thus required to be globally unique in Azure.
echo "Creating $server in $location..."
az postgres server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password --sku-name $sku

# Get available service endpoints for Azure region output is JSON
echo "List of available service endpoints for $location"
az network vnet list-endpoint-services --location "$location"

# Add Azure SQL service endpoint to a subnet while creating the virtual network
echo "Adding service endpoint to $subnet in $vNet"
az network vnet create --resource-group $resourceGroup --name $vNet --address-prefixes $vNetAddressPrefix --location "$location"

# Creates the service endpoint
echo "Creating a service endpoint to $subnet in $vNet"
az network vnet subnet create --resource-group $resourceGroup --name $subnet --vnet-name $vNet --address-prefix $subnetAddressPrefix --service-endpoints Microsoft.SQL

# View service endpoints configured on a subnet
echo "Viewing the service endpoint to $subnet in $vNet"
az network vnet subnet show --resource-group $resourceGroup --name $subnet --vnet-name $vNet

# Create a VNet rule on the server to secure it to the subnet
# Note: resource group (-g) parameter is where the database exists.
# VNet resource group if different should be specified using subnet id (URI) instead of subnet, VNet pair.
echo "Creating a VNet rule on $server to secure it to $subnet in $vNet"
az postgres server vnet-rule create --name $rule --resource-group $resourceGroup --server $server --vnet-name $vNet --subnet $subnet

Czyszczenie wdrożenia

Użyj następującego polecenia, aby usunąć grupę zasobów i wszystkie skojarzone z nią zasoby przy użyciu polecenia az group delete — chyba że masz ciągłą potrzebę tych zasobów. Utworzenie niektórych z tych zasobów może trochę potrwać, a także usunięcie.

echo "Cleaning up resources by removing the resource group..."
az group delete --name $resourceGroup -y