Exercício – Utilizar funções do Azure Resource Manager para criar expressões
Nota
A primeira vez que ativar um sandbox e aceitar os termos, a sua conta Microsoft será associada a um novo diretório do Azure chamado Microsoft Learn Sandbox. É adicionado a uma subscrição especial chamada Subscrição de Assistente.
Neste exercício, irá criar uma expressão através de funções de modelos do Resource Manager. A expressão cria um nome exclusivo para cada grupo de recursos, ao combinar uma entrada de prefixo com um hash do ID de grupo de recursos. 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. Certifique-se de que instala esta extensão no Visual Studio Code.
Criar o ficheiro de modelo do Resource Manager
No módulo anterior, criou um modelo do Resource Manager que implementou uma conta de armazenamento. Adicionou parâmetros e uma saída a este ficheiro. Aqui, você começa com esse arquivo, mas a saída é removida para reduzir a sobrecarga.
Abra o Visual Studio Code e crie um ficheiro chamado azuredeploy.json. Se tiver este ficheiro do módulo anterior, pode utilizar esse ficheiro.
Substitua o conteúdo deste ficheiro pelo 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 não tiver completado o módulo anterior, despenda algum tempo para rever este ficheiro. Repare no parâmetro
storageName
. Este parâmetro é utilizado para transmitir um nome exclusivo para a conta de armazenamento.
Criar uma expressão para definir um nome exclusivo para a conta de armazenamento
Em vez de passar o nome da conta de armazenamento, altere o parâmetro para obter um prefixo para o nome da conta de armazenamento. Este parâmetro é passado para a concat
função em sua expressão.
Na secção
parameters
, alterestorageName
para storagePrefix.Altere o valor do atributo
maxLength:
do parâmetrostoragePrefix
para 11. O comprimento máximo para um nome de conta de armazenamento é de 24 caracteres, portanto, você quer ter certeza de que o hash adicionado da função criada não faz com que o nome seja maior que 24.Crie a expressão para definir o nome exclusivo para a conta de armazenamento. Na secção
resources
, altere o valor dos atributosname:
edisplayName:
de"[parameters('storageName')]"
para "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]". Aprendeu sobre esta expressão na unidade anterior. O ficheiro deverá ter o seguinte aspeto:{ "$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": {} }
Implementar o modelo do Resource Manager no Azure
Para implementar este modelo no Azure, tem de iniciar sessão na sua conta do Azure a partir do terminal do Visual Studio Code. Certifique-se de que tem as ferramentas da CLI do Azure instaladas. Certifique-se de que está a iniciar sessão na mesma conta que ativou o sandbox.
Abra uma janela do terminal através do menu Terminal.
Se o menu pendente à direita da janela do terminal mostrar bash, significa que tem o shell correto para trabalhar. Pode avançar para a secção seguinte.
Se você não tiver o shell correto, selecione Selecionar shell padrão no menu suspenso.
Selecione bash:
Selecione + no terminal para criar um novo terminal com bash como shell.
Iniciar sessão no Azure
A partir do terminal do Visual Studio Code, execute o seguinte comando para iniciar sessão no Azure. Executar este comando abre um navegador que lhe permite iniciar sessão na sua conta:
az login
Assim que tiver iniciado sessão, verá uma lista das subscrições associadas a esta conta no terminal. Se tiver ativado o sandbox, verá uma chamada Subscrição de Assistente. Utilize-a para o resto do exercício.
Predefina a subscrição para todos os comandos da CLI do Azure que executar nesta sessão:
az account set --subscription "Concierge Subscription"
Nota
Se tiver utilizado mais de um sandbox recentemente, poderá haver mais de uma Subscrição de Assistente listada. Neste caso, utilize os dois passos seguintes para predefinir a subscrição. Se o comando acima tiver sido executado com êxito, ignore os dois passos seguintes.
Obtenha os IDs da Subscrição de Assistente:
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Predefina a subscrição através do ID da subscrição. Substitua
{your subscription ID}
pelo ID da Subscrição de Assistente mais recente.az account set --subscription {your subscription ID}
Definir o grupo de recursos predefinido
Defina o grupo de recursos predefinido para o grupo de recursos criado para si no ambiente do sandbox. Tal permite-lhe omitir esse parâmetro do resto dos comandos da CLI do Azure neste exercício.
az configure --defaults group=<rgn>[sandbox resource group name]</rgn>
Implementar o modelo no Azure
Ficou a saber mais sobre os comandos de implementação no módulo anterior. Aqui, vamos utilizar o comando az deployment group create
da CLI do Azure.
Implemente o modelo através dos comandos da CLI do Azure no terminal do Visual Studio Code. Lembre-se de substituir
{your-prefix}
por uma cadeia diferente. Por exemplo, pode utilizar storage.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 secção deste código, define variáveis da CLI do Azure para o caminho para o ficheiro de modelo que pretende implementar e o nome da implementação. Em seguida, você usou o
az deployment group create
comando para implantar o modelo no Azure.Deverá ver a mensagem
Running...
no terminal.
Para implementar este modelo no Azure, tem de iniciar sessão na sua conta do Azure a partir do terminal do Visual Studio Code. Certifique-se de que tem as ferramentas do Azure PowerShell instaladas e que está a iniciar sessão na mesma conta que ativou o sandbox.
Abra uma janela do terminal através do menu Terminal.
Se o menu pendente à direita da janela do terminal mostrar pwsh, tem o shell correto para trabalhar. Pode avançar para a secção seguinte.
Se você não tiver o shell correto, selecione Selecionar shell padrão no menu suspenso.
Selecione pwsh.
Selecione + no terminal para criar um novo terminal com pwsh como shell.
Iniciar sessão no Azure com o Azure PowerShell
A partir do terminal do Visual Studio Code, execute o seguinte comando para iniciar sessão no Azure. Quando executa este comando, é-lhe pedido para abrir um browser para um URL que lhe permita iniciar sessão na sua conta. Utilize o código que está na mensagem. Certifique-se de que inicia sessão com a mesma conta que utilizou para ativar o sandbox.
Connect-AzAccount
Assim que tiver iniciado sessão, verá uma lista das subscrições associadas a esta conta no terminal. Se tiver ativado o sandbox, verá uma chamada Subscrição de Assistente. Utilize-a para o resto do exercício.
Predefina a subscrição para todos os comandos da CLI do Azure que executar nesta sessão.
Obtenha o ID de subscrição. O comando lista suas assinaturas e seus IDs. O ID de subscrição é a segunda coluna. Procure
Concierge Subscription
e copie a segunda coluna. Tem a seguinte aparência:aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Altere a sua subscrição ativa para a Subscrição de Assistente. Certifique-se de substituir
{Your subscription ID}
pelo ID que copiou.$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Defina o grupo de recursos predefinido para o grupo de recursos criado para si no ambiente do sandbox. Ao fazê-lo, permite-lhe omitir esse parâmetro do resto dos comandos do Azure PowerShell neste exercício.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Implementar o modelo no Azure
Ficou a saber mais sobre os comandos de implementação no módulo anterior. Aqui, estamos a utilizar o comando New-AzResourceGroupDeployment
do Azure PowerShell.
Implemente o modelo através dos comandos do Azure PowerShell no terminal do Visual Studio Code. Lembre-se de substituir
{your-prefix}
por uma cadeia diferente. Por exemplo, pode utilizar storage.$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 deste código, você define as variáveis do Azure PowerShell para o caminho para o arquivo de modelo que deseja implantar e o nome da implantação. Em seguida, você usou o New-AzResourceGroupDeployment
comando para implantar o modelo no Azure.
Verificar a implementação
Quando a implantação terminar, vá para o portal do Azure e verifique se você está na assinatura da área restrita. Para verificar a subscrição, selecione o seu avatar no canto superior direito da página. Selecione Trocar diretório. Na lista, selecione o diretório Sandbox do Microsoft Learn.
No painel esquerdo, selecione Grupos de recursos.
Selecione
[nome do grupo de recursos do sandbox] .Na secção Descrição Geral, vê que uma implementação foi efetuada com êxito:
Selecione 1 Efetuada Com Êxito para ver os detalhes da implementação:
Selecione addfunction para ver que recursos foram implementados:
Deixe a página aberta em seu navegador para que você possa verificar as implantações novamente mais tarde no módulo.