Övning – Definiera underordnade resurser

Slutförd

Kommentar

Första gången du aktiverar en sandbox-miljö och godkänner villkoren associeras ditt Microsoft-konto med en ny Azure-katalog med namnet Microsoft Learn Sandbox. Du läggs också till i en särskild prenumeration med namnet Concierge-prenumeration.

Du börjar arbeta med R&D-teamets begäranden och bestämmer dig för att börja med att skapa en Azure Cosmos DB-databas för leksaksdrönares testdata. I den här övningen skapar du Azure Cosmos DB-kontot och två underordnade resurser, en med hjälp parent av egenskapen och den andra som en kapslad resurs.

Under processen:

  • Skapa en Bicep-fil som distribuerar ett Cosmos DB-konto.
  • Lägg till en databas och container, som är underordnade resurser för Cosmos DB-kontot.
  • Distribuera mallen och verifiera distributionen.

Den här övningen använder Bicep-tillägget för Visual Studio Code. Installera tillägget i Visual Studio Code.

Skapa en Bicep-mall som innehåller ett Azure Cosmos DB-konto

Först skapar du en ny Bicep-mall med ett Azure Cosmos DB-konto. Så här gör du:

  1. Öppna Visual Studio Code.

  2. Skapa en ny fil med namnet main.bicep.

  3. Spara den tomma filen så att Visual Studio Code läser in Bicep-verktyget.

    Du kan antingen välja Spara som-fil> eller trycka på Ctrl+S i Windows (⌘+S på macOS). Kom ihåg var du sparade filen. Du kanske till exempel vill skapa en skriptmapp för att spara den.

  4. Lägg till följande innehåll i filen. Det är en bra idé att ange den manuellt i stället för att kopiera och klistra in den. På så sätt kan du se hur verktygen hjälper dig att skriva dina Bicep-filer.

    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
          }
        ]
      }
    }
    

    Dricks

    Bicep är strikt om var du sätter radbrytningar, så se till att lägga till radbrytningar endast där visas här.

    Den här Bicep-mallen distribuerar ett Azure Cosmos DB-konto som är den överordnade resurs som du bygger vidare på i nästa avsnitt.

  5. Spara ändringarna i filen.

Lägga till en databas

Sedan skapar du databasen, som är en underordnad resurs för Azure Cosmos DB-kontot.

  1. Lägg till följande parameter överst i filen mellan de två befintliga parametrarna:

    param cosmosDBDatabaseThroughput int = 400
    
  2. Under parameterdeklarationerna lägger du till följande variabel:

    var cosmosDBDatabaseName = 'FlightTests'
    
  3. Lägg till följande resursdefinition längst ned i filen under resursdefinitionen för Azure Cosmos DB-kontot.

    resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-05-15' = {
      parent: cosmosDBAccount
      name: cosmosDBDatabaseName
      properties: {
        resource: {
          id: cosmosDBDatabaseName
        }
        options: {
          throughput: cosmosDBDatabaseThroughput
        }
      }
    }
    

    Observera att den här koden distribuerar databasen, som är en underordnad parent resurs, med hjälp av egenskapen . Observera också att koden använder den fullständigt kvalificerade resurstypen, med api-versionen uttryckligen angiven.

  4. Spara ändringarna i filen.

Lägga till en container

Nu lägger du till ytterligare en underordnad resurs. Den här gången lägger du till den som en kapslad resurs i stället för att parent använda egenskapen .

  1. Längst upp i filen, under variabeldefinitionen cosmosDBDatabaseName , lägger du till följande variabler:

    var cosmosDBContainerName = 'FlightTests'
    var cosmosDBContainerPartitionKey = '/droneId'
    
  2. Lägg till följande kapslade resursdefinition i databasens resursdefinition och före dess avslutande klammerparentes (}) längst ned i filen:

    resource container 'containers' = {
      name: cosmosDBContainerName
      properties: {
        resource: {
          id: cosmosDBContainerName
          partitionKey: {
            kind: 'Hash'
            paths: [
              cosmosDBContainerPartitionKey
            ]
          }
        }
        options: {}
      }
    }
    

    Observera att du använde en kort resurstyp, containers, eftersom Bicep förstår att den tillhör den överordnade resurstypen. Bicep vet att den fullständigt kvalificerade resurstypen är Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers. Du har inte angett någon API-version, så Bicep använder versionen från den överordnade resursen. 2020-04-01

    När du är klar bör din fullständiga Bicep-mall se ut så här:

    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. Spara ändringarna i filen.

Distribuera mallen till Azure

För att distribuera mallen till Azure behöver du logga in på ditt Azure-konto från Visual Studio Code-terminalen. Se till att du har installerat Azure CLI och kom ihåg att logga in med samma konto som du använde för att aktivera sandbox-miljön.

  1. I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.

  2. Om terminalfönstret visar bash på höger sida innebär det att rätt gränssnitt redan är öppet. Om du ser en bash shell-ikon till höger kan du välja den för att starta gränssnittet.

    Skärmbild av terminalfönstret i Visual Studio Code, där bash-alternativet visas.

    Om ett annat gränssnitt än bash visas väljer du listrutepilen för gränssnittet och väljer sedan Git Bash.

    Skärmbild av terminalfönstret i Visual Studio Code, där listrutan terminalgränssnitt visas och Git Bash Default har valts.

  3. I terminalen går du till katalogen där du sparade mallen. Om du till exempel har sparat mallen i mallmappen kan du använda det här kommandot:

    cd templates
    

Installera Bicep

Kör följande kommando för att se till att du har den senaste versionen av Bicep:

az bicep install && az bicep upgrade

Logga in på Azure

  1. Logga in på Azure i Visual Studio Code-terminalen genom att köra följande kommando:

    az login
    
  2. Logga in på ditt Azure-konto i webbläsaren som öppnas.

    Visual Studio Code-terminalen visar en lista över de prenumerationer som är associerade med det här kontot.

  3. Ange standardprenumerationen för alla Azure CLI-kommandon som du kör i den här sessionen.

    az account set --subscription "Concierge Subscription"
    

    Kommentar

    Om du har använt mer än en sandbox-miljö nyligen kan terminalen visa mer än en instans av Concierge-prenumerationen. I det här fallet använder du följande två steg för att ange ett som standardprenumeration. Om föregående kommando lyckades och endast en Concierge-prenumeration visas hoppar du över de kommande två stegen.

  4. Hämta Concierge-prenumerationernas ID:n.

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. Använd prenumerations-ID:t för att ange standardprenumerationen. Ersätt {your subscription ID} med ID:t för den senaste Concierge-prenumerationen.

    az account set --subscription {your subscription ID}
    

Ange standardresursgruppen

När du använder Azure CLI kan du ange standardresursgruppen och utelämna parametern från resten av Azure CLI-kommandona i den här övningen. Ange standardvärdet för den resursgrupp som skapas åt dig i sandbox-miljön.

az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"

Distribuera mallen till Azure

Kör följande kod från terminalen i Visual Studio Code för att distribuera Bicep-mallen till Azure. Den här åtgärden kan ta en minut eller två att slutföra innan du ser en lyckad distribution.

az deployment group create --template-file main.bicep

Om du vill distribuera den här mallen till Azure loggar du in på ditt Azure-konto från Visual Studio Code-terminalen. Se till att du har installerat Azure PowerShell och logga in på samma konto som aktiverade sandbox-miljön.

  1. I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.

  2. Om terminalfönstret visar pwsh eller powershell till höger betyder det att rätt gränssnitt redan är öppet. Om du ser en PowerShell-gränssnittsikon till höger kan du också välja den för att starta gränssnittet.

    Skärmbild av terminalfönstret i Visual Studio Code med pwsh-alternativet som visas i listrutan shell.

    Om ett annat gränssnitt än pwsh eller powershell visas väljer du listrutepilen shell och väljer sedan PowerShell.

    Skärmbild av Terminalfönstret i Visual Studio Code, med listrutan terminalgränssnitt som visas och PowerShell valt.

  3. I terminalen går du till katalogen där du sparade mallen. Om du till exempel har sparat mallen i mallmappen kan du använda det här kommandot:

    Set-Location -Path templates
    

