Tutorial: Criar vários instâncias de recurso com os modelos do ARM
Saiba como iterar no seu modelo do ARM (modelo do Azure Resource Manager) para criar várias instâncias de um recurso do Azure. Neste tutorial, você modificará um modelo para criar três instâncias de conta de armazenamento.
Este tutorial cobre as seguintes tarefas:
- Abrir um modelo de Início Rápido
- Editar o modelo
- Implantar o modelo
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Para acessar um módulo do Learn que aborda a cópia de recursos, confira Gerenciar implantações de nuvem complexas usando recursos avançados do modelo do ARM.
Pré-requisitos
Para concluir este artigo, você precisa do seguinte:
- Visual Studio Code com a extensão de Ferramentas do Resource Manager. Confira Início Rápido: Criar modelos do ARM com o Visual Studio Code.
Abrir um modelo de Início Rápido
Modelos de Início Rápido do Azure é um repositório de modelos do ARM. Em vez de criar um modelo do zero, você pode encontrar um exemplo de modelo e personalizá-lo. O modelo usado neste início rápido é chamado Criar uma conta de armazenamento padrão. O modelo define um recurso da conta de Armazenamento do Azure.
No Visual Studio Code, escolha Arquivo>Abrir Arquivo.
Em Nome do arquivo, cole a seguinte URL:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
Escolha Abrir para abrir o arquivo.
Há um recurso
Microsoft.Storage/storageAccounts
definido no modelo. Comparar o modelo para a referência de modelo. É útil ter algumas noções básicas do modelo antes de personalizá-lo.Escolha Arquivo>Salvar como para salvar o arquivo como azuredeploy.json em seu computador local.
Editar o modelo
O modelo existente cria uma conta de armazenamento. Você personaliza o modelo para criar três contas de armazenamento.
No Visual Studio Code, faça as quatro alterações a seguir:
Adicione um elemento
copy
à definição de recurso de conta de armazenamento. No elementocopy
, você especifica o número de iterações e uma variável para esse loop. O valor da contagem deve ser um número inteiro positivo e não pode exceder 800."copy": { "name": "storageCopy", "count": 3 },
A função
copyIndex()
retorna a iteração atual no loop. Você pode usar o índice como o prefixo do nome.copyIndex()
é baseado em zero. Para deslocar o valor do índice, você pode passar um valor na funçãocopyIndex()
. Por exemplo,copyIndex(1)
."name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
Excluir a definição do parâmetro
storageAccountName
, pois ela não é mais usada.Exclua o elemento
outputs
. Ele não é mais necessário.Exclua o elemento
metadata
.
O modelo concluído se parece com:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Premium_LRS",
"Premium_ZRS",
"Standard_GRS",
"Standard_GZRS",
"Standard_LRS",
"Standard_RAGRS",
"Standard_RAGZRS",
"Standard_ZRS"
],
"metadata": {
"description": "Storage Account type"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for the storage account."
}
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-06-01",
"name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"copy": {
"name": "storageCopy",
"count": 3
},
"properties": {}
}
]
}
Salve as alterações.
Para obter mais informações de como criar várias instâncias, confira Iteração de recursos em modelos do ARM
Implantar o modelo
Entrar no Azure Cloud Shell
Escolha seu ambiente preferencial selecionando PowerShell ou Bash (para a CLI) no canto superior esquerdo. Ao alternar, é necessário reiniciar o shell.
Escolha Carregar/fazer o download dos arquivos e, em seguida, escolha Carregar. Consulte a captura de tela anterior. Selecione o arquivo que você salvou na seção anterior. Depois de carregar o arquivo, use os comandos
ls
ecat
para verificar se o arquivo foi carregado com êxito.No Cloud Shell, execute os comandos a seguir. Selecione a guia para mostrar o código do PowerShell ou o código da CLI.
echo "Enter a project name that is used to generate resource group name:" && read projectName && echo "Enter the location (i.e. centralus):" && read location && resourceGroupName="${projectName}rg" && az group create --name $resourceGroupName --location "$location" && az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json"
Após uma implantação de modelo bem-sucedida, você pode exibir as três contas de armazenamento criadas no grupo de recursos especificado. Compare os nomes de conta de armazenamento com a definição de nome no modelo.
echo "Enter a project name that is used to generate resource group name:" &&
read projectName &&
resourceGroupName="${projectName}rg" &&
az storage account list --resource-group $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Limpar os recursos
Quando os recursos do Azure já não forem necessários, limpe os recursos implantados excluindo o grupo de recursos.
- No portal do Azure, escolha Grupos de recursos do menu à esquerda.
- No campo Filtrar por nome, insira o nome do grupo de recursos.
- Selecione o nome do grupo de recursos. Você deverá ver um total de três recursos no grupo de recursos.
- Escolha Excluir grupo de recursos no menu superior.
Próximas etapas
Neste tutorial, você aprendeu a criar várias instâncias da conta de armazenamento. No próximo tutorial, você desenvolverá um modelo com vários recursos e vários tipos de recursos. Alguns dos recursos têm recursos dependentes.