Tutorial: Adicionar saídas ao seu modelo do ARM
Neste tutorial, você aprenderá a retornar um valor por meio do modelo do ARM (modelo do Azure Resource Manager). Você usa saídas quando precisa de um valor para um recurso que você implantar. Este tutorial leva 7 minutos para ser concluído.
Pré-requisitos
Recomendamos que você conclua o tutorial sobre variáveis, não sendo, porém, necessário.
É necessário ter o Visual Studio Code com a extensão das Ferramentas do Resource Manager e o Azure PowerShell ou a CLI do Azure. Para obter mais informações, confira Ferramentas de modelo.
Examinar 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
}
}
]
}
Ele implanta uma conta de armazenamento, mas não retorna nenhuma informação sobre ela. Talvez seja necessário capturar as propriedades de seu novo recurso para que elas estejam disponíveis posteriormente para referência.
Adicionar saídas
Você pode usar saídas para retornar valores do modelo. Por exemplo, pode ser útil obter os pontos de extremidade para sua nova conta de armazenamento.
O exemplo a seguir realça a alteração em seu modelo para adicionar um valor de saída. Copie o arquivo inteiro e substitua o modelo pelo 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]"
}
}
}
Há alguns itens importantes a serem observados sobre o valor de saída adicionado.
O tipo de valor retornado é definido como object
, o que significa que ele retorna um objeto JSON.
Ele usa a função reference para obter o estado do runtime da conta de armazenamento. Para obter o estado do runtime de um recurso, passe o nome ou a ID de um recurso. Nesse caso, você usa a mesma variável que usou para criar o nome da conta de armazenamento.
Por fim, ela retorna a propriedade primaryEndpoints
da conta de armazenamento.
Implantar modelo
Você está pronto para implantar o modelo e examinar o valor retornado.
Caso você não tenha criado o grupo de recursos, confira 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 addoutputs `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storagePrefix "store" `
-storageSKU Standard_LRS
Na saída do comando de implantação, é possível ver um objeto semelhante ao seguinte exemplo somente se a saída 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/"
}
Observação
Se a implantação falhar, use a opção verbose
para obter informações sobre os recursos que estão sendo criados. Use a opção debug
para obter mais informações de depuração.
Examinar seu trabalho
Você fez muito nos últimos seis tutoriais. Vamos reservar um momento para examinar o que você fez. Você criou um modelo com parâmetros que são fáceis de fornecer. O modelo é reutilizável em ambientes diferentes porque permite a personalização e cria dinamicamente valores necessários. Ele também retorna informações sobre a conta de armazenamento que você pode usar em seu script.
Agora, vamos examinar o grupo de recursos e o histórico de implantação.
Entre no portal do Azure.
No menu à esquerda, selecione Grupos de recursos.
Selecione o grupo de recursos no qual você fez a implantação.
Dependendo das etapas que você fez, você deve ter pelo menos uma e, talvez, várias contas de armazenamento no grupo de recursos.
Você também deve ter várias implantações bem-sucedidas listadas no histórico. Selecione esse link.
Você vê todas as implantações no histórico. Selecione a implantação chamada addoutputs.
Você pode examinar as entradas.
Você pode examinar as saídas.
Você pode examinar o modelo.
Limpar os recursos
Se você estiver passando para o próximo tutorial, não será necessário excluir o grupo de recursos.
Se estiver parando agora, talvez você queira excluir o grupo de recursos.
- No portal do Azure, selecione Grupos de recursos no menu à esquerda.
- Digite o nome do grupo de recursos no campo de texto Filtro para qualquer campo....
- Marque a caixa ao lado de myResourceGroup e selecione myResourceGroup ou o nome do seu grupo de recursos.
- Escolha Excluir grupo de recursos no menu superior.
Próximas etapas
Neste tutorial, você adicionou um valor retornado ao modelo. No próximo tutorial, você aprenderá a exportar um modelo e a usar partes desse modelo exportado em seu modelo.