Quickstart: Een ARM-sjabloon gebruiken om een Azure Database for MySQL te maken

Azure Database for MySQL is een beheerde service waarmee u MySQL-databases met hoge beschikbaarheid in de cloud kunt uitvoeren, beheren en schalen. In deze quickstart gebruikt u een Azure Resource Manager-sjabloon (ARM-sjabloon) om een Azure Database for MySQL-server te maken met virtuele netwerkintegratie. U kunt de server maken met behulp van de Azure-portal, Azure CLI of Azure PowerShell.

Een Resource Manager-sjabloon is een JavaScript Object Notation-bestand (JSON) dat de infrastructuur en configuratie van uw project definieert. Voor de sjabloon is declaratieve syntaxis vereist. In declaratieve syntaxis beschrijft u de beoogde implementatie zonder dat u de reeks programmeeropdrachten voor het maken van de implementatie hoeft te schrijven.

Als uw omgeving voldoet aan de vereisten en u benkend bent met het gebruik van ARM-sjablonen, selecteert u de knop Implementeren naar Azure. De sjabloon wordt in Azure Portal geopend.

Implementeren in Azure

Vereisten

Een Azure-account met een actief abonnement. Maak er gratis een.

De sjabloon controleren

U maakt een Azure Database voor MySQL-server met een gedefinieerde set reken- en opslagresources. Zie Prijscategorieën in Azure Database for MySQL voor meer informatie. De server wordt gemaakt binnen een Azure-resourcegroep.

