Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Saiba como implantar recursos do Azure com base nas condições em um modelo do Azure Resource Manager (modelo ARM).
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 sempre, você permite que as pessoas escolham entre criar uma nova conta de armazenamento ou usar uma conta de armazenamento existente. Para atingir esse objetivo, 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 será usada.
Este tutorial abrange as seguintes tarefas:
- Abrir um modelo de início rápido
- Modificar o modelo
- Implementar o modelo
- Limpeza de recursos
Este tutorial aborda apenas um cenário básico de uso de condições. Para obter mais informações, consulte:
- Estrutura do arquivo de modelo: Condição.
- Implante condicionalmente um recurso em um modelo ARM.
- Função do modelo: Se.
- Funções de comparação para modelos ARM
Para obter um módulo do Learn que cobre condições, consulte Gerenciar implantações complexas na nuvem usando recursos avançados de modelo ARM.
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Para concluir este artigo, precisa de:
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 no Bash:
openssl rand -base64 32Para saber mais, execute
man openssl randpara abrir a página de 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 do modelo ARM. Também recomendamos que atualize a sua palavra-passe de três em 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 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 Ficheiro>Abrir Ficheiro.
Em 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 revisar a referência de modelo antes de personalizar um modelo.
Selecione Arquivo>Salvar 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.
- Adicione um novo parâmetro chamado
newOrExisting. A implantação usa esse parâmetro para determinar se deve criar uma nova conta de armazenamento ou usar uma conta de armazenamento existente.
Aqui está o procedimento para fazer as alterações:
Abra o 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 atualizada é semelhante a:
Adicione a seguinte linha 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 de conta de armazenamento atualizada tem a seguinte aparência:
Atualize a
storageUripropriedade da definição de recurso de 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.
Implementar o modelo
Faça login no Cloud Shell.
Escolha seu ambiente preferido selecionando PowerShell ou Bash (para CLI) no canto superior esquerdo. Reiniciar o shell é necessário quando você alterna.
Selecione Carregar/transferir ficheiros e, em seguida, selecione Carregar. Veja a captura de tela anterior. Selecione o arquivo que você salvou 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 seguinte script do PowerShell 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 store anexado. Verifique se o nome do projeto e o nome da conta de armazenamento gerada 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 nova, mas a conta de armazenamento com o nome da conta de armazenamento especificado já existe.
Tente fazer outra implantação com newOrExisting definido como existente e especifique uma conta de armazenamento existente. Para criar uma conta de armazenamento antecipadamente, consulte Criar uma conta de armazenamento.
Limpeza de 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óximos passos
Neste tutorial, você desenvolveu um modelo que permite aos usuários escolher entre criar uma nova conta de armazenamento e usar uma conta de armazenamento existente. Para saber como recuperar segredos do Cofre de Chaves do Azure e usá-los como senhas na implantação do modelo, consulte: