Übung: Definieren untergeordneter Ressourcen

Abgeschlossen

Hinweis

Wenn Sie zum ersten Mal eine Sandbox aktivieren und die Bedingungen akzeptieren, ist Ihr Microsoft-Konto einem neuen Azure-Verzeichnis mit dem Namen Microsoft Learn Sandbox zugeordnet. Sie werden darüber hinaus einem speziellen Abonnement mit der Bezeichnung Concierge-Abonnement hinzugefügt.

Sie beginnen mit der Arbeit an den Anforderungen Ihres Forschungs- und Entwicklungsteams und entscheiden sich, zunächst eine Azure Cosmos DB-Datenbank für die Testdaten der Spielzeugdrohne zu erstellen. In dieser Übung erstellen Sie das Azure Cosmos DB-Konto und zwei untergeordnete Ressourcen, eine mithilfe der parent-Eigenschaft und die andere als geschachtelte Ressource.

Während des Prozesses gehen Sie wie folgt vor:

  • Erstellen Sie eine Bicep-Datei, die ein Cosmos DB-Konto bereitstellt.
  • Fügen Sie eine Datenbank und einen Container hinzu, bei denen es sich um untergeordnete Ressourcen des Cosmos DB-Kontos handelt.
  • Stellen Sie die Vorlage bereit, und überprüfen Sie die Bereitstellung.

In dieser Übung wird die Bicep-Erweiterung für Visual Studio Code verwendet. Sie müssen diese Erweiterung in Visual Studio Code installieren.

Erstellen einer Bicep-Vorlage, die ein Azure Cosmos DB-Konto enthält

Zunächst erstellen Sie eine neue Bicep-Vorlage mit einem Azure Cosmos DB-Konto. Gehen Sie folgendermaßen vor:

  1. Öffnen Sie Visual Studio Code.

  2. Erstellen Sie eine neue Datei namens main.bicep.

  3. Speichern Sie die leere Datei, damit Visual Studio Code die Bicep-Tools lädt.

    Sie können Datei>Speichern unter auswählen, oder unter Windows STRG+S bzw. unter macOS ⌘+S drücken. Merken Sie sich unbedingt den Speicherort der Datei. Sie können dazu beispielsweise einen Ordner scripts (Skripts) erstellen und sie darin speichern.

  4. Fügen Sie der Datei folgenden Inhalt hinzu. Es empfiehlt sich, den Code manuell einzugeben statt ihn zu kopieren und einzufügen. Auf diese Weise können Sie sehen, wie die Tools Ihnen beim Schreiben Ihrer Bicep-Dateien helfen.

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

    Tipp

    Bicep ist bei der Platzierung von Zeilenumbrüchen sehr streng. Achten Sie daher darauf, Zeilenumbrüche nur dort hinzuzufügen, wo dies hier gezeigt wird.

    Diese Bicep-Vorlage stellt ein Azure Cosmos DB-Konto bereit, das die übergeordnete Ressource ist, auf der Sie im nächsten Abschnitt aufbauen.

  5. Speichern Sie die Änderungen in der Datei.

Hinzufügen einer Datenbank

Als Nächstes erstellen Sie die Datenbank, bei der es sich um eine untergeordnete Ressource des Azure Cosmos DB-Kontos handelt.

  1. Fügen Sie am Anfang der Datei zwischen den beiden vorhandenen Parametern den folgenden Parameter hinzu:

    param cosmosDBDatabaseThroughput int = 400
    
  2. Fügen Sie unter den Parameterdeklarationen die folgende Variable hinzu:

    var cosmosDBDatabaseName = 'FlightTests'
    
  3. Fügen Sie am Ende der Datei die folgende Ressourcendefinition unterhalb der Azure Cosmos DB-Kontoressourcendefinition hinzu.

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

    Beachten Sie, dass dieser Code die Datenbank, bei der es sich um eine untergeordnete Ressource handelt, mithilfe der Eigenschaft parent bereitstellt. Beachten Sie außerdem, dass der Code den vollqualifizierten Ressourcentyp verwendet, wobei die API-Version explizit angegeben ist.

  4. Speichern Sie die Änderungen in der Datei.

Hinzufügen eines Containers

Nun fügen Sie eine weitere untergeordnete Ressource hinzu. Dieses Mal fügen Sie sie als geschachtelte Ressource hinzu, anstatt die parent-Eigenschaft zu verwenden.

  1. Fügen Sie am Anfang der Datei unterhalb der Definition der Variablen cosmosDBDatabaseName die folgenden Variablen hinzu:

    var cosmosDBContainerName = 'FlightTests'
    var cosmosDBContainerPartitionKey = '/droneId'
    
  2. Fügen Sie am Ende der Datei innerhalb der Datenbankressourcendefinition und vor deren schließenden geschweiften Klammer (}) die folgende geschachtelte Ressourcendefinition hinzu:

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

    Beachten Sie, dass Sie den kurzen Ressourcentyp containers verwendet haben, da Bicep erkennt, dass er unter den übergeordneten Ressourcentyp gehört. Bicep weiß, dass der vollqualifizierte Ressourcentyp Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers ist. Sie haben keine API-Version angegeben, weshalb Bicep die Version der übergeordneten Ressource 2020-04-01 verwendet.

    Wenn Sie fertig sind, sollte Ihre vollständige Bicep-Vorlage wie folgt aussehen:

    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. Speichern Sie die Änderungen in der Datei.

Bereitstellen der Vorlage in Azure

Sie müssen sich über das Visual Studio Code-Terminal bei Ihrem Azure-Konto anmelden, um diese Vorlage in Azure bereitzustellen. Stellen Sie sicher, dass die Azure CLI installiert ist, und melden Sie sich mit dem Konto an, mit dem Sie die Sandbox aktiviert haben.

  1. Wählen Sie im Menü Terminal die Option New Terminal (Neues Terminal) aus. Das Terminalfenster wird in der Regel in der unteren Hälfte des Bildschirms geöffnet.

  2. Wenn die auf der rechten Seite des Terminalfensters angezeigte Shell bash ist, ist die richtige Shell geöffnet, und Sie können mit dem nächsten Abschnitt fortfahren.

    Screenshot des Visual Studio Code-Terminalfensters mit Option „bash“

  3. Wenn eine andere Shell als bash angezeigt wird, wählen Sie die Shell-Dropdownliste und dann Azure Cloud Shell (Bash) aus.

    Screenshot des Visual Studio Code-Terminalfensters mit dem Dropdownmenü für die Terminalshell und Auswahl von „Git Bash (Standard)“

  4. Wählen Sie in der Liste der Terminalshells bash aus.

    Screenshot: Visual Studio Code-Terminalfenster mit „bash“ als ausgewähltem Terminal

  5. Wechseln Sie im Terminal zu dem Verzeichnis, in dem Sie Ihre Vorlage gespeichert haben. Wenn Sie Ihre Vorlage beispielsweise im Ordner templates gespeichert haben, können Sie den folgenden Befehl verwenden:

    cd templates
    

Installieren von Bicep

Vergewissern Sie sich mit dem folgenden Befehl, dass Sie die aktuelle Version von Bicep verwenden:

az bicep install && az bicep upgrade

Anmelden bei Azure

  1. Melden Sie sich im Visual Studio Code-Terminal bei Azure an, indem Sie den folgenden Befehl ausführen:

    az login
    
  2. Melden Sie sich im Browserfenster, das daraufhin geöffnet wird, in Ihrem Azure-Konto an.

    Im Visual Studio Code-Terminal wird eine Liste der Abonnements angezeigt, die diesem Konto zugeordnet sind.

  3. Legen Sie das Standardabonnement für alle Azure CLI-Befehle fest, die Sie in dieser Sitzung ausführen.

    az account set --subscription "Concierge Subscription"
    

    Hinweis

    Wenn Sie in letzter Zeit mehrere Sandboxes verwendet haben, zeigt das Terminal möglicherweise mehrere Instanzen des Concierge-Abonnements an. Verwenden Sie in diesem Fall die nächsten beiden Schritte, um das Standardabonnement festzulegen. Wenn der vorherige Befehl erfolgreich war und nur ein Concierge-Abonnement aufgeführt wird, überspringen Sie die beiden folgenden Schritte.

  4. Rufen Sie die Concierge-Abonnement-IDs ab.

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. Legen Sie das Standardabonnement mit der Abonnement-ID fest. Ersetzen Sie dabei {your subscription ID} (Ihre Abonnement-ID) durch die aktuellste Concierge Subscription-ID.

    az account set --subscription {your subscription ID}
    

Festlegen der Standardressourcengruppe

Wenn Sie die Azure CLI verwenden, können Sie die Standardressourcengruppe festlegen und den Parameter in den restlichen Azure CLI-Befehlen in dieser Übung weglassen. Legen Sie den Standardwert auf die Ressourcengruppe fest, die in der Sandboxumgebung für Sie erstellt wurde.

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

Bereitstellen der Vorlage in Azure

Führen Sie den folgenden Code im Terminal in Visual Studio Code aus, um die Bicep-Vorlage in Azure bereitzustellen. Dieser Vorgang kann bis zu zwei Minuten dauern, bevor eine erfolgreiche Bereitstellung angezeigt wird.

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

Melden Sie sich über das Visual Studio Code-Terminal bei Ihrem Azure-Konto an, um diese Vorlage in Azure bereitzustellen. Stellen Sie sicher, dass Azure PowerShell installiert ist, und melden Sie sich unter demselben Konto an, mit dem die Sandbox aktiviert wurde.

  1. Wählen Sie im Menü Terminal die Option New Terminal (Neues Terminal) aus. Das Terminalfenster wird in der Regel in der unteren Hälfte des Bildschirms geöffnet.

  2. Wenn die auf der rechten Seite des Terminalfensters angezeigte Shell powershell oder pwsh ist, ist die richtige Shell geöffnet, und Sie können mit dem nächsten Abschnitt fortfahren.

    Screenshot des Terminalfensters von Visual Studio Code mit der Option „pwsh“ in der Shell-Dropdown-Liste.

  3. Wenn eine andere Shell als powershell oder pwsh angezeigt wird, wählen Sie die Shell-Dropdownliste und dann PowerShell aus.

    Screenshot des Terminalfensters von Visual Studio Code mit der Dropdown-Liste der Terminal-Shell und der Auswahl von PowerShell.

  4. Wählen Sie in der Liste der Terminalshells powershell oder pwsh aus.

    Screenshot des Visual Studio Code-Terminalfensters mit „PowerShell“ als ausgewähltem Terminal.

  5. Wechseln Sie im Terminal zu dem Verzeichnis, in dem Sie Ihre Vorlage gespeichert haben. Wenn Sie Ihre Vorlage beispielsweise im Ordner templates gespeichert haben, können Sie den folgenden Befehl verwenden:

    Set-Location -Path templates
    

Installieren der Bicep CLI

Installieren Sie die Bicep-CLI, um Bicep über Azure PowerShell zu verwenden.

Anmelden bei Azure mithilfe von Azure PowerShell

  1. Führen Sie im Visual Studio Code-Terminal den folgenden Befehl aus:

    Connect-AzAccount
    

    Ein Browser wird geöffnet, in dem Sie sich bei Ihrem Azure-Konto anmelden können.

  2. Sobald Sie sich in Azure angemeldet haben, wird im Terminal eine Liste der Abonnements angezeigt, die mit diesem Konto verknüpft sind.

    Wenn Sie die Sandbox aktiviert haben, wird ein Abonnement namens Concierge-Abonnement angezeigt. Verwenden Sie dieses Abonnement für die verbleibenden Schritte der Übung.

  3. Legen Sie das Standardabonnement für alle Azure PowerShell-Befehle fest, die Sie in dieser Sitzung ausführen.

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

    Hinweis

    Wenn Sie in letzter Zeit mehrere Sandboxes verwendet haben, zeigt das Terminal möglicherweise mehrere Instanzen des Concierge-Abonnements an. Verwenden Sie in diesem Fall die nächsten beiden Schritte, um das Standardabonnement festzulegen. Wenn der vorherige Befehl erfolgreich war und nur ein Concierge-Abonnement aufgeführt wird, überspringen Sie die beiden folgenden Schritte.

  4. Rufen Sie die Abonnement-ID ab. Mit dem folgenden Befehl werden Ihre Abonnements und deren IDs aufgelistet. Suchen Sie nach Concierge Subscription, und kopieren Sie dann die ID aus der zweiten Spalte. Der Wert sollte etwa wie folgt aussehen: aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.

    Get-AzSubscription
    
  5. Ändern Sie Ihr aktives Abonnement in Concierge-Abonnement. Ersetzen Sie {Your subscription ID} durch die gerade kopierte ID.

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

Festlegen der Standardressourcengruppe

Sie können die Standardressourcengruppe festlegen und den Parameter in den restlichen Azure PowerShell-Befehlen in dieser Übung weglassen. Legen Sie diesen Standardwert auf die Ressourcengruppe fest, die in der Sandboxumgebung für Sie erstellt wurde.

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

Bereitstellen der Vorlage in Azure

Stellen Sie die Vorlage mithilfe des folgenden Azure PowerShell-Befehls im Terminal in Azure bereit. Dieser Vorgang kann bis zu zwei Minuten dauern, bevor eine erfolgreiche Bereitstellung angezeigt wird.

New-AzResourceGroupDeployment -TemplateFile main.bicep

Überprüfen der Bereitstellung

  1. Navigieren Sie zum Azure-Portal, und stellen Sie sicher, dass Sie sich im Sandboxabonnement befinden:

    1. Wählen Sie dazu Ihren Avatar in der rechten oberen Ecke der Seite aus.

    2. Klicken Sie dann auf Verzeichnis wechseln. Wählen Sie in der Liste das Verzeichnis Microsoft Learn Sandbox aus.

  2. Wählen Sie auf der Startseite Ressourcengruppen aus. Der Bereich Ressourcengruppen wird angezeigt.

  3. Wählen Sie [Name der Sandboxressourcengruppe] aus.

  4. In der Übersicht wird angezeigt, dass eine Bereitstellung erfolgreich war.

    Screenshot des Azure-Portals mit der Übersicht über Ihre Ressourcengruppe. Im Abschnitt „Bereitstellungen“ wird angezeigt, dass eine Bereitstellung erfolgreich war.

  5. Wählen Sie 1 Succeeded (1 erfolgreich) aus, um die Details der Bereitstellung anzuzeigen.

    Screenshot des Azure-Portals für Bereitstellungen mit einer Bereitstellung mit dem Status „Erfolgreich“

  6. Wählen Sie die Bereitstellung mit dem Namen main aus, um anzuzeigen, welche Ressourcen bereitgestellt wurden. Wählen Sie dann Bereitstellungsdetails aus, um sie zu erweitern. In diesem Fall sind ein Cosmos DB-Konto, eine -Datenbank und ein -Container aufgeführt.

    Screenshot des Azure-Portals für die Bereitstellung mit drei aufgelisteten Cosmos DB-Ressourcen

  7. Lassen Sie die Seite im Browser geöffnet, damit Sie die Bereitstellungen später erneut überprüfen können.