De sjabloon die in deze quickstart wordt gebruikt, komt uit Azure-quickstartsjablonen.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serverName": {
      "type": "string",
      "metadata": {
        "description": "Server Name for Azure database for MySQL"
      }
    },
    "administratorLogin": {
      "type": "string",
      "minLength": 1,
      "metadata": {
        "description": "Database administrator login name"
      }
    },
    "administratorLoginPassword": {
      "type": "securestring",
      "minLength": 8,
      "metadata": {
        "description": "Database administrator password"
      }
    },
    "skuCapacity": {
      "type": "int",
      "defaultValue": 2,
      "metadata": {
        "description": "Azure database for MySQL compute capacity in vCores (2,4,8,16,32)"
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "GP_Gen5_2",
      "metadata": {
        "description": "Azure database for MySQL sku name "
      }
    },
    "SkuSizeMB": {
      "type": "int",
      "defaultValue": 5120,
      "metadata": {
        "description": "Azure database for MySQL Sku Size "
      }
    },
    "SkuTier": {
      "type": "string",
      "defaultValue": "GeneralPurpose",
      "metadata": {
        "description": "Azure database for MySQL pricing tier"
      }
    },
    "skuFamily": {
      "type": "string",
      "defaultValue": "Gen5",
      "metadata": {
        "description": "Azure database for MySQL sku family"
      }
    },
    "mysqlVersion": {
      "type": "string",
      "defaultValue": "5.7",
      "allowedValues": [
        "5.6",
        "5.7"
      ],
      "metadata": {
        "description": "MySQL version"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "backupRetentionDays": {
      "type": "int",
      "defaultValue": 7,
      "metadata": {
        "description": "MySQL Server backup retention days"
      }
    },
    "geoRedundantBackup": {
      "type": "string",
      "defaultValue": "Disabled",
      "metadata": {
        "description": "Geo-Redundant Backup setting"
      }
    },
    "virtualNetworkName": {
      "type": "string",
      "defaultValue": "azure_mysql_vnet",
      "metadata": {
        "description": "Virtual Network Name"
      }
    },
    "subnetName": {
      "type": "string",
      "defaultValue": "azure_mysql_subnet",
      "metadata": {
        "description": "Subnet Name"
      }
    },
    "virtualNetworkRuleName": {
      "type": "string",
      "defaultValue": "AllowSubnet",
      "metadata": {
        "description": "Virtual Network RuleName"
      }
    },
    "vnetAddressPrefix": {
      "type": "string",
      "defaultValue": "10.0.0.0/16",
      "metadata": {
        "description": "Virtual Network Address Prefix"
      }
    },
    "subnetPrefix": {
      "type": "string",
      "defaultValue": "10.0.0.0/16",
      "metadata": {
        "description": "Subnet Address Prefix"
      }
    }
  },
  "variables": {
    "firewallrules": {
      "batch": {
        "rules": [
          {
            "Name": "rule1",
            "StartIpAddress": "0.0.0.0",
            "EndIpAddress": "255.255.255.255"
          },
          {
            "Name": "rule2",
            "StartIpAddress": "0.0.0.0",
            "EndIpAddress": "255.255.255.255"
          }
        ]
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Network/virtualNetworks",
      "apiVersion": "2020-06-01",
      "name": "[parameters('virtualNetworkName')]",
      "location": "[parameters('location')]",
      "properties": {
        "addressSpace": {
          "addressPrefixes": [
            "[parameters('vnetAddressPrefix')]"
          ]
        }
      },
      "resources": [
        {
          "type": "subnets",
          "apiVersion": "2020-06-01",
          "name": "[parameters('subnetName')]",
          "location": "[parameters('location')]",
          "dependsOn": [
            "[parameters('virtualNetworkName')]"
          ],
          "properties": {
            "addressPrefix": "[parameters('subnetPrefix')]"
          }
        }
      ]
    },
    {
      "type": "Microsoft.DBforMySQL/servers",
      "apiVersion": "2017-12-01",
      "name": "[parameters('serverName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuName')]",
        "tier": "[parameters('skuTier')]",
        "capacity": "[parameters('skuCapacity')]",
        "size": "[parameters('skuSizeMB')]",
        "family": "[parameters('skuFamily')]"
      },
      "properties": {
        "createMode": "Default",
        "version": "[parameters('mysqlVersion')]",
        "administratorLogin": "[parameters('administratorLogin')]",
        "administratorLoginPassword": "[parameters('administratorLoginPassword')]",
        "storageProfile": {
          "storageMB": "[parameters('skuSizeMB')]",
          "backupRetentionDays": "[parameters('backupRetentionDays')]",
          "geoRedundantBackup": "[parameters('geoRedundantBackup')]"
        }
      },
      "resources": [
        {
          "type": "virtualNetworkRules",
          "apiVersion": "2017-12-01",
          "name": "[parameters('virtualNetworkRuleName')]",
          "dependsOn": [
            "[resourceId('Microsoft.DBforMySQL/servers/', parameters('serverName'))]"
          ],
          "properties": {
            "virtualNetworkSubnetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]",
            "ignoreMissingVnetServiceEndpoint": true
          }
        }
      ]
    },
    {
      "type": "Microsoft.DBforMySQL/servers/firewallRules",
      "apiVersion": "2017-12-01",
      "name": "[concat(parameters('serverName'),'/',variables('firewallrules').batch.rules[copyIndex()].Name)]",
      "location": "[parameters('location')]",
      "copy": {
        "name": "firewallRulesCopy",
        "mode": "Serial",
        "batchSize": 1,
        "count": "[length(variables('firewallrules').batch.rules)]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.DBforMySQL/servers/', parameters('serverName'))]"
      ],
      "properties": {
        "StartIpAddress": "[variables('firewallrules').batch.rules[copyIndex()].StartIpAddress]",
        "EndIpAddress": "[variables('firewallrules').batch.rules[copyIndex()].EndIpAddress]"
      }
    }
  ]
}

In de sjabloon zijn vijf Azure-resources gedefinieerd:

Meer Azure Database for MySQL-sjabloonvoorbeelden vindt u in de galerie voor Azure-quickstartsjablonen.

De sjabloon implementeren

Selecteer de volgende koppeling om de Azure Database for MySQL-serversjabloon te implementeren in de Azure-portal:

Implementeren in Azure

Doe het volgende op de pagina Azure Database for MySQL implementeren met VNet:

  1. Selecteer voor Resourcegroep de optie Nieuwe maken, voer een naam in voor de nieuwe resourcegroep en selecteer OK.

  2. Als u een nieuwe resourcegroep hebt gemaakt, selecteert u een Locatie voor de resourcegroep en de nieuwe server.

  3. Voer gegevens bij Servernaam, Aanmelden beheerder en Wachtwoord aanmelden beheerder in.

    Azure Database for MySQL implementeren met VNet-venster, Azure-quickstart-sjabloon, Azure-portal

  4. Wijzig desgewenst de andere standaardinstellingen:

    • Abonnement: het Azure abonnement dat u wilt gebruiken voor de server.
    • SKU-capaciteit: de capaciteit van de vCore, die 2 (de standaardinstelling), 4, 8, 16, 32 of 64 kan zijn.
    • SKU-naam: het voorvoegsel van de SKU-laag, de SKU-familie en de SKU-capaciteit, verbonden door middel van onderstrepingstekens, zoals B_Gen5_1, GP_Gen5_2 (de standaardinstelling) of MO_Gen5_32.
    • SKU-grootte MB: de opslaggrootte, in megabytes, van de Azure Database for MySQL-server (standaard 5120).
    • SKU-laag: de implementatielaag, zoals Basic, GeneralPurpose (de standaardinstelling) of MemoryOptimized.
    • SKU-familie: Gen4 of Gen5 (de standaardinstelling), wat de hardwaregeneratie voor de serverimplementatie aangeeft.
    • Mysql-versie: de versie van de MySQL-server die u wilt implementeren, zoals 5,6 of 5,7 (de standaardinstelling).
    • Retentiedagen van back-ups: de gewenste periode voor het bewaren van geo-redundante back-ups, in dagen (standaard 7).
    • Geografisch redundante back-up: Ingeschakeld of Uitgeschakeld (de standaardinstelling), afhankelijk van de vereisten voor geo-herstel na noodgevallen (geo-DR).
    • Naam van virtueel netwerk: de naam van het virtuele netwerk (standaard azure_mysql_vnet).
    • Subnetnaam: de naam van het subnet (standaard azure_mysql_subnet).
    • Naam van regel van het virtuele netwerk: de naam van de regel van het virtuele netwerk waarmee het subnet wordt toegestaan (standaard AllowSubnet).
    • Adresvoorvoegsel VNet: het adresvoorvoegsel voor het virtuele netwerk (standaard 10.0.0.0/16).
    • Subnetvoorvoegsel: het adresvoorvoegsel voor het subnet (standaard 10.0.0.0/16).
  5. Lees de voorwaarden en schakel vervolgens het selectievakje Ik ga akkoord met de bovenstaande voorwaarden in.

  6. Selecteer Aankoop.

Geïmplementeerde resources bekijken

Volg deze stappen om een overzicht van uw nieuwe Azure Database for MySQL-server te bekijken:

  1. Zoek en selecteer Azure Database for MySQL-servers in de Azure-portal.

  2. Selecteer uw nieuwe server in de lijst met databases. De pagina Overzicht voor uw nieuwe Azure Database for MySQL-server wordt weergegeven.

ARM-sjabloon exporteren vanuit de portal

U kunt een ARM-sjabloon exporteren vanuit de Azure Portal. Er zijn twee manieren om een sjabloon te exporteren:

Wanneer u de sjabloon exporteert, ziet u in de sectie van de MySQL-serverresource dat en uit veiligheidsoverwegingen "properties":{ } administratorLogin niet worden administratorLoginPassword opgenomen. U MOET deze parameters toevoegen aan uw sjabloon voordat u de sjabloon implementeert, anders mislukt de sjabloon.

"resources": [
    {
      "type": "Microsoft.DBforMySQL/servers",
      "apiVersion": "2017-12-01",
      "name": "[parameters('servers_name')]",
      "location": "southcentralus",
      "sku": {
                "name": "B_Gen5_1",
                "tier": "Basic",
                "family": "Gen5",
                "capacity": 1
            },
      "properties": {
        "administratorLogin": "[parameters('administratorLogin')]",
        "administratorLoginPassword": "[parameters('administratorLoginPassword')]",

Resources opschonen

Als de resourcegroep niet meer nodig is, verwijdert u deze. Hierdoor worden ook de resources in de resourcegroep verwijderd.

  1. Zoek en selecteer Resourcegroepen in Azure Portal.

  2. Kies in de lijst met resourcegroepen de naam van uw resourcegroep.

  3. Selecteer op de pagina Overzicht van uw resourcegroep de optie Resourcegroep verwijderen.

  4. Typ de naam van de resourcegroep in het bevestigingsvenster. Selecteer vervolgens Verwijderen.

Volgende stappen

Zie voor een stapsgewijze zelfstudie die u door het proces van het maken van een ARM-sjabloon leidt: