Partilhar via


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.

Diagrama mostrando o Azure Resource Manager criando várias instâncias.

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:

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.

  1. No Visual Studio Code, selecione Ficheiro>Abrir Ficheiro.

  2. 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
    
  3. Selecione Abrir para abrir o ficheiro.

  4. 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.

  5. 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:

Captura de ecrã do Visual Studio Code com o Azure Resource Manager a criar várias instâncias.

  1. Adicione um elemento copy à definição do recurso de conta de armazenamento. No elemento , especifique o copy 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
    },
    
  2. 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 na copyIndex() função. Por exemplo, copyIndex(1).

    "name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
    
  3. Exclua a definição de storageAccountName parâmetro, porque ela não é mais usada.

  4. Exclua o outputs elemento . Não é mais necessário.

  5. 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

  1. Entre no Azure Cloud Shell

  2. Escolha seu ambiente preferido selecionando PowerShell ou Bash (para CLI) no canto superior esquerdo. É necessário reiniciar o Shell quando mudar.

    Arquivo de carregamento do Cloud Shell do portal do Azure

  3. 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 o cat comando para verificar se o arquivo foi carregado com êxito.

  4. 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.

  1. No portal do Azure, selecione Grupo de recursos no menu à esquerda.
  2. Introduza o nome do grupo de recursos no campo Filtrar por nome.
  3. Selecione o nome do grupo de recursos. Você verá um total de três recursos no grupo de recursos.
  4. 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.