Aracılığıyla paylaş


Öğretici: Azure Hızlı Başlangıç Şablonlarını kullanma

Azure Hızlı Başlangıç Şablonları , topluluk tarafından katkıda bulunan şablonların bir deposudur. Şablon geliştirmenizde örnek şablonları kullanabilirsiniz. Bu öğreticide bir web sitesi kaynak tanımı bulur ve bunu kendi şablonunuza eklersiniz. Bu yönergenin tamamlanması 12 dakika sürer.

Önkoşullar

Dışarı aktarılan şablonlarla ilgili öğreticiyi tamamlamanızı öneririz, ancak gerekli değildir.

Visual Studio Code'a ve Azure PowerShell'e veya Azure CLI'ya sahip olmanız gerekir. Daha fazla bilgi için bkz. şablon araçları.

Şablonu gözden geçirme

Önceki öğreticinin sonunda şablonunuz aşağıdaki JSON dosyasına sahipti:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "exampleplan"
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2025-03-01",
      "name": "[parameters('appServicePlanName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "B1",
        "tier": "Basic",
        "size": "B1",
        "family": "B",
        "capacity": 1
      },
      "kind": "linux",
      "properties": {
        "perSiteScaling": false,
        "reserved": true,
        "targetWorkerCount": 0,
        "targetWorkerSizeId": 0
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Bu şablon depolama hesaplarını ve app service planlarını dağıtmak için çalışır, ancak buna bir web sitesi eklemek isteyebilirsiniz. Bir kaynağı dağıtmak için gereken JSON'ı hızla bulmak için önceden oluşturulmuş şablonları kullanabilirsiniz.

Şablon bulma

  1. Azure Hızlı Başlangıç Şablonları'nı açma

  2. Temel bir Linux web uygulaması dağıtma başlığına sahip kutucuğu seçin. Bulma konusunda sorun yaşıyorsanız doğrudan bağlantı aşağıdadır.

  3. GitHub'da Gözat seçeneğini seçin.

  4. azuredeploy.jsonöğesini seçin.

  5. Şablonu gözden geçirin. Microsoft.Web/sites kaynağını arayın.

    Resource Manager şablonu hızlı başlangıç web sitesi

Var olan şablonu düzelt

Hızlı başlangıç şablonunu mevcut şablonla birleştirin:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "exampleplan"
    },
    "webAppName": {
      "type": "string",
      "metadata": {
        "description": "Base name of the resource such as web app name and app service plan "
      },
      "minLength": 2
    },
    "linuxFxVersion": {
      "type": "string",
      "defaultValue": "php|7.0",
      "metadata": {
        "description": "The Runtime stack of current web app"
      }
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]",
    "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2025-03-01",
      "name": "[parameters('appServicePlanName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "B1",
        "tier": "Basic",
        "size": "B1",
        "family": "B",
        "capacity": 1
      },
      "kind": "linux",
      "properties": {
        "perSiteScaling": false,
        "reserved": true,
        "targetWorkerCount": 0,
        "targetWorkerSizeId": 0
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2025-03-01",
      "name": "[variables('webAppPortalName')]",
      "location": "[parameters('location')]",
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
      ],
      "kind": "app",
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
        "siteConfig": {
          "linuxFxVersion": "[parameters('linuxFxVersion')]"
        }
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Web uygulaması adının Azure genelinde benzersiz olması gerekir. Yinelenen adlara sahip olunmasını önlemek için webAppPortalName değişkeni "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]"'den "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"'ye güncellenir.

Microsoft.Web/serverfarms tanımının sonuna bir virgül ekleyerek, kaynak tanımını Microsoft.Web/sites tanımından ayırın.

Bu yeni kaynakta dikkat edilmesi gereken birkaç önemli özellik vardır.

App Service planına ayarlanmış adı dependsOn olan bir öğesi vardır. Web uygulaması oluşturulmadan önce app service planının mevcut olması gerektiğinden bu ayar gereklidir. öğesi Resource dependsOn Manager'a dağıtım için kaynakların nasıl sıralanması gerektiğini söyler.

özelliği serverFarmId işlevini kullanır. Bu işlev bir kaynağın benzersiz tanımlayıcısını alır. Bu durumda, uygulama hizmet planının benzersiz tanımlayıcısını elde eder. Web uygulaması belirli bir app service planıyla ilişkilendirilir.

Şablonu dağıt

Şablon dağıtmak için Azure CLI veya Azure PowerShell kullanın.

Kaynak grubunu oluşturmadıysanız bkz. Kaynak grubu oluşturma. Örnekte, ilk öğreticide gösterildiği gibi templateFile değişkenini şablon dosyasının yoluna ayarladığınız varsayılır.

New-AzResourceGroupDeployment `
  -Name addwebapp `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS `
  -webAppName demoapp

Uyarı

Dağıtım başarısız olursa, oluşturduğunuz kaynaklar hakkında bilgi almak için verbose anahtarını kullanın. debug Hata ayıklama hakkında daha fazla bilgi edinmek için anahtarını kullanın.

Kaynakları temizle

Sonraki öğreticiye geçiyorsanız kaynak grubunu silmeniz gerekmez.

Şimdi durduruyorsanız kaynak grubunu silmek isteyebilirsiniz.

  1. Azure portalından soldaki menüden Kaynak grupları'nı seçin.
  2. Herhangi bir alan için filtre uygula... metin alanına kaynak grubu adını yazın.
  3. myResourceGroup'un yanındaki kutuyu işaretleyin ve myResourceGroup veya kaynak grubunuzun adını seçin.
  4. Üstteki menüden Kaynak grubunu sil'i seçin.

Sonraki Adımlar

Şablon geliştirmeniz için hızlı başlangıç şablonu kullanmayı öğrendiniz. Sonraki öğreticide kaynaklara etiketler ekleyebilirsiniz.