Oefening: onderliggende resources definiëren

Voltooid

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:

  1. Open Visual Studio Code.

  2. Maak een nieuw bestand met de naam main.bicep.

  3. 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.

  4. 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.

  5. 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.

  1. Voeg boven aan het bestand, tussen de twee bestaande parameters, de volgende parameter toe:

    param cosmosDBDatabaseThroughput int = 400
    
  2. Voeg onder de parameterdeclaraties de volgende variabele toe:

    var cosmosDBDatabaseName = 'FlightTests'
    
  3. 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.

  4. 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.

  1. Voeg boven aan het bestand, onder de definitie van de cosmosDBDatabaseName variabele, de volgende variabelen toe:

    var cosmosDBContainerName = 'FlightTests'
    var cosmosDBContainerPartitionKey = '/droneId'
    
  2. 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, containersomdat Bicep begrijpt dat het behoort tot het bovenliggende resourcetype. Bicep weet dat het volledig gekwalificeerde resourcetype is Microsoft.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: {}
        }
      }
    }
    
  3. 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.

  1. Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.

  2. Als de shell aan de rechterkant van het terminalvenster bash is, is de juiste shell geopend en kunt u doorgaan naar de volgende sectie.

    Schermopname van het Visual Studio Code-terminalvenster, met de bash-optie weergegeven.

  3. Als een andere shell dan bash wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens Azure Cloud Shell (Bash).

    Schermopname van het Visual Studio Code-terminalvenster, met de vervolgkeuzelijst terminalshell weergegeven en Git Bash Default geselecteerd.

  4. Selecteer bash in de lijst met terminalshells.

    Schermopname van het Visual Studio Code-terminalvenster, met de bash-terminal geselecteerd.

  5. 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

  1. Meld u in de Visual Studio Code-terminal aan bij Azure door de volgende opdracht uit te voeren:

    az login
    
  2. 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.

  3. 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.

  4. Verkrijg de id’s van het Concierge-abonnement.

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. 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.

  1. Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.

  2. 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.

    Schermopname van het Visual Studio Code-terminalvenster, met de optie pwsh weergegeven in de vervolgkeuzelijst shell.

  3. Als een andere shell dan powershell of pwsh wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens PowerShell.

    Schermopname van het Visual Studio Code-terminalvenster, met de vervolgkeuzelijst terminalshell weergegeven en PowerShell geselecteerd.

  4. Selecteer powershell of pwsh in de lijst met terminalshells.

    Schermopname van het Visual Studio Code-terminalvenster, waarbij de PowerShell-terminal is geselecteerd.

  5. 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

  1. 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.

  2. 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.

  3. 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.

  4. Verkrijg de abonnements-id. Als u de volgende opdracht uitvoert, worden uw abonnementen en hun id's vermeld. Concierge SubscriptionZoek en kopieer de id uit de tweede kolom. Het ziet er ongeveer als volgt uit: aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.

    Get-AzSubscription
    
  5. 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

  1. Ga naar Azure Portal en zorg ervoor dat u zich in het sandbox-abonnement bevindt:

    1. Selecteer uw avatar in de rechterbovenhoek van de pagina.

    2. Selecteer Schakelen tussen directory's. In de lijst kiest u de map Microsoft Learn Sandbox.

  2. Selecteer Resourcegroepen op de startpagina. Het deelvenster Resourcegroepen wordt weergegeven.

  3. Selecteer [naam sandboxresourcegroep].

  4. In Overzicht ziet u dat één implementatie is geslaagd.

    Schermopname van de Azure Portal-interface voor het overzicht van de resourcegroep, met de sectie implementaties die laat zien dat deze is geslaagd.

  5. Selecteer 1 geslaagd om de details van de implementatie te bekijken.

    Schermopname van de Azure Portal-interface voor de implementaties, waarbij de ene implementatie wordt vermeld en een geslaagde status.

  6. 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.

    Schermopname van de Azure Portal-interface voor de specifieke implementatie, met drie Cosmos DB-resources vermeld.

  7. Laat de pagina geopend in uw browser, zodat u de implementaties later opnieuw kunt controleren.