Exercício – usar funções do Azure Resource Manager para criar expressões
Observação
Na primeira vez que você ativar uma área restrita e aceitar os termos, sua conta Microsoft será associada a um novo diretório do Azure chamado Área Restrita do Microsoft Learn. Você será adicionado a uma assinatura especial denominada Assinatura do Concierge.
Neste exercício, você criará uma expressão usando funções do modelo ARM (Azure Resource Manager). A expressão cria um nome exclusivo para cada grupo de recursos, combinando uma entrada de prefixo com um hash da ID do grupo de recursos. Isso resulta em nomes de conta de armazenamento do Azure, como dev2hu6sbtr5
e staging5his8hgr67
.
Neste exercício, você usa as Ferramentas do Azure Resource Manager para Visual Studio Code. É necessário que você instale essa extensão no Visual Studio Code.
Criar o arquivo de modelo ARM
No módulo anterior, você criou um modelo ARM que implantou uma conta de armazenamento. Você adicionou parâmetros e uma saída a esse arquivo. Aqui, você começa com esse arquivo, no entanto, a saída foi removida para reduzir a sobrecarga.
Abra o Visual Studio Code e crie um arquivo chamado azuredeploy.json. Se você tiver esse arquivo do módulo anterior, poderá usá-lo.
Substitua o conteúdo do arquivo por aquele mostrado com o seguinte código:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storageName": { "type": "string", "minLength": 3, "maxLength": 24 }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] } }, "functions": [], "variables": {}, "resources": [{ "name": "[parameters('storageName')]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": { "displayName": "[parameters('storageName')]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "[parameters('storageSKU')]" } }], "outputs": {} }
Se você não concluiu o módulo anterior, reserve um momento para examinar esse arquivo. Observe o parâmetro
storageName
. Esse parâmetro é usado para passar um nome exclusivo para a conta de armazenamento.
Criar uma expressão para definir um nome exclusivo de conta de armazenamento
Em vez de passar o nome da conta de armazenamento, altere o parâmetro para usar um prefixo no nome da conta de armazenamento. Esse parâmetro é passado para a função concat
em sua expressão.
Na seção
parameters
, alterestorageName
para storagePrefix.Altere o valor do atributo
maxLength:
do parâmetrostoragePrefix
para 11. O comprimento máximo de um nome de conta de armazenamento é de 24 caracteres, portanto, certifique-se de que o hash adicionado da função que você cria não faz com que o nome seja maior do que 24.Crie a expressão para definir um nome exclusivo de conta de armazenamento. Na seção
resources
, altere o valor dos atributosname:
edisplayName:
de"[parameters('storageName')]"
para "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]". Você aprendeu sobre essa expressão na unidade anterior. O arquivo agora deve ser parecido com este:{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storagePrefix": { "type": "string", "minLength": 3, "maxLength": 11 }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] } }, "functions": [], "variables": {}, "resources": [{ "name": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": { "displayName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "[parameters('storageSKU')]" } }], "outputs": {} }
Implantar o modelo ARM no Azure
Para implantar esse modelo no Azure, será necessário entrar em sua conta do Azure do terminal do Visual Studio Code. Verifique se você tem as ferramentas da CLI do Azure instaladas. Além disso, verifique se você está entrando na mesma conta que ativou a área restrita.
Abra uma janela do terminal usando o menu Terminal.
Caso o menu suspenso à direita da janela do terminal indique bash, você terá o shell correto do qual trabalhar. Você pode pular para a próxima seção.
Se você não tiver o Shell correto, selecione Selecionar Shell Padrão no menu suspenso.
Selecione bash:
Selecione o + no terminal para criar um terminal com o bash como shell.
Entrar no Azure
Do terminal no Visual Studio Code, execute o comando a seguir para entrar no Azure. A execução deste comando abre um navegador que permite que você entre em sua conta:
az login
Após se conectar, verá uma lista das assinaturas associadas à conta no terminal. Se você tiver ativado a área restrita, verá uma assinatura chamada Assinatura de Concierge. Use-a durante o restante do exercício.
Defina a assinatura padrão para todos os comandos da CLI do Azure que você executar nesta sessão:
az account set --subscription "Concierge Subscription"
Observação
Se você usou mais de uma área restrita recentemente, pode haver mais de uma Assinatura de Concierge listada. Nesse caso, use as duas próximas etapas para definir a assinatura padrão. Se o comando acima tiver sido bem-sucedido, ignore as duas próximas etapas.
Obtenha as IDs das Assinaturas de Concierge:
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Defina a assinatura padrão usando a ID da assinatura. Substitua
{your subscription ID}
pela ID de Assinatura do Concierge mais recente.az account set --subscription {your subscription ID}
Definir o grupo de recursos padrão
Defina o grupo de recursos padrão para o grupo de recursos criado para você no ambiente de área restrita. A realização desse procedimento permite omitir esse parâmetro do restante dos comandos da CLI do Azure neste exercício.
az configure --defaults group=<rgn>[sandbox resource group name]</rgn>
Implantar o modelo no Azure
Você aprendeu sobre os comandos de implantação no módulo anterior. Aqui, estamos usando o comando az deployment group create
da CLI do Azure.
Implante o modelo usando comandos da CLI do Azure no terminal do Visual Studio Code. Lembre-se de substituir
{your-prefix}
por uma cadeia de caracteres diferente. Por exemplo, você pode usar armazenamento.templateFile="azuredeploy.json" today=$(date +"%d-%b-%Y") DeploymentName="addfunction-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters storagePrefix={your-prefix}
Na primeira seção desse código, você define variáveis da CLI do Azure para o caminho do arquivo de modelo que você deseja implantar e o nome da implantação. Em seguida, você usou o comando
az deployment group create
para implantar o modelo no Azure.Você deve ver a mensagem
Running...
no terminal.
Para implantar esse modelo no Azure, será necessário entrar em sua conta do Azure do terminal do Visual Studio Code. Verifique se você tem as ferramentas do Azure PowerShell instaladas e se está entrando na mesma conta com a qual ativou a área restrita.
Abra uma janela do terminal usando o menu Terminal.
Caso o menu suspenso à direita da janela do terminal indique pwsh, você terá o shell correto do qual trabalhar. Você pode pular para a próxima seção.
Se você não tiver o Shell correto, selecione Selecionar Shell Padrão no menu suspenso.
Selecione pwsh.
Selecione + no terminal para criar um terminal com pwsh como o shell.
Entrar no Azure usando o Azure PowerShell
Do terminal no Visual Studio Code, execute o comando a seguir para entrar no Azure. A execução desse comando envia a você uma solicitação para abrir um navegador com uma URL que permita entrar em sua conta. Use o código que está no prompt. Verifique se você entrou com a mesma conta usada para ativar a área restrita.
Connect-AzAccount
Após se conectar, verá uma lista das assinaturas associadas à conta no terminal. Se você tiver ativado a área restrita, verá uma assinatura chamada Assinatura de Concierge. Use-a durante o restante do exercício.
Defina a assinatura padrão para todos os comandos da CLI do Azure que você executar nesta sessão.
Obter a ID da assinatura. O comando lista suas assinaturas e suas IDs. A ID da assinatura será a segunda coluna. Procure
Concierge Subscription
e copie a segunda coluna. É algo semelhante a isto:aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Altere sua assinatura ativa para a Assinatura de Concierge. Substitua
{Your subscription ID}
pela ID que você acabou de copiar.$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Defina o grupo de recursos criado para você no ambiente da área restrita como o grupo de recursos padrão. Fazer isso permitirá omitir o parâmetro do restante dos comandos do Azure PowerShell neste exercício.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Implantar o modelo no Azure
Você aprendeu sobre os comandos de implantação no módulo anterior. Estamos usando aqui o comando New-AzResourceGroupDeployment
do Azure PowerShell.
Implante o modelo usando comandos do Azure PowerShell no terminal do Visual Studio Code. Lembre-se de substituir
{your-prefix}
por uma cadeia de caracteres diferente. Por exemplo, você pode usar armazenamento.$templateFile = "azuredeploy.json" $today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addfunction-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storagePrefix {your-prefix}
Na primeira seção desse código, você define variáveis do PowerShell do Azure para o caminho do arquivo de modelo que você deseja implantar e o nome da implantação. Em seguida, você usou o comando New-AzResourceGroupDeployment
para implantar o modelo no Azure.
Verifique sua implantação
Após a conclusão da implantação, vá para o portal do Azure e verifique se você está na assinatura de área restrita. Para verificar a assinatura, selecione o avatar no canto superior direito da página. Selecione Mudar diretório. Na lista, selecione o diretório Área restrita do Microsoft Learn.
No painel esquerdo, selecione Grupos de recursos.
Selecione
[nome do grupo de recursos de área restrita] .Na seção Visão geral, você vê essa implantação bem-sucedida específica:
Selecione 1 Êxito para ver os detalhes da implantação:
Selecione addfunction para ver quais recursos foram implantados:
Deixe a página aberta no navegador para que você possa verificar as implantações novamente mais tarde no módulo.