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
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.
Selecione Procurar no GitHub.
Selecione azuredeploy.json.
Reveja o modelo. Procure o
Microsoft.Web/sites
recurso.
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.
- Na portal do Azure, selecione Grupos de recursos no menu esquerdo.
- Escreva o nome do grupo de recursos no campo de texto Filtrar por qualquer campo...
- Selecione a caixa junto a myResourceGroup e selecione myResourceGroup ou o nome do grupo de recursos.
- 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.