Exercício – Utilizar funções do Azure Resource Manager para criar expressões

Concluído

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.

  1. Abra o Visual Studio Code e crie um ficheiro chamado azuredeploy.json. Se tiver este ficheiro do módulo anterior, pode utilizar esse ficheiro.

  2. 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": {}
    }
    
  3. 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.

  1. Na secção parameters, altere storageName para storagePrefix.

  2. Altere o valor do atributo maxLength: do parâmetro storagePrefix 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.

  3. Crie a expressão para definir o nome exclusivo para a conta de armazenamento. Na secção resources, altere o valor dos atributos name: e displayName: 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.

  1. Abra uma janela do terminal através do menu Terminal.

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

    Captura de ecrã a mostrar a janela do terminal do Visual Studio Code com bash no menu pendente.

  3. Se você não tiver o shell correto, selecione Selecionar shell padrão no menu suspenso.

  4. Selecione bash:

    Captura de ecrã a mostrar a lista de seleção de shell na janela do terminal do Visual Studio Code.

  5. Selecione + no terminal para criar um novo terminal com bash como shell.

Iniciar sessão no Azure

  1. 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
    
  2. 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.

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

  4. Obtenha os IDs da Subscrição de Assistente:

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. 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.

  1. Abra uma janela do terminal através do menu Terminal.

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

    Captura de ecrã a mostrar a janela do terminal do Visual Studio Code com pwsh no menu pendente.

  3. Se você não tiver o shell correto, selecione Selecionar shell padrão no menu suspenso.

  4. Selecione pwsh.

    Captura de ecrã a mostrar a lista de seleção de shell na janela do terminal do Visual Studio Code.

  5. Selecione + no terminal para criar um novo terminal com pwsh como shell.

Iniciar sessão no Azure com o Azure PowerShell

  1. 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
    
  2. 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.

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

  1. No painel esquerdo, selecione Grupos de recursos.

  2. Selecione [nome do grupo de recursos do sandbox].

  3. Na secção Descrição Geral, vê que uma implementação foi efetuada com êxito:

    Captura de ecrã do portal do Azure que mostra a visão geral do grupo de recursos. A seção Implantações mostra que uma implantação foi bem-sucedida.

  4. Selecione 1 Efetuada Com Êxito para ver os detalhes da implementação:

    Captura de ecrã do portal do Azure que mostra implementações. Uma implantação está listada e tem o status de Bem-sucedida.

  5. Selecione addfunction para ver que recursos foram implementados:

    Captura de ecrã do portal do Azure a mostrar que a conta de armazenamento foi implementada.

  6. Deixe a página aberta em seu navegador para que você possa verificar as implantações novamente mais tarde no módulo.