Partilhar via


Tutorial: Usar modelos de início rápido do Azure

Os Modelos de Início Rápido do Azure são um repositório de modelos contribuídos pela comunidade. Você pode usar os modelos de exemplo no desenvolvimento do modelo. Neste tutorial, você encontra uma definição de recurso de site e a adiciona ao seu próprio modelo. Esta instrução leva 12 minutos para ser concluída.

Pré-requisitos

Recomendamos que você conclua o tutorial sobre modelos exportados, mas não é necessário.

Você precisa ter o Visual Studio Code e o Azure PowerShell ou a CLI do Azure. Para obter mais informações, consulte Ferramentas de modelo.

Modelo de revisão

No final do tutorial anterior, seu modelo tinha o seguinte arquivo JSON:

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

Este modelo funciona para implantar contas de armazenamento e planos de serviço de aplicativo, mas talvez você queira adicionar um site a ele. Você pode usar modelos pré-criados para descobrir rapidamente o JSON necessário para implantar um recurso.

Encontrar modelo

  1. Abrir Modelos de Início Rápido do Azure

  2. Selecione o bloco com o título Implantar um aplicativo Web Linux básico. Se você tiver problemas para encontrá-lo, aqui está o link direto.

  3. Selecione Navegar no GitHub.

  4. Selecione azuredeploy.json.

  5. Analise o modelo. Procure o Microsoft.Web/sites recurso.

    Website de introdução rápida do modelo do Gestor de Recursos

Revisar modelo existente

Mescle o modelo de início rápido com o modelo existente:

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

O nome do aplicativo Web precisa ser exclusivo no Azure. Para evitar nomes duplicados, a webAppPortalName variável é atualizada de "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]" para "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]".

Adicione uma vírgula no final da definição de Microsoft.Web/serverfarms para separar a definição de recurso da definição de Microsoft.Web/sites.

Há algumas características importantes a serem observadas neste novo recurso.

Ele tem um elemento chamado dependsOn que está definido para o plano de serviço do aplicativo. Essa configuração é necessária porque o plano de serviço de aplicativo precisa existir antes que o aplicativo Web seja criado. O dependsOn elemento informa ao Resource Manager como ordenar os recursos para implantação.

A serverFarmId propriedade usa a função resourceId . Esta função obtém o identificador exclusivo de um recurso. Nesse caso, ele obtém o identificador exclusivo para o plano de serviço do aplicativo. O aplicativo Web está associado a um plano de serviço de aplicativo específico.

Implementar o modelo

Use a CLI do Azure ou o Azure PowerShell para implantar um modelo.

Se você não criou o grupo de recursos, consulte Criar grupo de recursos. O exemplo pressupõe que você tenha definido a variável templateFile como o caminho para o arquivo de modelo, conforme mostrado no primeiro tutorial.

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

Observação

Se a implantação falhar, use o verbose switch para obter informações sobre os recursos que você está criando. Use o comando debug para obter mais informações para depuração.

Limpeza de recursos

Se você estiver passando para o próximo tutorial, não precisará excluir o grupo de recursos.

Se estiveres a parar agora, podes querer eliminar o grupo de recursos.

  1. No portal do Azure, selecione Grupos de recursos no menu à esquerda.
  2. Escreva o nome do grupo de recursos no campo Filtrar por qualquer campo... .
  3. Marque a caixa ao lado de myResourceGroup e selecione myResourceGroup ou o nome do seu grupo de recursos.
  4. Selecione Excluir grupo de recursos no menu superior.

Próximos passos

Você aprendeu como usar um template de início rápido para o desenvolvimento de templates. No próximo tutorial, você adiciona tags aos recursos.