Exercício - Definir recursos filho

Concluído

Nota

Na primeira vez que você ativar uma área restrita e aceitar os termos, sua conta da Microsoft será associada a um novo diretório do Azure chamado Microsoft Learn Sandbox. Você também é adicionado a uma assinatura especial chamada Assinatura do concierge.

Você está começando a trabalhar nas solicitações da sua equipe de P&D e decide começar criando um banco de dados do Azure Cosmos DB para os dados de teste do drone de brinquedo. Neste exercício, você cria a conta do Azure Cosmos DB e dois recursos filho, um usando a parent propriedade e o outro como um recurso aninhado.

Durante o processo, você:

  • Crie um arquivo Bicep que implante uma conta do Cosmos DB.
  • Adicione um banco de dados e um contêiner, que são recursos filhos da conta do Cosmos DB.
  • Implante o modelo e verifique a implantação.

Este exercício usa a extensão Bicep para Visual Studio Code. Certifique-se de que instala esta extensão no Visual Studio Code.

Criar um modelo Bicep que contenha uma conta do Azure Cosmos DB

Primeiro, você cria um novo modelo Bicep com uma conta do Azure Cosmos DB. Para tal:

  1. Abra o Visual Studio Code.

  2. Crie um novo arquivo chamado main.bicep.

  3. Salve o arquivo vazio para que o Visual Studio Code carregue as ferramentas do Bíceps.

    Você pode selecionar Arquivo>Salvar como ou pressionar Ctrl+S no Windows (⌘+S no macOS). Lembre-se de onde você salvou o arquivo. Por exemplo, talvez você queira criar uma pasta de scripts para salvá-la.

  4. Adicione o seguinte conteúdo ao arquivo. É uma boa ideia inseri-lo manualmente em vez de copiá-lo e colá-lo. Dessa forma, você pode ver como as ferramentas ajudam você a escrever seus arquivos Bicep.

    param cosmosDBAccountName string = 'toyrnd-${uniqueString(resourceGroup().id)}'
    param location string = resourceGroup().location
    
    resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = {
      name: cosmosDBAccountName
      location: location
      properties: {
        databaseAccountOfferType: 'Standard'
        locations: [
          {
            locationName: location
          }
        ]
      }
    }
    

    Gorjeta

    O bíceps é rigoroso sobre onde você coloca quebras de linha, então certifique-se de adicionar quebras de linha apenas onde mostrado aqui.

    Este modelo Bicep implanta uma conta do Azure Cosmos DB que é o recurso pai no qual você cria na próxima seção.

  5. Guarde as alterações ao ficheiro.

Adicionar uma base de dados

Em seguida, crie o banco de dados, que é um recurso filho da conta do Azure Cosmos DB.

  1. Na parte superior do arquivo, entre os dois parâmetros existentes, adicione o seguinte parâmetro:

    param cosmosDBDatabaseThroughput int = 400
    
  2. Sob as declarações de parâmetro, adicione a seguinte variável:

    var cosmosDBDatabaseName = 'FlightTests'
    
  3. Adicione a seguinte definição de recurso na parte inferior do arquivo, abaixo da definição de recurso de conta do Azure Cosmos DB.

    resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-05-15' = {
      parent: cosmosDBAccount
      name: cosmosDBDatabaseName
      properties: {
        resource: {
          id: cosmosDBDatabaseName
        }
        options: {
          throughput: cosmosDBDatabaseThroughput
        }
      }
    }
    

    Observe que esse código implanta o banco de dados, que é um recurso filho, usando a parent propriedade. Observe também que o código usa o tipo de recurso totalmente qualificado, com a versão da API especificada explicitamente.

  4. Guarde as alterações ao ficheiro.

Adicionar um contentor

