Aracılığıyla paylaş


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

Azure Hızlı Başlangıç Şablonları , topluluk tarafından sağlanan ş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.

Resource Manager Araçları uzantısıyla ve Azure PowerShell veya Azure Command-Line Arabirimi (CLI) ile Visual Studio Code 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": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2021-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çin.

  4. azuredeploy.json dosyasını seçin.

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

    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": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2021-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": "2021-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 webAppPortalName sahip olmayı önlemek için değişkeni ile "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]""webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"güncelleştirilir.

Kaynak tanımını tanımdan Microsoft.Web/sites ayırmak için tanımın sonuna Microsoft.Web/serverfarms bir virgül ekleyin.

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

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

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

Şablon dağıtma

Ş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

Not

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

Kaynakları temizleme

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

Şimdi durduruyorsanız kaynak grubunu silmek isteyebilirsiniz.

  1. Azure portal 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 grubu adınızı seçin.
  4. Üstteki menüden Kaynak grubunu sil'i seçin.

Sonraki adımlar

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