Tutorial: Gunakan templat Azure Quickstart

Templat Azure Quickstart adalah repositori templat yang disumbangkan komunitas. Anda dapat menggunakan contoh templat dalam pengembangan templat Anda. Dalam tutorial ini, Anda menemukan definisi sumber daya situs web, dan menambahkannya ke template Anda sendiri. Dibutuhkan waktu sekitar 12 menit untuk menyelesaikannya.

Prasyarat

Sebaiknya selesaikan tutorial tentang templat yang diekspor, tetapi itu tidak wajib.

Anda harus memiliki Visual Studio Code dengan ekstensi Resource Manager, dan Azure PowerShell atau Azure CLI. Untuk informasi selengkapnya, lihat alat templat.

Meninjau templat

Pada bagian akhir di tutorial sebelumnya, templat Anda memiliki JSON berikut:

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

Templat ini berfungsi untuk menerapkan akun penyimpanan dan paket layanan aplikasi, tetapi Anda mungkin ingin menambahkan situs web ke dalamnya. Anda dapat menggunakan templat siap pakai untuk menemukan JSON yang diperlukan untuk menerapkan sumber daya dengan cepat.

Temukan templat

  1. Buka templat Azure Quickstart

  2. Di Pencarian, masukkan terapkan aplikasi web linux.

  3. Pilih petak peta dengan judul Terapkan aplikasi web Linux dasar. Jika Anda kesulitan menemukannya, ini tautan langsungnya.

  4. Pilih Telusuri di GitHub.

  5. Pilih azuredeploy.json.

  6. Meninjau templat. Secara khusus, cari sumber daya Microsoft.Web/sites.

    Resource Manager template quickstart web site

Merevisi templat yang sudah ada

Gabungkan templat mulai cepat dengan templat yang sudah ada:

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

Nama aplikasi web harus unik di seluruh Azure. Untuk mencegah memiliki nama duplikat, variabel webAppPortalName telah diperbarui dari "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]" ke "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]".

Tambahkan koma di akhir definisi Microsoft.Web/serverfarms untuk memisahkan definisi sumber daya dari definisi Microsoft.Web/sites.

Ada beberapa fitur penting yang perlu diperhatikan dalam sumber daya baru ini.

Anda akan melihat ada elemen bernama dependsOn yang diatur ke paket layanan aplikasi. Pengaturan ini diperlukan karena paket layanan aplikasi harus ada sebelum aplikasi web dibuat. Elemen dependsOn ini memberi tahu Resource Manager cara memesan sumber daya untuk penerapan.

Properti serverFarmId menggunakan fungsi resourceId. Fungsi ini mendapatkan pengidentifikasi unik untuk sumber daya. Dalam hal ini, fungsi mendapatkan pengenalan unik untuk paket layanan aplikasi. Aplikasi web dikaitkan dengan satu paket layanan aplikasi tertentu.

Menerapkan templat

Gunakan Azure CLI atau Azure PowerShell untuk menyebarkan templat.

Jika Anda belum membuat grup sumber daya, lihat Membuat grup sumber daya. Contoh itu mengasumsikan bahwa Anda telah mengatur variabel templateFile ke jalur file templat, seperti yang ditunjukkan dalam tutorial pertama.

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

Catatan

Jika penyebaran gagal, gunakan tombol verbose untuk mendapatkan informasi tentang sumber daya yang dibuat. Gunakan tombol debug untuk mendapatkan informasi lebih lanjut tentang penelusuran kesalahan.

Membersihkan sumber daya

Jika Anda beralih ke tutorial berikutnya, Anda tidak perlu menghapus grup sumber daya.

Jika berhenti sekarang, Anda mungkin ingin membersihkan sumber daya yang Anda sebarkan dengan menghapus grup sumber daya.

  1. Dari portal Microsoft Azure, pilih Grup sumber daya dari menu sebelah kiri.
  2. Masukkan nama grup sumber daya di bidang Filter menurut nama.
  3. Pilih nama grup sumber daya.
  4. Pilih Hapus grup sumber daya dari menu atas.

Langkah berikutnya

Anda mempelajari cara menggunakan templat mulai cepat untuk pengembangan templat Anda. Dalam tutorial berikutnya, Anda menambahkan tag ke sumber daya.