Tutorial: Adicionar saídas ao seu modelo do ARM
Neste tutorial, vai aprender a devolver um valor do modelo do Azure Resource Manager (modelo do ARM). Utiliza saídas quando precisa de um valor para um recurso que implementa. Este tutorial demora 7 minutos a concluir.
Pré-requisitos
Recomendamos que conclua o tutorial sobre variáveis, mas não é necessário.
Tem de ter o Visual Studio Code com a extensão Resource Manager Tools 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 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]"
}
},
"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
}
}
]
}
Implementa uma conta de armazenamento, mas não devolve informações sobre a mesma. Poderá ter de capturar propriedades do novo recurso para que fiquem disponíveis mais tarde para referência.
Adicionar saídas
Pode utilizar saídas para devolver valores do modelo. Pode ser útil, por exemplo, obter os pontos finais da sua nova conta de armazenamento.
O exemplo seguinte realça a alteração ao modelo para adicionar um valor de saída. Copie todo o ficheiro e substitua o modelo pelo respetivo conteúdo.
{
"$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]"
}
},
"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
}
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
}
}
}
Existem alguns itens importantes a ter em conta sobre o valor de saída que adicionou.
O tipo de valor devolvido está definido como object
, o que significa que devolve um objeto JSON.
Utiliza a função de referência para obter o estado de runtime da conta de armazenamento. Para obter o estado de runtime de um recurso, transmita o nome ou ID de um recurso. Neste caso, vai utilizar a mesma variável que utilizou para criar o nome da conta de armazenamento.
Por fim, devolve a primaryEndpoints
propriedade da conta de armazenamento.
Implementar o modelo
Está pronto para implementar o modelo e ver o valor devolvido.
Se ainda não criou o grupo de recursos, veja Criar grupo de recursos. O exemplo pressupõe que definiu a templateFile
variável para o caminho para o ficheiro de modelo, conforme mostrado no primeiro tutorial.
New-AzResourceGroupDeployment `
-Name addoutputs `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storagePrefix "store" `
-storageSKU Standard_LRS
Na saída do comando de implementação, verá um objeto semelhante ao exemplo seguinte apenas se o resultado estiver no formato JSON:
{
"dfs": "https://storeluktbfkpjjrkm.dfs.core.windows.net/",
"web": "https://storeluktbfkpjjrkm.z19.web.core.windows.net/",
"blob": "https://storeluktbfkpjjrkm.blob.core.windows.net/",
"queue": "https://storeluktbfkpjjrkm.queue.core.windows.net/",
"table": "https://storeluktbfkpjjrkm.table.core.windows.net/",
"file": "https://storeluktbfkpjjrkm.file.core.windows.net/"
}
Nota
Se a implementação falhar, utilize o verbose
comutador para obter informações sobre os recursos que estão a ser criados. Utilize o debug
comutador para obter mais informações sobre a depuração.
Rever o seu trabalho
Fez muito nos últimos seis tutoriais. Vamos analisar o que fez. Criou um modelo com parâmetros fáceis de fornecer. O modelo é reutilizável em diferentes ambientes porque permite a personalização e cria dinamicamente os valores necessários. Também devolve informações sobre a conta de armazenamento que pode utilizar no script.
Agora, vamos ver o grupo de recursos e o histórico de implementações.
Inicie sessão no portal do Azure.
No menu esquerdo, selecione Grupos de recursos.
Selecione o grupo de recursos no qual implementou.
Consoante os passos que efetuou, deve ter pelo menos uma e talvez várias contas de armazenamento no grupo de recursos.
Também deve ter várias implementações bem-sucedidas listadas no histórico. Selecione essa ligação.
Verá todas as suas implementações no histórico. Selecione a implementação denominada addoutputs.
Pode rever as entradas.
Pode rever os resultados.
Pode rever o modelo.
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.
- No portal do Azure, selecione Grupos de recursos no menu esquerdo.
- Escreva o nome do grupo de recursos no campo de texto Filtro para 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
Neste tutorial, adicionou um valor devolvido ao modelo. No próximo tutorial, irá aprender a exportar um modelo e a utilizar partes desse modelo exportado no seu modelo.