Bagikan melalui


Tutorial: Menyebarkan template ARM lokal

Pelajari cara menyebarkan template Azure Resource Manager (template ARM) dari komputer lokal Anda. Dibutuhkan sekitar 8 menit untuk menyelesaikannya.

Tutorial ini adalah yang pertama dari seri. Saat Anda maju melalui seri, Anda memodulasi templatee dengan membuat templatee yang ditautkan, Anda menyimpan template yang ditautkan di akun penyimpanan, dan mengamankan templatee yang ditautkan dengan menggunakan token SAS, dan Anda belajar cara membuat alur DevOps untuk menyebarkan template. Seri ini berfokus pada penyebaran template. Jika Anda ingin mempelajari penyebaran template, lihat tutorial pemula.

Dapatkan alat

Mari mulai dengan memastikan Anda memiliki alat yang Anda butuhkan untuk menyebarkan template.

Penyebaran baris perintah

Anda memerlukan Azure PowerShell atau Azure CLI untuk menyebarkan templat. Untuk petunjuk penginstalan, lihat:

Setelah menginstal Azure PowerShell atau Azure CLI, pastikan Anda masuk untuk pertama kalinya. Untuk bantuan, lihat Masuk - PowerShell atau Masuk - Azure CLI.

Editor (Opsional)

Templat adalah file JSON. Untuk meninjau/mengedit template, Anda memerlukan editor JSON yang baik. Kami menyarankan Visual Studio Code dengan ekstensi Alat Resource Manager. Jika Anda perlu menginstal alat ini, lihat Mulai cepat: Membuat templat ARM dengan Visual Studio Code.

Meninjau templat

template tersebut menyebarkan akun penyimpanan, paket layanan aplikasi, dan aplikasi web. Jika Anda tertarik untuk membuat template, Anda dapat mengikuti tutorial tentang template Mulai Cepat. Namun tidak diperlukan untuk menyelesaikan tutorial ini.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "projectName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11,
      "metadata": {
        "description": "Specify a project name that is used to generate resource names."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specify a location for the resources."
      }
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ],
      "metadata": {
        "description": "Specify the storage account type."
      }
    },
    "linuxFxVersion": {
      "type": "string",
      "defaultValue": "php|7.0",
      "metadata": {
        "description": "Specify the Runtime stack of current web app"
      }
    }
  },
  "variables": {
    "storageAccountName": "[format('{0}{1}', parameters('projectName'), uniqueString(resourceGroup().id))]",
    "webAppName": "[format('{0}WebApp', parameters('projectName'))]",
    "appServicePlanName": "[format('{0}Plan', parameters('projectName'))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2023-01-01",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2022-09-01",
      "name": "[variables('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": "2022-09-01",
      "name": "[variables('webAppName')]",
      "location": "[parameters('location')]",
      "kind": "app",
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
        "siteConfig": {
          "linuxFxVersion": "[parameters('linuxFxVersion')]"
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]"
      ]
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2023-01-01').primaryEndpoints]"
    }
  }
}

Penting

Nama akun penyimpanan harus unik, memiliki panjang antara 3 sampai 24 karakter, dan hanya menggunakan angka dan huruf kecil. Variabel storageAccountName ​​templat sampel menggabungkan maksimum parameter projectName dari 11 karakter dengan nilai uniqueString berisi 13 karakter.

Simpan salinan template ke komputer lokal Anda dengan ekstensi .json, contohnya, azuredeploy.json. Anda menyebarkan template ini nanti dalam tutorial.

Masuk ke Azure

Untuk mulai bekerja dengan Azure PowerShell/Azure CLI untuk menyebarkan template, masuk dengan info masuk Azure Anda.

Connect-AzAccount

Jika Anda memiliki beberapa langganan Azure, pilih langganan yang ingin Anda gunakan. Ganti [SubscriptionID/SubscriptionName] dan kurung siku [] dengan informasi langganan Anda:

Set-AzContext [SubscriptionID/SubscriptionName]

Buat grup sumber daya

Saat Anda menyebarkan templat, Anda menentukan grup sumber daya yang akan berisi sumber daya. Sebelum menjalankan perintah penyebaran, buat grup sumber daya dengan Azure CLI atau Azure PowerShell. Pilih tab di bagian kode berikut untuk memilih antara Azure PowerShell dan Azure CLI. Contoh CLI dalam artikel ini ditulis untuk shell Bash.

$projectName = Read-Host -Prompt "Enter a project name that is used to generate resource and resource group names"
$resourceGroupName = "${projectName}rg"

New-AzResourceGroup `
  -Name $resourceGroupName `
  -Location "Central US"

Menyebarkan templat

Gunakan satu atau kedua opsi penyebaran untuk menyebarkan template.

$projectName = Read-Host -Prompt "Enter the same project name"
$templateFile = Read-Host -Prompt "Enter the template file path and file name"
$resourceGroupName = "${projectName}rg"

New-AzResourceGroupDeployment `
  -Name DeployLocalTemplate `
  -ResourceGroupName $resourceGroupName `
  -TemplateFile $templateFile `
  -projectName $projectName `
  -verbose

Untuk mempelajari selengkapnya tentang penyebaran template dengan menggunakan Azure PowerShell, lihat Menyebarkan sumber daya dengan template ARM dan Azure PowerShell.

Membersihkan sumber daya

Bersihkan sumber daya yang Anda terapkan 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 menyebarkan template lokal. Dalam tutorial berikutnya, Anda memisahkan template menjadi template utama dan template yang ditautkan, dan belajar cara menyimpan dan mengamankan template yang ditautkan.