Tutorial: Criar várias instâncias de recursos com modelos do ARM
Saiba como iterar no 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 Learn que abrange a cópia de recursos, veja Gerir implementações na cloud complexas com funcionalidades avançadas de modelo do ARM.
Pré-requisitos
Para concluir este artigo, precisa de:
- Visual Studio Code com extensão Ferramentas do Resource Manager. Veja Início Rápido: Criar modelos do 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 do 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>Aberto 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.
Existe 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 o personalizar.Selecione Guardar Ficheiro>Como para guardar o ficheiro como azuredeploy.json no seu 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.copy
No elemento, especifique o número de iterações e uma variável para este ciclo. 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. Utilize o índice como o prefixo do nome.copyIndex()
é baseado em zero. Para compensar o valor do índice, pode transmitir um valor na funçãocopyIndex()
. Por exemplo,copyIndex(1)
."name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
Elimine a
storageAccountName
definição do parâmetro, uma vez que já não é utilizada.Elimine o
outputs
elemento. Já não é necessário.Elimine 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, veja Iteração de recursos em modelos do ARM
Implementar o modelo
Iniciar sessão na Cloud Shell do Azure
Selecione o seu ambiente preferido ao selecionar 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 ficheiro, pode utilizar o
ls
comando e ocat
comando para verificar se o ficheiro 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 implementação com êxito do modelo, pode apresentar 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 ..."
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 esquerdo.
- Introduza o nome do grupo de recursos no campo Filtrar por nome.
- Selecione o nome do grupo de recursos. Verá um total de três recursos no grupo de recursos.
- Selecione Eliminar grupo de recursos no menu superior.
Passos seguintes
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.