Exercício - Definir recursos filho
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:
Abra o Visual Studio Code.
Crie um novo arquivo chamado main.bicep.
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.
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.
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.
Na parte superior do arquivo, entre os dois parâmetros existentes, adicione o seguinte parâmetro:
param cosmosDBDatabaseThroughput int = 400
Sob as declarações de parâmetro, adicione a seguinte variável:
var cosmosDBDatabaseName = 'FlightTests'
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.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.
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'
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,
containers
porque 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: {} } } }
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.
No menu Terminal, selecione New Terminal (Novo Terminal). A janela do terminal geralmente abre na metade inferior da tela.
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.
Se um shell diferente de bash for exibido, selecione a seta suspensa do shell e selecione Azure Cloud Shell (Bash).
Na lista de shells de terminal, selecione bash.
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
No terminal do Visual Studio Code, entre no Azure executando o seguinte comando:
az login
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.
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.
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 {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.
No menu Terminal, selecione New Terminal (Novo Terminal). A janela do terminal geralmente abre na metade inferior da tela.
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.
Se um shell diferente de powershell ou pwsh for exibido, selecione a seta suspensa do shell e selecione PowerShell.
Na lista de shells de terminal, selecione powershell ou pwsh.
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
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.
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.
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.
Obtenha o ID de subscrição. A execução do comando a seguir lista suas assinaturas e suas IDs.
Concierge Subscription
Procure e, em seguida, copie o ID da segunda coluna. Parece algo comoaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
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
Aceda ao portal do Azure e certifique-se de que está na subscrição sandbox:
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.
Na página inicial, selecione Grupos de recursos. O painel Grupos de recursos é exibido.
Selecione
[nome do grupo de recursos do sandbox] .Em Visão geral, você pode ver que uma implantação foi bem-sucedida.
Selecione 1 efetuada com êxito para ver os detalhes da implementação.
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.
Deixe a página aberta em seu navegador, para que você possa verificar as implantações novamente mais tarde.