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-11-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-11-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, por isso o Bicep usa a versão do recurso pai.

  3. Guarde as alterações ao ficheiro.

Verifique seu arquivo Bicep

Depois de concluir todas as alterações anteriores, o seu arquivo main.bicep deve se parecer com 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-11-15' = {
  name: cosmosDBAccountName
  location: location
  properties: {
    databaseAccountOfferType: 'Standard'
    locations: [
      {
        locationName: location
      }
    ]
  }
}

resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-11-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: {}
    }
  }
}

Caso contrário, copie o exemplo ou ajuste o modelo para corresponder ao exemplo.

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 a janela do terminal exibir bash no lado direito, isso significa que o shell correto já está aberto. Como alternativa, se você vir um ícone de shell bash à direita, você pode selecioná-lo para iniciar o shell.

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

    Se um shell diferente de bash aparecer, selecione a seta suspensa do shell e, em seguida, selecione Git 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.

  3. 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. Selecione a assinatura chamada Concierge Subscription.

    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.

    1. Obtenha os IDs da Subscrição de Assistente.

        az account list \
         --refresh \
         --query "[?contains(name, 'Concierge Subscription')].id" \
         --output table
      
    2. 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 --name main --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 a janela do terminal exibir pwsh ou powershell no lado direito, isso significa que o shell correto já está aberto. Como alternativa, se você vir um ícone de shell do PowerShell à direita, poderá selecioná-lo para iniciar o shell.

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

    Se um shell diferente de pwsh ou powershell 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.

  3. 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. O navegador pode ser aberto em segundo plano.

  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. Selecione-o para o resto do exercício.

    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.

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