Share via


Tutorial: Utilizar Modelos de Início Rápido do Azure

Os Modelos de Início Rápido do Azure são um repositório de modelos de contribuição da comunidade. Pode utilizar os modelos de exemplo no desenvolvimento de modelos. Neste tutorial, vai encontrar uma definição de recurso de site e adicioná-la ao seu próprio modelo. Esta instrução demora 12 minutos a ser concluída.

Pré-requisitos

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

Tem de ter o Visual Studio Code com a extensão ferramentas do Resource Manager e Azure PowerShell ou a Interface de Command-Line do Azure (CLI). Para obter mais informações, veja ferramentas de modelo.

Rever modelo

No final do tutorial anterior, o modelo tinha o seguinte ficheiro 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": "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]"
    }
  }
}

Este modelo funciona para implementar contas de armazenamento e planos do serviço de aplicações, mas poderá querer adicionar um site ao mesmo. Pode utilizar modelos pré-criados para descobrir rapidamente o JSON necessário para implementar um recurso.

Localizar modelo

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

  2. Selecione o mosaico com o título Implementar uma aplicação Web básica do Linux. Se tiver dificuldades em encontrá-lo, eis a ligação direta.

  3. Selecione Procurar no GitHub.

  4. Selecione azuredeploy.json.

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

    Resource Manager web site de início rápido do modelo

Rever modelo existente

Intercale 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": "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]"
    }
  }
}

O nome da aplicação Web tem de ser exclusivo em todo o Azure. Para evitar ter 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 Microsoft.Web/serverfarms definição para separar a definição de recurso da Microsoft.Web/sites definição.

Existem algumas funcionalidades importantes a ter em conta neste novo recurso.

Tem um elemento com o nome dependsOn definido para o plano do serviço de aplicações. Esta definição é necessária porque o plano do serviço de aplicações tem de existir antes de a aplicação Web ser criada. O dependsOn elemento indica Resource Manager como ordenar os recursos para implementação.

A serverFarmId propriedade utiliza a função resourceId . Esta função obtém o identificador exclusivo de um recurso. Neste caso, obtém o identificador exclusivo do plano do serviço de aplicações. A aplicação Web está associada a um plano específico do serviço de aplicações.

Implementar o modelo

Utilize a CLI do Azure ou Azure PowerShell para implementar um modelo.

Se ainda não criou o grupo de recursos, veja Criar grupo de recursos. O exemplo pressupõe que definiu a variável templateFile para o caminho para o ficheiro de modelo, conforme mostrado no primeiro tutorial.

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

Nota

Se a implementação falhar, utilize o verbose comutador para obter informações sobre os recursos que está a criar. Utilize o debug comutador para obter mais informações sobre a depuração.

Limpar os recursos

Se estiver a avançar para o próximo tutorial, não precisa de eliminar o grupo de recursos.

Se estiver a parar agora, poderá querer eliminar o grupo de recursos.

  1. Na portal do Azure, selecione Grupos de recursos no menu esquerdo.
  2. Escreva o nome do grupo de recursos no campo de texto Filtrar por qualquer campo...
  3. Selecione a caixa junto a myResourceGroup e selecione myResourceGroup ou o nome do grupo de recursos.
  4. Selecione Eliminar grupo de recursos no menu superior.

Passos seguintes

Aprendeu a utilizar um modelo de início rápido para o desenvolvimento de modelos. No próximo tutorial, vai adicionar etiquetas aos recursos.