Azure Database for MySQL VNet-service-eindpunten maken en beheren met behulp van Azure CLI
VAN TOEPASSING OP: Azure Database for MySQL - enkele server
Belangrijk
Azure Database for MySQL enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan een upgrade uit te voeren naar een flexibele Azure Database for MySQL-server. Zie Wat gebeurt er met Azure Database for MySQL Enkele server voor meer informatie over migreren naar Azure Database for MySQL Flexibele server ?
Service-eindpunten en -regels voor virtuele netwerken (VNets) breiden de privé-adresruimte van een virtueel netwerk uit naar uw Azure Database for MySQL-server. Met behulp van handige Azure CLI-opdrachten kunt u VNet-service-eindpunten en -regels maken, bijwerken, verwijderen, weergeven en weergeven om uw server te beheren. Zie Azure Database for MySQL Server VNet-service-eindpunten voor een overzicht van azure Database for MySQL VNet-service-eindpunten, inclusief beperkingen. VNet-service-eindpunten zijn beschikbaar in alle ondersteunde regio's voor Azure Database for MySQL.
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
Vereisten
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
Notitie
Ondersteuning voor VNet-service-eindpunten is alleen voor servers voor algemeen gebruik en geoptimaliseerd voor geheugen. In het geval van VNet-peering, als verkeer via een gemeenschappelijke VNet-gateway met service-eindpunten stroomt en naar de peer moet stromen, maakt u een ACL/VNet-regel om Azure Virtual Machines in het gateway-VNet toegang te geven tot de Azure Database for MySQL-server.
Vnet-service-eindpunten configureren voor Azure Database for MySQL
De az network vnet-opdrachten worden gebruikt om virtuele netwerken te configureren.
Als u meerdere abonnementen hebt, kiest u het juiste abonnement waarin de resource moet worden gefactureerd. Het account moet beschikken over de benodigde machtigingen voor het maken van een virtueel netwerk en een service-eindpunt. Service-eindpunten kunnen onafhankelijk van elkaar worden geconfigureerd op virtuele netwerken door een gebruiker met schrijftoegang tot het virtuele netwerk.
Als u Azure-servicebronnen naar een VNet wilt beveiligen, moet de gebruiker gemachtigd zijn voor 'Microsoft.Network/virtualNetworks/subnetten/joinViaServiceEndpoint/' voor de subnetten die worden toegevoegd. Deze machtiging is standaard opgenomen in de ingebouwde service-beheerdersrollen en kan worden gewijzigd door aangepaste rollen te maken.
Meer informatie over ingebouwde rollen en het toewijzen van specifieke machtigingen voor aangepaste rollen.
VNets en Azure-serviceresources kunnen in hetzelfde of in verschillend abonnementen zitten. Als de VNet- en Azure-servicebronnen zich in verschillende abonnementen bevinden, moeten de resources zich onder dezelfde Ad-tenant (Active Directory) bevinden. Zorg ervoor dat zowel de abonnementen de resourceproviders Microsoft.Sql als Microsoft.DBforMySQL hebben geregistreerd. Raadpleeg resource-manager-registratie voor meer informatie
Belangrijk
Het wordt ten zeerste aanbevolen dit artikel te lezen over configuraties en overwegingen van service-eindpunten voordat u het onderstaande voorbeeldscript uitvoert of service-eindpunten configureert. Service-eindpunt voor virtueel netwerk: een service-eindpunt voor een virtueel netwerk is een subnet waarvan de eigenschapswaarden een of meer formele Azure-servicetypenamen bevatten. VNet-services-eindpunten gebruiken de servicetypenaam Microsoft.Sql, die verwijst naar de Azure-service met de naam SQL Database. Deze servicetag is ook van toepassing op de Azure SQL Database-, Azure Database for PostgreSQL- en MySQL-services. Het is belangrijk te weten wanneer u de Microsoft.Sql-servicetag toepast op een VNet-service-eindpunt dat verkeer voor service-eindpunten configureert voor alle Azure Database-services, waaronder Azure SQL Database, Azure Database for PostgreSQL- en Azure Database for MySQL-servers in het subnet.
Voorbeeldscript
Azure Cloud Shell starten
Azure Cloud Shell is een gratis interactieve shell waarmee u de stappen in dit artikel kunt uitvoeren. In deze shell zijn algemene Azure-hulpprogramma's vooraf geïnstalleerd en geconfigureerd voor gebruik met uw account.
Als u Cloud Shell wilt openen, selecteert u Proberen in de rechterbovenhoek van een codeblok. U kunt Cloud Shell ook openen in een afzonderlijk browsertabblad door naar https://shell.azure.com te gaan.
Wanneer Cloud Shell wordt geopend, controleert u of Bash is geselecteerd voor uw omgeving. Volgende sessies gebruiken Azure CLI in een Bash-omgeving, selecteer Kopiëren om de codeblokken te kopiëren, plak deze in Cloud Shell en druk op Enter om deze uit te voeren.
Aanmelden bij Azure
Cloud Shell wordt automatisch geverifieerd onder het eerste account waarmee is aangemeld. Gebruik het volgende script om u aan te melden met een ander abonnement, waarbij u <Subscription ID>
uw Azure-abonnements-id vervangt. Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
Zie Voor meer informatie het instellen van een actief abonnement of het interactief aanmelden
Het script uitvoeren
# Create and manage Azure Database for MySQL VNet service endpoints
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-mysql-rg-$randomIdentifier"
tag="create-mysql-server"
server="msdocs-mysql-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 MySQL 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 mysql 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 in JSON
echo "List of available service endpoints for $location"
az network vnet list-endpoint-services --location "$location"
# Create the virtual network
echo "Creating $vNet"
az network vnet create --resource-group $resourceGroup --name $vNet --address-prefixes $vNetAddressPrefix --location "$location"
# Creates the subnet
echo "Creating $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 mysql server vnet-rule create --name $rule --resource-group $resourceGroup --server $server --vnet-name $vNet --subnet $subnet
Resources opschonen
Gebruik de volgende opdracht om de resourcegroep en alle bijbehorende resources te verwijderen met behulp van de opdracht az group delete - tenzij u deze resources voortdurend nodig hebt. Het kan even duren voordat sommige van deze resources zijn gemaakt en dat deze kunnen worden verwijderd.
az group delete --name $resourceGroup