Installera Bicep CLI

Om du vill använda Bicep från Azure PowerShell installerar du Bicep CLI.

Logga in i Azure med Azure PowerShell

  1. Kör följande kommando i Visual Studio Code-terminalen:

    Connect-AzAccount
    

    En webbläsare öppnas så att du kan logga in på ditt Azure-konto.

  2. När du har loggat in på Azure visar terminalen en lista över de prenumerationer som är associerade med det här kontot.

    Om du har aktiverat sandbox-miljön visas en prenumeration med namnet Concierge-prenumeration . Använd den för resten av övningen.

  3. Ange standardprenumerationen för alla Azure PowerShell-kommandon som du kör i den här sessionen.

    $context = Get-AzSubscription -SubscriptionName 'Concierge Subscription'
    Set-AzContext $context
    

    Kommentar

    Om du har använt mer än en sandbox-miljö nyligen kan terminalen visa mer än en instans av Concierge-prenumerationen. I det här fallet använder du följande två steg för att ange ett som standardprenumeration. Om föregående kommando lyckades och endast en Concierge-prenumeration visas hoppar du över de kommande två stegen.

  4. Skaffa prenumerations-ID:t. När du kör följande kommando visas dina prenumerationer och deras ID:n. Concierge SubscriptionLeta efter och kopiera sedan ID:t från den andra kolumnen. Det ser ut ungefär som aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.

    Get-AzSubscription
    
  5. Ändra din aktiva prenumeration till Concierge-prenumeration. Ersätt {Ditt prenumerations-ID } med det som du kopierade.

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    

Ange standardresursgruppen

Du kan ange standardresursgruppen och utelämna parametern från resten av Azure PowerShell-kommandona i den här övningen. Ange den här standardinställningen till den resursgrupp som skapats åt dig i sandbox-miljön.

Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>

Distribuera mallen till Azure

Distribuera mallen till Azure med hjälp av följande Azure PowerShell-kommando i terminalen. Den här åtgärden kan ta en minut eller två att slutföra innan du ser en lyckad distribution.

New-AzResourceGroupDeployment -TemplateFile main.bicep

Verifiera distributionen

  1. Gå till Azure Portal och kontrollera att du är i sandbox-prenumerationen:

    1. Välj din avatar i det övre högra hörnet på sidan.

    2. Välj Växla katalog. Välj katalogen Sandbox-miljö för Microsoft Learn i listan.

  2. På startsidan väljer du Resursgrupper. Fönstret Resursgrupper visas.

  3. Välj [resursgruppsnamn för sandbox-miljö].

  4. I Översikt kan du se att en distribution lyckades.

    Skärmbild av Azure Portal-gränssnittet för resursgruppens översikt, där distributionsavsnittet visar att en lyckades.

  5. Välj 1 lyckades för att visa information om distributionen.

    Skärmbild av Azure Portal-gränssnittet för distributionerna, där den enda distributionen visas och statusen lyckades.

  6. Välj den distribution som kallas main för att se vilka resurser som har distribuerats och välj sedan Distributionsinformation för att expandera den. I det här fallet finns det ett Cosmos DB-konto, en databas och en container i listan.

    Skärmbild av Azure Portal-gränssnittet för den specifika distributionen, med tre Cosmos DB-resurser listade.

  7. Låt sidan vara öppen i webbläsaren så att du kan kontrollera distributionerna igen senare.