Oefening: onderliggende resources definiëren
Notitie
De eerste keer dat u een sandbox activeert en de voorwaarden accepteert, is uw Microsoft-account gekoppeld aan een nieuwe Azure-directory met de naam Microsoft Learn Sandbox. U wordt ook toegevoegd aan een speciaal abonnement met de naam Concierge-abonnement.
U begint te werken aan de aanvragen van uw R&D-team en besluit te beginnen met het bouwen van een Azure Cosmos DB-database voor de testgegevens van de speelgoed drone. In deze oefening maakt u het Azure Cosmos DB-account en twee onderliggende resources, één met behulp van de parent
eigenschap en de andere als geneste resource.
Tijdens het proces gaat u het volgende doen:
- Maak een Bicep-bestand waarmee een Cosmos DB-account wordt geïmplementeerd.
- Voeg een database en container toe, die onderliggende resources van het Cosmos DB-account zijn.
- Implementeer de sjabloon en controleer de implementatie.
In deze oefening wordt de Bicep-extensie voor Visual Studio Code gebruikt. Zorg ervoor dat u deze extensie installeert in Visual Studio Code.
Een Bicep-sjabloon maken die een Azure Cosmos DB-account bevat
Eerst maakt u een nieuwe Bicep-sjabloon met een Azure Cosmos DB-account. Hiervoor doet u het volgende:
Open Visual Studio Code.
Maak een nieuw bestand met de naam main.bicep.
Sla het lege bestand op zodat Visual Studio Code de Bicep-hulpprogramma's laadt.
U kunt Bestand>opslaan als selecteren of op Ctrl+S drukken in Windows (⌘+S in macOS). Vergeet niet waar u het bestand hebt opgeslagen. U kunt bijvoorbeeld een map met scripts maken om deze op te slaan in.
Voeg de volgende inhoud toe aan het bestand. Het is een goed idee om het handmatig in te voeren in plaats van deze te kopiëren en plakken. Op die manier kunt u zien hoe u met de tooling uw Bicep-bestanden kunt schrijven.
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 } ] } }
Tip
Bicep is strikt over waar u regeleinden plaatst, dus zorg ervoor dat u alleen regeleinden toevoegt waar hier wordt weergegeven.
Met deze Bicep-sjabloon wordt een Azure Cosmos DB-account geïmplementeerd dat de bovenliggende resource is waarop u in de volgende sectie hebt gebouwd.
Sla de wijzigingen in het bestand op.
Een database toevoegen
Vervolgens maakt u de database. Dit is een onderliggende resource van het Azure Cosmos DB-account.
Voeg boven aan het bestand, tussen de twee bestaande parameters, de volgende parameter toe:
param cosmosDBDatabaseThroughput int = 400
Voeg onder de parameterdeclaraties de volgende variabele toe:
var cosmosDBDatabaseName = 'FlightTests'
Voeg de volgende resourcedefinitie onder aan het bestand toe, onder de resourcedefinitie van het Azure Cosmos DB-account.
resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-05-15' = { parent: cosmosDBAccount name: cosmosDBDatabaseName properties: { resource: { id: cosmosDBDatabaseName } options: { throughput: cosmosDBDatabaseThroughput } } }
U ziet dat met deze code de database, een onderliggende resource, wordt geïmplementeerd met behulp van de
parent
eigenschap. U ziet ook dat de code gebruikmaakt van het volledig gekwalificeerde resourcetype, waarbij de API-versie expliciet is opgegeven.Sla de wijzigingen in het bestand op.
Een container toevoegen
Nu voegt u nog een onderliggende resource toe. Deze keer voegt u deze toe als een geneste resource in plaats van de parent
eigenschap te gebruiken.
Voeg boven aan het bestand, onder de definitie van de
cosmosDBDatabaseName
variabele, de volgende variabelen toe:var cosmosDBContainerName = 'FlightTests' var cosmosDBContainerPartitionKey = '/droneId'
Voeg aan de onderkant van het bestand, binnen de definitie van de databaseresource en vóór de afsluitende accolade (
}
), de volgende geneste resourcedefinitie toe:resource container 'containers' = { name: cosmosDBContainerName properties: { resource: { id: cosmosDBContainerName partitionKey: { kind: 'Hash' paths: [ cosmosDBContainerPartitionKey ] } } options: {} } }
U hebt een kort resourcetype gebruikt,
containers
omdat Bicep begrijpt dat het behoort tot het bovenliggende resourcetype. Bicep weet dat het volledig gekwalificeerde resourcetype isMicrosoft.DocumentDB/databaseAccounts/sqlDatabases/containers
. U hebt geen API-versie opgegeven, dus Bicep gebruikt de versie van de bovenliggende resource.2020-04-01
Nadat u klaar bent, moet uw volledige Bicep-sjabloon er als volgt uitzien:
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: {} } } }
Sla de wijzigingen in het bestand op.
De sjabloon implementeren in Azure
Als u deze sjabloon wilt implementeren in Azure, moet u zich aanmelden bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u de Azure CLI hebt geïnstalleerd en vergeet niet om u aan te melden met hetzelfde account dat u hebt gebruikt om de sandbox te activeren.
Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
Als de shell aan de rechterkant van het terminalvenster bash is, is de juiste shell geopend en kunt u doorgaan naar de volgende sectie.
Als een andere shell dan bash wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens Azure Cloud Shell (Bash).
Selecteer bash in de lijst met terminalshells.
Ga in de terminal naar de map waarin u de sjabloon hebt opgeslagen. Als u de sjabloon bijvoorbeeld hebt opgeslagen in de map sjablonen , kunt u deze opdracht gebruiken:
cd templates
Bicep installeren
Voer de volgende opdracht uit om te controleren of u de nieuwste versie van Bicep hebt:
az bicep install && az bicep upgrade
Aanmelden bij Azure
Meld u in de Visual Studio Code-terminal aan bij Azure door de volgende opdracht uit te voeren:
az login
Meld u aan bij uw Azure-account in de browser die wordt geopend.
In de Visual Studio Code-terminal wordt een lijst weergegeven met de abonnementen die aan dit account zijn gekoppeld.
Stel het standaardabonnement in voor alle Azure CLI-opdrachten die u in deze sessie uitvoert.
az account set --subscription "Concierge Subscription"
Notitie
Als u meer dan één sandbox onlangs hebt gebruikt, kan in de terminal meer dan één exemplaar van Concierge-abonnement worden weergegeven. In dit geval gebruikt u de volgende twee stappen om er een in te stellen als het standaardabonnement. Als de voorgaande opdracht is geslaagd en er slechts één Concierge-abonnement wordt weergegeven, slaat u de volgende twee stappen over.
Verkrijg de id’s van het Concierge-abonnement.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Stel het standaardabonnement in met behulp van de abonnements-id. Vervang {uw abonnements-id} door de meest recente Concierge-abonnements-id.
az account set --subscription {your subscription ID}
De standaardresourcegroep instellen
Wanneer u de Azure CLI gebruikt, kunt u de standaardresourcegroep instellen en de parameter weglaten uit de rest van de Azure CLI-opdrachten in deze oefening. Stel de standaardinstelling in op de resourcegroep die voor u is gemaakt in de sandbox-omgeving.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
De sjabloon implementeren in Azure
Voer de volgende code uit vanuit de terminal in Visual Studio Code om de Bicep-sjabloon in Azure te implementeren. Het kan een paar minuten duren voordat deze bewerking is voltooid, voordat u een geslaagde implementatie ziet.
az deployment group create --template-file main.bicep
Als u deze sjabloon wilt implementeren in Azure, meldt u zich aan bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u Azure PowerShell hebt geïnstalleerd en meld u aan bij hetzelfde account dat de sandbox heeft geactiveerd.
Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
Als de shell aan de rechterkant van het terminalvenster powershell of pwsh is, is de juiste shell geopend en kunt u doorgaan naar de volgende sectie.
Als een andere shell dan powershell of pwsh wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens PowerShell.
Selecteer powershell of pwsh in de lijst met terminalshells.
Ga in de terminal naar de map waarin u de sjabloon hebt opgeslagen. Als u uw sjabloon bijvoorbeeld hebt opgeslagen in de map sjablonen , kunt u deze opdracht gebruiken:
Set-Location -Path templates
Bicep CLI installeren
Als u Bicep wilt gebruiken vanuit Azure PowerShell, installeert u de Bicep CLI.
Aanmelden bij Azure met behulp van Azure PowerShell
Voer in de Visual Studio Code-terminal de volgende opdracht uit:
Connect-AzAccount
Er wordt een browser geopend, zodat u zich kunt aanmelden bij uw Azure-account.
Nadat u zich hebt aangemeld bij Azure, wordt in de terminal een lijst weergegeven met de abonnementen die aan dit account zijn gekoppeld.
Als u de sandbox hebt geactiveerd, wordt een abonnement met de naam Concierge-abonnement weergegeven. Gebruik deze voor de rest van de oefening.
Stel het standaardabonnement in voor alle Azure PowerShell-opdrachten die u in deze sessie uitvoert.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
Notitie
Als u meer dan één sandbox onlangs hebt gebruikt, kan in de terminal meer dan één exemplaar van Concierge-abonnement worden weergegeven. In dit geval gebruikt u de volgende twee stappen om er een in te stellen als het standaardabonnement. Als de voorgaande opdracht is geslaagd en er slechts één Concierge-abonnement wordt weergegeven, slaat u de volgende twee stappen over.
Verkrijg de abonnements-id. Als u de volgende opdracht uitvoert, worden uw abonnementen en hun id's vermeld.
Concierge Subscription
Zoek en kopieer de id uit de tweede kolom. Het ziet er ongeveer als volgt uit:aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Wijzig uw actieve abonnement in Concierge-abonnement. Zorg ervoor dat u {Uw abonnements-id} vervangt door de id die u hebt gekopieerd.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
De standaardresourcegroep instellen
U kunt de standaardresourcegroep instellen en de parameter weglaten uit de rest van de Azure PowerShell-opdrachten in deze oefening. Stel deze standaardinstelling in op de resourcegroep die voor u is gemaakt in de sandbox-omgeving.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
De sjabloon implementeren in Azure
Implementeer de sjabloon in Azure met behulp van de volgende Azure PowerShell-opdracht in de terminal. Het kan een paar minuten duren voordat deze bewerking is voltooid, voordat u een geslaagde implementatie ziet.
New-AzResourceGroupDeployment -TemplateFile main.bicep
De implementatie controleren
Ga naar Azure Portal en zorg ervoor dat u zich in het sandbox-abonnement bevindt:
Selecteer uw avatar in de rechterbovenhoek van de pagina.
Selecteer Schakelen tussen directory's. In de lijst kiest u de map Microsoft Learn Sandbox.
Selecteer Resourcegroepen op de startpagina. Het deelvenster Resourcegroepen wordt weergegeven.
Selecteer
[naam sandboxresourcegroep] .In Overzicht ziet u dat één implementatie is geslaagd.
Selecteer 1 geslaagd om de details van de implementatie te bekijken.
Selecteer de implementatie met de naam Main om te zien welke resources zijn geïmplementeerd en selecteer vervolgens Implementatiedetails om deze uit te vouwen. In dit geval wordt een Cosmos DB-account, -database en -container vermeld.
Laat de pagina geopend in uw browser, zodat u de implementaties later opnieuw kunt controleren.