Agora você adiciona outro recurso filho. Desta vez, você o adiciona como um recurso aninhado em vez de usar a parent propriedade.

  1. Perto da parte superior do arquivo, abaixo da definição da cosmosDBDatabaseName variável, adicione as seguintes variáveis:

    var cosmosDBContainerName = 'FlightTests'
    var cosmosDBContainerPartitionKey = '/droneId'
    
  2. Perto da parte inferior do arquivo, dentro da definição de recurso do banco de dados e antes de sua chave de fechamento (}), adicione a seguinte definição de recurso aninhado:

    resource container 'containers' = {
      name: cosmosDBContainerName
      properties: {
        resource: {
          id: cosmosDBContainerName
          partitionKey: {
            kind: 'Hash'
            paths: [
              cosmosDBContainerPartitionKey
            ]
          }
        }
        options: {}
      }
    }
    

    Observe que você usou um tipo de recurso curto, containersporque o Bicep entende que ele pertence ao tipo de recurso pai. O Bicep sabe que o tipo de recurso totalmente qualificado é Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers. Você não especificou uma versão da API, então o Bicep usa a versão do recurso pai, 2020-04-01.

    Depois de terminar, o modelo completo do Bicep deve ser semelhante a este exemplo:

    param cosmosDBAccountName string = 'toyrnd-${uniqueString(resourceGroup().id)}'
    param cosmosDBDatabaseThroughput int = 400
    param location string = resourceGroup().location
    
    var cosmosDBDatabaseName = 'FlightTests'
    var cosmosDBContainerName = 'FlightTests'
    var cosmosDBContainerPartitionKey = '/droneId'
    
    resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = {
      name: cosmosDBAccountName
      location: location
      properties: {
        databaseAccountOfferType: 'Standard'
        locations: [
          {
            locationName: location
          }
        ]
      }
    }
    
    resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-05-15' = {
      parent: cosmosDBAccount
      name: cosmosDBDatabaseName
      properties: {
        resource: {
          id: cosmosDBDatabaseName
        }
        options: {
          throughput: cosmosDBDatabaseThroughput
        }
      }
    
      resource container 'containers' = {
        name: cosmosDBContainerName
        properties: {
          resource: {
            id: cosmosDBContainerName
            partitionKey: {
              kind: 'Hash'
              paths: [
                cosmosDBContainerPartitionKey
              ]
            }
          }
          options: {}
        }
      }
    }
    
  3. Guarde as alterações ao ficheiro.

Implementar o modelo 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 instalou a CLI do Azure e lembre-se de iniciar sessão com a mesma conta que utilizou para ativar a sandbox.

  1. No menu Terminal, selecione New Terminal (Novo Terminal). A janela do terminal geralmente abre na metade inferior da tela.

  2. Se o shell mostrado no lado direito da janela do terminal for bash, o shell correto estará aberto e você poderá pular para a próxima seção.

    Captura de tela da janela do terminal do Visual Studio Code, com a opção bash mostrada.

  3. Se um shell diferente de bash for exibido, selecione a seta suspensa do shell e selecione Azure Cloud Shell (Bash).

    Captura de tela da janela do terminal do Visual Studio Code, com a lista suspensa do shell do terminal mostrada e Git Bash Default selecionado.

  4. Na lista de shells de terminal, selecione bash.

    Captura de tela da janela do terminal do Visual Studio Code, com o terminal bash selecionado.

  5. No terminal, vá para o diretório onde você salvou seu modelo. Por exemplo, se você salvou seu modelo na pasta de modelos , poderá usar este comando:

    cd templates
    

Instalar o Bicep

Execute o seguinte comando para garantir que você tenha a versão mais recente do Bicep:

az bicep install && az bicep upgrade

Iniciar sessão no Azure

  1. No terminal do Visual Studio Code, entre no Azure executando o seguinte comando:

    az login
    
  2. No browser que se abre, inicie sessão na sua conta do Azure.

    O terminal de código do Visual Studio exibe uma lista das assinaturas associadas a essa conta.

  3. Defina a assinatura padrão para todos os comandos da CLI do Azure executados nesta sessão.

    az account set --subscription "Concierge Subscription"
    

    Nota

    Se você usou mais de uma área restrita recentemente, o terminal pode exibir mais de uma instância da Assinatura do Concierge. Nesse caso, use as próximas duas etapas para definir uma como a assinatura padrão. Se o comando anterior tiver sido bem-sucedido e apenas uma Assinatura do Concierge estiver listada, ignore as duas próximas etapas.

  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 {o ID da subscrição} pelo ID da Subscrição da Assistente mais recente.

    az account set --subscription {your subscription ID}
    

Definir o grupo de recursos predefinido

Ao usar a CLI do Azure, você pode definir o grupo de recursos padrão e omitir o parâmetro do restante dos comandos da CLI do Azure neste exercício. Defina o padrão para o grupo de recursos criado para você no ambiente de área restrita.

az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"

Implementar o modelo no Azure

Execute o código a seguir do terminal no Visual Studio Code para implantar o modelo Bicep no Azure. Essa operação pode levar um ou dois minutos para ser concluída, antes que você veja uma implantação bem-sucedida.

az deployment group create --template-file main.bicep

Para implantar esse modelo no Azure, entre em sua conta do Azure a partir do terminal do Visual Studio Code. Certifique-se de que instalou o Azure PowerShell e inicie sessão na mesma conta que ativou a sandbox.

  1. No menu Terminal, selecione New Terminal (Novo Terminal). A janela do terminal geralmente abre na metade inferior da tela.

  2. Se o shell mostrado no lado direito da janela do terminal for powershell ou pwsh, o shell correto estará aberto e você poderá pular para a próxima seção.

    Captura de tela da janela do terminal do Visual Studio Code, com a opção pwsh exibida na lista suspensa do shell.

  3. Se um shell diferente de powershell ou pwsh for exibido, selecione a seta suspensa do shell e selecione PowerShell.

    Captura de tela da janela do terminal do Visual Studio Code, com a lista suspensa do shell do terminal mostrada e o PowerShell selecionado.

  4. Na lista de shells de terminal, selecione powershell ou pwsh.

    Captura de tela da janela do terminal do Visual Studio Code, com o terminal do PowerShell selecionado.

  5. No terminal, vá para o diretório onde você salvou seu modelo. Por exemplo, se você salvou seu modelo na pasta de modelos , poderá usar este comando:

    Set-Location -Path templates
    

Instalar a CLI do Bíceps

Para usar o Bicep do Azure PowerShell, instale a CLI do Bicep.

Iniciar sessão no Azure com o Azure PowerShell

  1. No terminal de código do Visual Studio, execute o seguinte comando:

    Connect-AzAccount
    

    Um navegador é aberto para que você possa entrar em sua conta do Azure.

  2. Depois de iniciar sessão no Azure, o terminal apresenta uma lista das subscrições associadas a esta conta.

    Se você ativou a área restrita, uma assinatura chamada Assinatura do concierge será exibida. Use-o para o resto do exercício.

  3. Defina a assinatura padrão para todos os comandos do Azure PowerShell executados nesta sessão.

    $context = Get-AzSubscription -SubscriptionName 'Concierge Subscription'
    Set-AzContext $context
    

    Nota

    Se você usou mais de uma área restrita recentemente, o terminal pode exibir mais de uma instância da Assinatura do Concierge. Nesse caso, use as próximas duas etapas para definir uma como a assinatura padrão. Se o comando anterior tiver sido bem-sucedido e apenas uma Assinatura do Concierge estiver listada, ignore as duas próximas etapas.

  4. Obtenha o ID de subscrição. A execução do comando a seguir lista suas assinaturas e suas IDs. Concierge SubscriptionProcure e, em seguida, copie o ID da segunda coluna. Parece algo como aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.

    Get-AzSubscription
    
  5. Altere sua assinatura ativa para a Assinatura do Concierge. Certifique-se de que substitui {O seu ID de subscrição} pelo que copiou.

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    

Definir o grupo de recursos predefinido

Você pode definir o grupo de recursos padrão e omitir o parâmetro do restante dos comandos do Azure PowerShell neste exercício. Defina esse padrão para o grupo de recursos criado para você no ambiente de área restrita.

Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>

Implementar o modelo no Azure

Implante o modelo no Azure usando o seguinte comando do Azure PowerShell no terminal. Essa operação pode levar um ou dois minutos para ser concluída, antes que você veja uma implantação bem-sucedida.

New-AzResourceGroupDeployment -TemplateFile main.bicep

Verificar a implementação

  1. Aceda ao portal do Azure e certifique-se de que está na subscrição sandbox:

    1. Selecione o seu avatar no canto superior direito da página.

    2. Selecione Trocar diretório. Na lista, selecione o diretório Sandbox do Microsoft Learn.

  2. Na página inicial, selecione Grupos de recursos. O painel Grupos de recursos é exibido.

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

  4. Em Visão geral, você pode ver que uma implantação foi bem-sucedida.

    Captura de tela da interface do portal do Azure para a visão geral do grupo de recursos, com a seção de implantações mostrando que uma foi bem-sucedida.

  5. Selecione 1 efetuada com êxito para ver os detalhes da implementação.

    Captura de tela da interface do portal do Azure para as implantações, com a implantação listada e um status bem-sucedido.

  6. Selecione a implantação chamada principal para ver quais recursos foram implantados e, em seguida, selecione Detalhes da implantação para expandi-la. Nesse caso, há uma conta, um banco de dados e um contêiner do Cosmos DB listados.

    Captura de tela da interface do portal do Azure para a implantação específica, com três recursos do Cosmos DB listados.

  7. Deixe a página aberta em seu navegador, para que você possa verificar as implantações novamente mais tarde.