Exercício – Definir recursos filho
Observação
Na primeira vez que você ativar uma área restrita e aceitar os termos, sua conta Microsoft será associada a um novo diretório do Azure chamado Área Restrita do Microsoft Learn. Você também será adicionado a uma assinatura especial chamada Assinatura do Concierge.
Você está começando a trabalhar nas solicitações de 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, crie uma conta do Azure Cosmos DB e dois recursos filhos, um usando a propriedade parent
e o outro como um recurso aninhado.
Durante o processo, você:
- Crie um arquivo Bicep que implanta uma conta Cosmos DB.
- Adicione um banco de dados e um contêiner, que são recursos- filho da conta Cosmos DB.
- Implante o modelo e verifique a implantação.
Este exercício usa a extensão Bicep para Visual Studio Code. É necessário que você instale essa extensão no Visual Studio Code.
Criar um modelo Bicep que inclua uma conta do Azure Cosmos DB
Primeiro, crie um modelo Bicep com uma conta do Azure Cosmos DB. Para fazer isso:
Abra o Visual Studio Code.
Crie um arquivo chamado main.bicep.
Salve o arquivo vazio para que Visual Studio Code carregue as ferramentas Bicep.
Você pode selecionar Arquivo>Salvar como ou pressionar Ctrl+S no Windows (⌘+S no macOS). Lembre-se do local em que salvou o arquivo. Por exemplo, você pode criar uma pasta scripts para salvá-lo.
Adicione o seguinte conteúdo ao arquivo. Também convém informá-lo manualmente, em vez de copiar e colar. Dessa forma, você pode ver como as ferramentas ajudam 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 } ] } }
Dica
O Bicep é rigoroso sobre onde você coloca quebras de linha, portanto, lembre-se de adicioná-las somente onde mostrado aqui.
Esse modelo do Bicep implanta uma conta do Azure Cosmos DB que é o recurso pai sobre o qual você criará na próxima seção.
Salve as alterações no arquivo.
Adicionar um banco de dados
Agora, 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 definição de recurso a seguir à parte inferior do arquivo, abaixo da definição de recursos da 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 propriedade
parent
. Observe também que o código usa o tipo de recurso totalmente qualificado, com a versão da API especificada explicitamente.Salve as alterações no arquivo.
Adicionar um contêiner
Agora adicione outro recurso filho. Dessa vez, adicione o como um recurso aninhado em vez de usar a propriedade parent
.
Próximo à parte superior do arquivo, abaixo da definição da variável
cosmosDBDatabaseName
, adicione as seguintes variáveis:var cosmosDBContainerName = 'FlightTests' var cosmosDBContainerPartitionKey = '/droneId'
Próximo à 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
. Como você não especificou uma versão da API, o Bicep usa a versão do recurso pai,2020-04-01
.Após a conclusão, seu modelo completo de Bicep deverá 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-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: {} } } }
Salve as alterações no arquivo.
Implantar o modelo no Azure
Para implantar esse modelo no Azure, será necessário entrar em sua conta do Azure do terminal do Visual Studio Code. Verifique se você tem a CLI do Azure instalada e lembre-se de entrar com a mesma conta que usou para ativar a área restrita.
No menu Terminal, selecione Novo Terminal. A janela do terminal geralmente é aberta na metade inferior da tela.
Se o shell mostrado no lado direito da janela do terminal for o bash, o shell correto será aberto e você poderá passar 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á até o diretório no qual você salvou o modelo. Por exemplo, se você salvou o modelo na pasta modelos, use este comando:
cd templates
Instalar o Bicep
Veja se você tem a versão mais recente do Bicep executando o seguinte comando:
az bicep install && az bicep upgrade
Entrar no Azure
No terminal do Visual Studio Code, entre no Azure executando o seguinte comando:
az login
No navegador que é aberto, entre em sua conta do Azure.
O terminal do Visual Studio Code exibe uma lista das assinaturas associadas a essa conta.
Defina a assinatura padrão para todos os comandos da CLI do Azure que você executar nesta sessão.
az account set --subscription "Concierge Subscription"
Observação
Se você usou mais de uma área restrita recentemente, o terminal poderá exibir mais de uma instância da Assinatura do Concierge. Nesse caso, use as duas próximas etapas para definir uma delas 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 as IDs da Assinatura do Concierge.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Defina a assinatura padrão usando a ID da assinatura. Substitua {sua ID da assinatura} pela ID da Assinatura de Concierge mais recente.
az account set --subscription {your subscription ID}
Definir o grupo de recursos padrão
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 como padrão o grupo de recursos criado para você no ambiente de área restrita.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Implantar o modelo no Azure
Execute o código a seguir no terminal do 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 na sua conta do Azure por meio do terminal do Visual Studio Code. Verifique se você instalou o Azure PowerShell e entre na mesma conta que ativou a área restrita.
No menu Terminal, selecione Novo Terminal. A janela do terminal geralmente é aberta na metade inferior da tela.
Se o shell mostrado no lado direito da janela do terminal for o powershell ou o pwsh, o shell correto será aberto e você poderá passar para a próxima seção.
Se aparecer um shell diferente do powershell ou pwsh, selecione a seta da lista de seleção do shell e escolha PowerShell.
Na lista de shells de terminal, selecione powershell ou pwsh.
No terminal, vá até o diretório no qual você salvou o modelo. Por exemplo, se você salvou o modelo na pasta modelos, use este comando:
Set-Location -Path templates
Instalar a CLI do Bicep
Para usar o Bicep no Azure PowerShell, instale a CLI do Bicep.
Entrar no Azure usando o Azure PowerShell
No terminal do Visual Studio Code, execute o seguinte comando:
Connect-AzAccount
Um navegador será aberto para que seja possível entrar na sua conta do Azure.
Após entrar no Azure, o terminal exibirá uma lista das assinaturas associadas a essa conta.
Se você ativou a área restrita, será exibida uma assinatura chamada Assinatura do Concierge. Use-a no restante do exercício.
Defina a assinatura padrão para todos os comandos do Azure PowerShell que você executar nesta sessão.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
Observação
Se você usou mais de uma área restrita recentemente, o terminal poderá exibir mais de uma instância da Assinatura do Concierge. Nesse caso, use as duas próximas etapas para definir uma delas 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 a ID da assinatura. Executar o comando a seguir lista as suas assinaturas e as respectivas IDs. Procure
Concierge Subscription
e copie a ID da segunda coluna. É algo semelhante aaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Altere a sua assinatura ativa para Assinatura de Concierge. Lembre-se de substituir {Sua ID da assinatura} por aquela que você copiou.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Definir o grupo de recursos padrão
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 como o grupo de recursos criado para você no ambiente de área restrita.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Implantar o modelo no Azure
Implante o modelo no Azure usando o comando do Azure PowerShell a seguir 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 implantação
Vá para o portal do Azure e verifique se você está na assinatura da área restrita:
Selecione seu avatar no canto superior direito da página.
Selecione Mudar diretório. Na lista, escolha o diretório Área restrita do Microsoft Learn.
Na página inicial, selecione Grupos de recursos. O painel Grupos de recursos é exibido.
Selecione
[nome do grupo de recursos de área restrita] .Na Visão Geral, você pode ver que a implantação foi bem-sucedida.
Selecione 1 Êxito para ver os detalhes da implantação.
Selecione a implantação chamada principal para ver quais recursos foram implantados e selecione Detalhes da implantação para expandi-la. Nesse caso, há uma conta do Cosmos DB, um banco de dados e um contêiner listados.
Deixe a página aberta no navegador para que você possa verificar as implantações novamente mais tarde.