Tutorial: Criar várias instâncias de recursos com modelos ARM
Saiba como iterar no seu modelo do Azure Resource Manager (modelo ARM) para criar várias instâncias de um recurso do Azure. Neste tutorial, modifica um modelo para criar três instâncias de contas de armazenamento.
Este tutorial abrange as seguintes tarefas:
- Abrir um modelo de Início Rápido
- Editar o modelo
- Implementar o modelo
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Para obter um módulo do Microsoft Learn que abrange a cópia de recursos, consulte Gerenciar implantações complexas na nuvem usando recursos avançados de modelo ARM.
Pré-requisitos
Para concluir este artigo, precisa de:
- Visual Studio Code com extensão Ferramentas do Resource Manager. Para obter mais informações, consulte Guia de início rápido: criar modelos ARM com o Visual Studio Code.
Abrir um modelo de Início Rápido
Os Modelos de Início Rápido do Azure são um repositório para modelos ARM. Em vez de criar um modelo do zero, pode encontrar um modelo de exemplo e personalizá-lo. O modelo utilizado neste início rápido chama-se Criar uma conta de armazenamento padrão. O modelo define um recurso de conta de Armazenamento do Azure.
No Visual Studio Code, selecione Ficheiro>Abrir Ficheiro.
em Nome de ficheiro, cole o seguinte URL:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
Selecione Abrir para abrir o ficheiro.
Há um
Microsoft.Storage/storageAccounts
recurso definido no modelo. Compare o modelo à referência do modelo. É útil obter alguma compreensão básica do modelo antes de personalizá-lo.Para salvar o arquivo, selecione Arquivo>Salvar como. Salve o arquivo como azuredeploy.json no computador local.
Editar o modelo
O exemplo existente cria uma conta de armazenamento. Personaliza o modelo para criar três contas de armazenamento.
No Visual Studio Code, efetue as seguintes quatro alterações:
Adicione um elemento
copy
à definição do recurso de conta de armazenamento. No elemento , especifique ocopy
número de iterações e uma variável para esse loop. O valor tem de ser um número inteiro positivo e não pode ser mais de 800."copy": { "name": "storageCopy", "count": 3 },
A função
copyIndex()
devolve a iteração atual no ciclo. Use o índice como o prefixo do nome.copyIndex()
é baseado em zero. Para compensar o valor do índice, você pode passar um valor nacopyIndex()
função. Por exemplo,copyIndex(1)
."name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
Exclua a definição de
storageAccountName
parâmetro, porque ela não é mais usada.Exclua o
outputs
elemento . Não é mais necessário.Exclua o
metadata
elemento .
O modelo completo assemelha-se a:
{
"$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": {}
}
]
}
Guarde as alterações.
Para obter mais informações sobre como criar várias instâncias, consulte Iteração de recursos em modelos ARM
Implementar o modelo
Entre no Azure Cloud Shell
Escolha seu ambiente preferido selecionando PowerShell ou Bash (para CLI) no canto superior esquerdo. É necessário reiniciar o Shell quando mudar.
Selecione Carregar/transferir ficheiros e, em seguida, selecione Carregar. Veja a captura de ecrã anterior. Selecione o ficheiro que guardou na secção anterior. Depois de carregar o arquivo, você pode usar o
ls
comando e ocat
comando para verificar se o arquivo foi carregado com êxito.No Cloud Shell, execute os seguintes comandos. Selecione o separador 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 contas 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 ..."
Clean up resources (Limpar recursos)
Quando os recursos do Azure já não forem necessários, limpe os recursos implementados ao eliminar o grupo de recursos.
- No portal do Azure, selecione Grupo de recursos no menu à esquerda.
- Introduza o nome do grupo de recursos no campo Filtrar por nome.
- Selecione o nome do grupo de recursos. Você verá um total de três recursos no grupo de recursos.
- Selecione Eliminar grupo de recursos no menu superior.
Próximos passos
Neste tutorial, aprendeu a criar várias instâncias de contas de armazenamento. No próximo tutorial, vai desenvolver um modelo com vários recursos e vários tipos de recurso. Alguns dos recursos têm recursos dependentes.