Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Saiba como implantar recursos do Azure com base em condições em um modelo do ARM (Azure Resource Manager).
No tutorial Definir ordem de implantação de recursos , você cria uma máquina virtual, uma rede virtual e alguns outros recursos dependentes, incluindo uma conta de armazenamento. Em vez de criar uma nova conta de armazenamento todas as vezes, você permite que as pessoas escolham entre criar uma nova conta de armazenamento e usar uma conta de armazenamento existente. Para atingir essa meta, você define um parâmetro adicional. Se o valor do parâmetro for novo, uma nova conta de armazenamento será criada. Caso contrário, uma conta de armazenamento existente com o nome fornecido é usada.
Este tutorial aborda as seguintes tarefas:
- Abrir um modelo de Início Rápido
- Modificar o modelo
- Implantar o modelo
- Limpar os recursos
Este tutorial aborda apenas um cenário básico de uso de condições. Para obter mais informações, consulte:
- Estrutura de arquivo de modelo: condição.
- Implantar condicionalmente um recurso em um modelo do ARM.
- Função template: Se.
- Funções de comparação para modelos do ARM
Para obter um módulo do Learn que abrange condições, consulte Gerenciar implantações de nuvem complexas usando recursos avançados de modelo do ARM.
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Para concluir este artigo, você precisa do seguinte:
Para aumentar a segurança, use uma senha gerada para a conta de administrador da máquina virtual. Você pode usar o Azure Cloud Shell para executar o seguinte comando no PowerShell ou bash:
openssl rand -base64 32Para saber mais, execute
man openssl randpara abrir a página manual.O Azure Key Vault foi projetado para proteger chaves criptográficas e outros segredos. Para obter mais informações, consulte Tutorial: Integrar o Azure Key Vault na implantação de modelo do ARM. Também recomendamos que você atualize sua senha a cada três meses.
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, você pode encontrar um modelo de exemplo e personalizá-lo. O modelo usado neste tutorial é chamado implantar uma VM simples do Windows.
No Visual Studio Code, selecione Arquivo>Aberto arquivo.
No nome do arquivo, cole a seguinte URL:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.jsonSelecione Abrir para abrir o arquivo.
Há seis recursos definidos pelo modelo:
- Microsoft.Storage/storageAccounts.
- Microsoft.Network/publicIPAddresses.
- Microsoft.Network/networkSecurityGroups.
- Microsoft.Network/virtualNetworks.
- Microsoft.Network/networkInterfaces.
- Microsoft.Compute/virtualMachines.
É útil examinar a referência de modelo antes de personalizar um modelo.
Selecione Salvar Arquivo>como para salvar uma cópia do arquivo no computador local com o nome azuredeploy.json.
Modificar o modelo
Faça duas alterações no modelo existente:
- Adicione um parâmetro de nome de conta de armazenamento. Os usuários podem especificar um novo nome de conta de armazenamento ou um nome de conta de armazenamento existente.
- Adicionar um novo parâmetro chamado
newOrExisting. A implantação usa esse parâmetro para determinar se uma nova conta de armazenamento deve ser criada ou usar uma conta de armazenamento existente.
Este é o procedimento para fazer as alterações:
Abra azuredeploy.json no Visual Studio Code.
Substitua os três
variables('storageAccountName')porparameters('storageAccountName')no modelo inteiro.Remova a seguinte definição de variável:
Adicione os dois parâmetros a seguir ao início da seção de parâmetros:
"storageAccountName": { "type": "string" }, "newOrExisting": { "type": "string", "allowedValues": [ "new", "existing" ] },Pressione Alt+Shift+F para formatar o modelo no Visual Studio Code.
A definição de parâmetros atualizados é semelhante a:
Adicione a linha a seguir ao início da definição da conta de armazenamento.
"condition": "[equals(parameters('newOrExisting'),'new')]",A condição verifica o valor do parâmetro
newOrExisting. Se o valor do parâmetro for novo, a implantação criará a conta de armazenamento.A definição da conta de armazenamento atualizada tem a seguinte aparência:
Atualize a
storageUripropriedade da definição de recurso da máquina virtual com o seguinte valor:"storageUri": "[format('https://{0}.blob.core.windows.net', parameters('storageAccountName'))]"Essa alteração é necessária quando você usa uma conta de armazenamento existente em um grupo de recursos diferente.
Salve as alterações.
Implantar o modelo
Entre no Cloud Shell.
Escolha seu ambiente preferido selecionando o PowerShell ou o Bash (para CLI) no canto superior esquerdo. A reinicialização do shell é necessária quando você alterna.
Selecione Carregar/baixar arquivos e, em seguida, selecione Carregar. Confira a captura de tela anterior. Selecione o arquivo salvo na seção anterior. Depois de carregar o arquivo, você pode usar o
lscomando e ocatcomando para verificar se o arquivo foi carregado com êxito.Execute o script do PowerShell a seguir para implantar o modelo.
Importante
O nome da conta de armazenamento deve ser exclusivo no Azure. O nome deve ter apenas letras minúsculas ou números. Não pode ter mais de 24 caracteres. O nome da conta de armazenamento é o nome do projeto com o repositório acrescentado. Verifique se o nome do projeto e o nome da conta de armazenamento gerado atendem aos requisitos de nome da conta de armazenamento.
$projectName = Read-Host -Prompt "Enter a project name that is used to generate resource group name and resource names" $newOrExisting = Read-Host -Prompt "Create new or use existing (Enter new or existing)" $location = Read-Host -Prompt "Enter the Azure location (i.e. centralus)" $vmAdmin = Read-Host -Prompt "Enter the admin username" $vmPassword = Read-Host -Prompt "Enter the admin password" -AsSecureString $dnsLabelPrefix = Read-Host -Prompt "Enter the DNS Label prefix" $resourceGroupName = "${projectName}rg" $storageAccountName = "${projectName}store" New-AzResourceGroup -Name $resourceGroupName -Location $location New-AzResourceGroupDeployment ` -ResourceGroupName $resourceGroupName ` -adminUsername $vmAdmin ` -adminPassword $vmPassword ` -dnsLabelPrefix $dnsLabelPrefix ` -storageAccountName $storageAccountName ` -newOrExisting $newOrExisting ` -TemplateFile "$HOME/azuredeploy.json" Write-Host "Press [ENTER] to continue ..."Observação
A implantação falhará se
newOrExistingfor new, mas a conta de armazenamento com o nome da conta de armazenamento especificado já existir.
Tente fazer outra implantação com newOrExisting definido como existente e especifique uma conta de armazenamento existente. Para criar uma conta de armazenamento com antecedência, consulte Criar uma conta de armazenamento.
Limpar os recursos
Quando os recursos do Azure não forem mais necessários, limpe os recursos implantados excluindo o grupo de recursos. Para excluir o grupo de recursos, selecione Experimentar para abrir o Cloud Shell. Para colar o script do PowerShell, clique com o botão direito do mouse no painel do shell e selecione Colar.
$projectName = Read-Host -Prompt "Enter the same project name you used in the last procedure"
$resourceGroupName = "${projectName}rg"
Remove-AzResourceGroup -Name $resourceGroupName
Write-Host "Press [ENTER] to continue ..."
Próximas etapas
Neste tutorial, você desenvolveu um modelo que permite que os usuários escolham entre criar uma nova conta de armazenamento e usar uma conta de armazenamento existente. Para saber como recuperar segredos do Azure Key Vault e usar os segredos como senhas na implantação do modelo, consulte: