Hızlı Başlangıç: MySQL için Azure Veritabanı sunucusu oluşturmak için ARM şablonu kullanma

MySQL için Azure Veritabanı, bulutta yüksek oranda kullanılabilir MySQL veritabanlarını çalıştırmak, yönetmek ve ölçeklendirmek için kullanabileceğiniz bir yönetilen hizmettir. Bu hızlı başlangıçta, sanal ağ tümleştirmesi ile Azure Resource Manager sunucusu oluşturmak için bir MySQL için Azure Veritabanı şablonu (ARM şablonu) kullanırsınız. Sunucuyu Azure portal, Azure CLI veya Azure PowerShell.

ARM şablonu projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Bu şablonda, bildirim temelli sözdizimi kullanılır. Bildirim temelli sözdiziminde, dağıtım oluşturmak için programlama komutlarının dizisini yazmadan amaçladığınız dağıtımı ifade edersiniz.

Ortamınız önkoşulları karşılıyorsa ve ARM şablonlarını kullanma hakkında bilginiz varsa, Azure’a dağıtma düğmesini seçin. Şablon Azure portalda açılır.

Azure'a dağıtma

Önkoşullar

Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir tane oluşturun.

Şablonu gözden geçirme

MySQL için Azure Veritabanı sunucusu, tanımlı bir dizi işlem ve depolama kaynağı ile oluşturulur. Daha fazla bilgi edinmek için bkz. MySQL için Azure Veritabanı katmanları. Sunucu, Azure kaynak grubu içinde oluşturulur.

Bu hızlı başlangıçta kullanılan şablon Azure Hızlı Başlangıç Şablonlarından alınmıştır.

{
  "$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]"
      }
    }
  ]
}

Şablon beş Azure kaynağı tanımlar:

Şablon MySQL için Azure Veritabanı daha fazla bilgi için hızlı başlangıç şablon galerisinde bulabilirsiniz.

Şablonu dağıtma

MySQL için Azure Veritabanı sunucusu şablonunu Azure portal:

Azure’a dağıtın

Sanal ağ ile MySQL için Azure Veritabanı sayfasında:

  1. Kaynak grubu için Yeni oluştur'a tıklayın, yeni kaynak grubu için bir ad girin ve Tamam'ı seçin.

  2. Yeni bir kaynak grubu oluşturduysanız, kaynak grubu ve yeni sunucu için bir Konum seçin.

  3. Sunucu Adı, Yönetici Oturum Açma Ve Yönetici Oturum Açma Parolası girin.

    Sanal MySQL için Azure Veritabanı penceresi, Azure hızlı başlangıç şablonu ve Azure portal

  4. Şunları yapmak için diğer varsayılan ayarları değiştirin:

    • Abonelik: Sunucu için kullanmak istediğiniz Azure aboneliği.
    • Sku Kapasitesi: 2 (varsayılan), 4, 8, 16, 32 veya 64 olan sanal çekirdek kapasitesi.
    • Sku Adı: SKU katmanı ön eki, SKU ailesi ve SKU kapasitesi, B_Gen5_1, GP_Gen5_2 (varsayılan) veya MO_Gen5_32.
    • Sku Boyutu MB: Depolama sunucusunun megabayt cinsinden depolama MySQL için Azure Veritabanı (varsayılan olarak 5120).
    • Sku Katmanı: Temel , GeneralPurpose (varsayılan) veya MemoryOptimized gibi dağıtım katmanı.
    • Sku Ailesi: Sunucu dağıtımı için donanım oluşturmayı gösteren Gen4 veya Gen5 (varsayılan).
    • Mysql Sürümü: Dağıtacak MySQL sunucusunun sürümü, örneğin 5.6 veya 5.7 (varsayılan).
    • Yedekleme Saklama Günleri: coğrafi olarak yedekli yedekleme saklama için gün olarak istenen süre (varsayılan olarak 7).
    • Coğrafi Olarak Yedekli Yedekleme: Coğrafi olağanüstü durum kurtarma (Geo-DR) gereksinimlerine bağlı olarak Etkin veya Devre Dışı (varsayılan).
    • Sanal Ağ Adı: Sanal ağın adı (varsayılan azure_mysql_vnet).
    • Alt Ağ Adı: alt ağın adı (varsayılan azure_mysql_subnet).
    • Sanal Ağ Kuralı Adı: Alt ağa izin veren sanal ağ kuralının adı (varsayılan AllowSubnet).
    • Sanal Ağ Adres Ön Eki: Sanal ağın adres ön eki (varsayılan olarak 10.0.0.0/16).
    • Alt Ağ Ön Eki: alt ağın adres ön eki (varsayılan olarak 10.0.0.0/16).
  5. Hüküm ve koşulları okuyun ve ardından Yukarıda belirtilen hüküm ve koşulları kabul ediyorum'ı seçin.

  6. Satın al'ı seçin.

Dağıtılan kaynakları gözden geçirme

Yeni sunucu sunucunuza genel bir bakış için MySQL için Azure Veritabanı izleyin:

  1. içinde Azure portalsunucuları için arama MySQL için Azure Veritabanı seçin.

  2. Veritabanı listesinde yeni sunucuyu seçin. Yeni sunucuya ilişkin Genel bakış MySQL için Azure Veritabanı görüntülenir.

ARM şablonunu portaldan dışarı aktarma

Arm şablonunu dosyadan dışarı Azure portal. Şablonu dışarı aktarmanın iki yolu vardır:

Şablonu dışarı aktarıyorsanız, MySQL sunucu kaynağının bölümünde ve 'nin güvenlik "properties":{ } administratorLogin administratorLoginPassword nedenleriyle dahil olmadığını fark edin. Şablonu dağıtmadan önce bu parametreleri şablonunuza eklemeniz GEREKİRİR, yoksa şablon başarısız olur.

"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')]",

Kaynakları temizleme

Artık gerekli olmadığı zaman kaynak grubunu silin. Bu kaynak grubu, kaynak grubunda bulunan kaynakları siler.

  1. Kaynak Azure portaliçin arama ve kaynak grupları'ı seçin.

  2. Kaynak grubu listesinde kaynak grubu adının adını seçin.

  3. Kaynak grubu grubunun Genel Bakış sayfasında Kaynak grubunu sil'i seçin.

  4. Onay iletişim kutusuna kaynak grubu adının yazın ve Sil'i seçin.

Sonraki adımlar

ARM şablonu oluşturma sürecinde size kılavuzluk eden adım adım bir öğretici için, bkz.: