Übung: Löschen und Trennen verwalteter Ressourcen von einem Bereitstellungsstapel

Abgeschlossen

Sprint 3 für die neue Depotanwendung befindet sich auf der Zielgeraden. Die Depotabteilung hat Sie aufgefordert, den Log Analytics-Arbeitsbereich und die Application Insights-Instanz vom Bereitstellungsstapel zu trennen. Diese Ressourcen müssen weiterhin in Azure vorhanden sein. Darüber hinaus wurden Sie gebeten, den Azure SQL-Server und die Azure SQL-Datenbank aus dem Bereitstellungsstapel und Azure zu entfernen.

In dieser Übung erfahren Sie, wie Sie Azure-Ressourcen vom Bereitstellungsstapel trennen und löschen, die für die Depotanwendung nicht mehr benötigt werden. Zunächst trennen Sie Ressourcen vom Bereitstellungsstapel, die weiterhin in Azure vorhanden sein müssen. Anschließend löschen Sie Ressourcen aus dem Bereitstellungsstapel, die nicht mehr benötigt werden. Schließlich löschen Sie den Bereitstellungsstapel, die verwalteten Ressourcen und die Ressourcengruppe.

Während dieses Prozesses führen Sie die folgenden Aufgaben aus:

  • Ändern der Bicep-Datei, um den Log Analytics-Arbeitsbereich und die Application Insights-Instanz zu entfernen
  • Updaten des Bereitstellungsstapels, um die verwalteten Ressourcen zu trennen
  • Überprüfen der verwalteten Ressourcen des Bereitstellungsstapels und der getrennten Ressourcen
  • Ändern der Bicep-Datei zum Entfernen des Azure SQL-Servers und der Azure SQL-Datenbank
  • Updaten des Bereitstellungsstapels zum Löschen der verwalteten Ressourcen
  • Überprüfen der verwalteten Ressourcen des Bereitstellungsstapels und der gelöschten Ressourcen
  • Löschen des Bereitstellungsstapels und der verwalteten Ressourcen
  • Überprüfen der Löschung des Bereitstellungsstapels und der verwalteten Ressourcen

Ändern der Bicep-Datei zum Trennen des Log Analytics-Arbeitsbereichs und der Application Insights-Instanz

Die Depotabteilung hat Sie aufgefordert, den Log Analytics-Arbeitsbereich und die Application Insights-Instanz vom Bereitstellungsstapel zu trennen. Zudem wurden Sie darauf hingewiesen, dass die Ressourcen weiterhin in Azure vorhanden sein müssen. Zunächst ändern Sie die Bicep-Datei.

  1. Öffnen Sie die Datei main.bicep in Visual Studio Code.

  2. Entfernen Sie den hervorgehobenen Code aus dem Variablenabschnitt Ihrer Datei:

    // Variables
    @description('The name of the Application Insights instance.')
    var applicationInsightsName = 'appinsights-deposits'
    
    @description('The name of the app service plan.')
    var appServicePlanName = 'plan-deposits'
    
    @description('The name of the Log Analytics Workspace.')
    var logAnalyticsWorkspaceName = 'log-deposits'
    
  3. Entfernen Sie den hervorgehobenen Code aus dem Ressourcenabschnitt der Datei:

    // Resource - App Service Plan
    resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
      name: appServicePlanName
      location: location
      sku: {
        name: 'S1'
        capacity: 1
      }
    }
    
    // Resource - Web App
    resource webApplication 'Microsoft.Web/sites@2023-12-01' = {
      name: webApplicationName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        siteConfig: {
          appSettings: [
            {
              name: 'APPINSIGHTS_INSTRUMENTATIONKEY'
              value: applicationInsights.properties.InstrumentationKey
            }     
          ]
        }    
      }
    }
    
    // Resource - SQL Server
    resource sqlServer 'Microsoft.Sql/servers@2021-11-01' ={
      name: sqlServerName
      location: location
      properties: {
        administratorLogin: sqlServerAdminUserName
        administratorLoginPassword: sqlServerAdminPassword
      }
    }
    
    // Resource - SQL Database
    resource sqlServerDatabase 'Microsoft.Sql/servers/databases@2021-11-01' = {
      parent: sqlServer
      name: sqlDatabaseName
      location: location
      sku: {
        name: 'Standard'
        tier: 'Standard'
      }
    }
    
    // Resource - Log Analytics Workspace
    resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' = {
      name: logAnalyticsWorkspaceName
      location: location
      properties: {
        retentionInDays: 30
        sku: {
          name: 'PerGB2018'
        }
      }
    }
    
    // Resource - Application Insights
    resource applicationInsights 'Microsoft.Insights/components@2020-02-02' = {
      name: applicationInsightsName
      location: location
      kind: 'web'
      properties: {
        Application_Type: 'web'
        WorkspaceResourceId: logAnalyticsWorkspace.id
      }
    }
    
  4. Speichern Sie die Änderungen in der Datei.

Updaten des Bereitstellungsstapels, um die verwalteten Ressourcen zu trennen

Mit der geänderten Bicep-Datei können Sie den Bereitstellungsstapel so updaten, dass der Log Analytics-Arbeitsbereich und die Application Insights-Instanz vom Stapel getrennt werden. Sie verwenden --action-on-unmanage detachAll für dieses Ergebnis.

  1. Führen Sie zum Aktualisieren des Bereitstellungsstapels den folgenden Befehl über das Terminal in Visual Studio Code aus.

    az stack group create \
        --name stack-deposits \
        --resource-group 'rg-depositsApplication' \
        --template-file ./main.bicep \
        --action-on-unmanage detachAll \
        --deny-settings-mode none
    
  2. Sie erhalten eine Meldung, die besagt, dass der Stapel bereits im aktuellen Abonnement vorhanden ist. Wenn sich der Wert des Parameters Aktion für Nichtverwalten verändert hat, werden Sie durch die Warnung über die neuen Werte benachrichtigt. Drücken Sie zunächst y und dann die EINGABETASTE.

    Screenshot: Warnung in der Azure CLI-Befehlszeile, dass der Bereitstellungsstapel bereits vorhanden ist

Warten Sie, bis der Aktualisierungsvorgang abgeschlossen ist, bevor Sie mit der nächsten Aufgabe fortfahren.

Mit der geänderten Bicep-Datei können Sie den Bereitstellungsstapel so updaten, dass der Log Analytics-Arbeitsbereich und die Application Insights-Instanz vom Stapel getrennt werden. Sie verwenden ActionOnUnmanage DetachAll für dieses Ergebnis.

  1. Führen Sie zum Aktualisieren des Bereitstellungsstapels den folgenden Befehl über das Terminal in Visual Studio Code aus.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DetachAll `
        -DenySettingsMode none
    
  2. Warten Sie, bis der Aktualisierungsvorgang abgeschlossen ist, bevor Sie mit der nächsten Aufgabe fortfahren.

Überprüfen der verwalteten Ressourcen des Bereitstellungsstapels und der getrennten Ressourcen

Nach Abschluss des Updates müssen Sie überprüfen, ob der Log Analytics-Arbeitsbereich und die Application Insights-Instanz nicht mehr vom Bereitstellungsstapel verwaltet werden.

  1. Um die Konfiguration des Bereitstellungsstapels anzuzeigen, führen Sie den folgenden Befehl über das Terminal in Visual Studio Code aus.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Beachten Sie den actionOnUnmanage-Abschnitt der Ausgabe. Die Werte sind alle auf detach festgelegt. Dieses Ergebnis kann damit begründet werden, dass Sie den Bereitstellungsstapel mit --action-on-unmanage detachAll upgedatet haben.

    "actionOnUnmanage": {
      "managementGroups": "detach",
      "resourceGroups": "detach",
      "resources": "detach"
    },
    
  3. Sehen Sie sich nun den Ressourcenabschnitt der Ausgabe an. Der Log Analytics-Arbeitsbereich und die Application Insights-Instanz werden nicht mehr als verwaltete Ressourcen angezeigt.

    "resources": [
      {
        "denyStatus": "none",
        "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././servers/sql-brpdm7iotbwjm",
        "resourceGroup": "rg-depositsApplication",
        "status": "managed"
      },
      {
        "denyStatus": "none",
        "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././servers/sql-brpdm7iotbwjm/databases/sqldb-brpdm7iotbwjm",
        "resourceGroup": "rg-depositsApplication",
        "status": "managed"
      },
      {
        "denyStatus": "none",
        "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits",
        "resourceGroup": "rg-depositsApplication",
        "status": "managed"
      },
      {
        "denyStatus": "none",
        "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm",
        "resourceGroup": "rg-depositsApplication",
        "status": "managed"
      }
    ],
    

Nach Abschluss des Updates müssen Sie überprüfen, ob der Log Analytics-Arbeitsbereich und die Application Insights-Instanz nicht mehr vom Bereitstellungsstapel verwaltet werden.

  1. Um die Konfiguration des Bereitstellungsstapels anzuzeigen, führen Sie den folgenden Befehl über das Terminal in Visual Studio Code aus.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Beachten Sie die Werte für resourcesCleanupAction, resourceGroupsCleanupAction und managementGroupsCleanupAction. Die Werte sind alle auf detach festgelegt. Dieses Ergebnis kann damit begründet werden, dass Sie den Bereitstellungsstapel mit -ActionOnUnmanage DetachAll upgedatet haben.

    resourcesCleanupAction        : detach
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach
    
  3. Sehen Sie sich nun den Ressourcenabschnitt der Ausgabe an. Der Log Analytics-Arbeitsbereich und die Application Insights-Instanz werden nicht mehr als verwaltete Ressourcen angezeigt.

    Resources                     : /subscriptions/./resourceGroups/rg-depositsApplication/././servers/sql-brpdm7iotbwjm
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././servers/sql-brpdm7iotbwjm/databases/sqldb-brpdm7iotbwjm
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
    

Überprüfen Sie nun den Bereitstellungsstapel im Azure-Portal.

  1. Öffnen Sie das Azure-Portal.

  2. Wählen Sie im linken Bereich Ressourcengruppen aus.

  3. Wählen Sie rg-depositsApplication aus.

  4. Erweitern Sie bei Bedarf das Menü Einstellungen.

  5. Klicken Sie auf Bereitstellungsstapel.

  6. Wählen Sie stack-deposits aus.

  7. Stellen Sie sicher, dass Sie über vier verwaltete Ressourcen und zwei getrennte Ressourcen verfügen (Log Analytics und Application Insights).

    Screenshot: Azure-Portal mit einem Bereitstellungsstapel und den zugehörigen verwalteten Ressourcen sowie getrennten Ressourcen

Ändern der Bicep-Datei zum Trennen und Löschen des Azure SQL-Servers und der Azure SQL-Datenbank

Die Depotabteilung hat Sie aufgefordert, den Azure SQL-Server und die Azure SQL-Datenbank vom Bereitstellungsstapel zu trennen und aus Azure zu löschen. Zunächst ändern Sie die Bicep-Datei.

  1. Öffnen Sie die Datei main.bicep in Visual Studio Code erneut.

  2. Entfernen Sie den hervorgehobenen Code aus dem Parameterabschnitt Ihrer Datei:

    // Parameters
    @description('The location for all resources.')
    param location string = 'eastus'
    
    @description('The name of the SQL database.')
    param sqlDatabaseName string = 'sqldb-${uniqueString(resourceGroup().id)}'
    
    @description('The password of the admin user.')
    param sqlServerAdminUserName string
    
    @description('The name of the admin user.')
    @secure()
    param sqlServerAdminPassword string
    
    @description('The name of the SQL server.')
    param sqlServerName string = 'sql-${uniqueString(resourceGroup().id)}'
    
    @description('The name of the web application.')
    param webApplicationName string = 'webapp-${uniqueString(resourceGroup().id)}'
    
  3. Entfernen Sie den hervorgehobenen Code aus dem Ressourcenabschnitt der Datei:

    // Resource - App Service Plan
    resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
      name: appServicePlanName
      location: location
      sku: {
        name: 'S1'
        capacity: 1
      }
    }
    
    // Resource - Web App
    resource webApplication 'Microsoft.Web/sites@2023-12-01' = {
      name: webApplicationName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
      }
    }
    
    // Resource - SQL Server
    resource sqlServer 'Microsoft.Sql/servers@2021-11-01' ={
      name: sqlServerName
      location: location
      properties: {
        administratorLogin: sqlServerAdminUserName
        administratorLoginPassword: sqlServerAdminPassword
      }
    }
    
    // Resource - SQL Database
    resource sqlServerDatabase 'Microsoft.Sql/servers/databases@2021-11-01' = {
      parent: sqlServer
      name: sqlDatabaseName
      location: location
      sku: {
        name: 'Standard'
        tier: 'Standard'
      }
    }
    
  4. Speichern Sie die Änderungen in der Datei.

Updaten des Bereitstellungsstapels zum Löschen der verwalteten Ressourcen

Mit der geänderten Bicep-Datei können Sie den Bereitstellungsstapel so updaten, dass der Azure SQL-Server und die Azure SQL-Datenbank vom Stapel getrennt und aus Azure gelöscht werden. Sie verwenden --action-on-unmanage deleteAll für dieses Ergebnis. Mit dieser Aktion werden auch der Log Analytics-Arbeitsbereich und die Application Insights-Instanz gelöscht, die Sie im letzten Abschnitt vom Bereitstellungsstapel getrennt haben.

  1. Führen Sie zum Aktualisieren des Bereitstellungsstapels den folgenden Befehl über das Terminal in Visual Studio Code aus.

    az stack group create \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --template-file ./main.bicep \
        --action-on-unmanage deleteAll \
        --deny-settings-mode none
    
  2. Sie erhalten eine Meldung, die besagt, dass der Stapel bereits im aktuellen Abonnement vorhanden ist. Wenn sich der Wert des Parameters Aktion für Nichtverwalten verändert hat, werden Sie durch die Warnung über die neuen Werte benachrichtigt. Drücken Sie zunächst y und dann die EINGABETASTE.

    Screenshot: Warnung in der Azure CLI-Befehlszeile, dass der Bereitstellungsstapel bereits vorhanden ist

  3. Warten Sie, bis der Aktualisierungsvorgang abgeschlossen ist, bevor Sie mit der nächsten Aufgabe fortfahren.

Mit der geänderten Bicep-Datei können Sie den Bereitstellungsstapel so updaten, dass der Azure SQL-Server und die Azure SQL-Datenbank vom Stapel getrennt und aus Azure gelöscht werden. Hierfür verwenden Sie -ActionOnUnmanage DeleteAll. Mit dieser Aktion werden auch der Log Analytics-Arbeitsbereich und die Application Insights-Instanz gelöscht, die Sie im letzten Abschnitt vom Bereitstellungsstapel getrennt haben.

  1. Führen Sie zum Aktualisieren des Bereitstellungsstapels den folgenden Befehl über das Terminal in Visual Studio Code aus.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Warten Sie, bis der Aktualisierungsvorgang abgeschlossen ist, bevor Sie mit der nächsten Aufgabe fortfahren.

Überprüfen der verwalteten Ressourcen des Bereitstellungsstapels

Nach Abschluss des Updates müssen Sie überprüfen, ob der Log Analytics-Arbeitsbereich, die Application Insights-Instanz, der Azure SQL-Server und die Azure SQL-Datenbank nicht mehr vom Bereitstellungsstapel verwaltet werden. Außerdem müssen Sie überprüfen, ob die Ressourcen aus Azure gelöscht werden.

  1. Um die Konfiguration des Bereitstellungsstapels anzuzeigen, führen Sie den folgenden Befehl über das Terminal in Visual Studio Code aus.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Beachten Sie den actionOnUnmanage-Abschnitt der Ausgabe. Die Werte sind alle auf delete festgelegt. Dieses Ergebnis kann damit begründet werden, dass Sie den Bereitstellungsstapel mit --action-on-unmanage deleteAll upgedatet haben.

    "actionOnUnmanage": {
      "managementGroups": "delete",
      "resourceGroups": "delete",
      "resources": "delete"
    },
    
  3. Sehen Sie sich nun den Ressourcenabschnitt der Ausgabe an. Der Azure SQL-Server und die Azure SQL-Datenbank werden nicht mehr als verwaltete Ressourcen angezeigt.

    "resources": [
      {
        "denyStatus": "none",
        "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits",
        "resourceGroup": "rg-depositsApplication",
        "status": "managed"
      },
      {
        "denyStatus": "none",
        "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm",
        "resourceGroup": "rg-depositsApplication",
        "status": "managed"
      }
    ],
    

Nach Abschluss des Updates müssen Sie überprüfen, ob der Log Analytics-Arbeitsbereich, die Application Insights-Instanz, der Azure SQL-Server und die Azure SQL-Datenbank nicht mehr vom Bereitstellungsstapel verwaltet werden. Außerdem müssen Sie überprüfen, ob die Ressourcen aus Azure gelöscht werden.

  1. Um die Konfiguration des Bereitstellungsstapels anzuzeigen, führen Sie den folgenden Befehl über das Terminal in Visual Studio Code aus.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Beachten Sie die Werte für resourcesCleanupAction, resourceGroupsCleanupAction und managementGroupsCleanupAction. Die Werte sind alle auf delete festgelegt. Dieses Ergebnis kann damit begründet werden, dass Sie den Bereitstellungsstapel mit -ActionOnUnmanage DeleteAll upgedatet haben.

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  3. Sehen Sie sich nun den Ressourcenabschnitt der Ausgabe an. Der Azure SQL-Server und die Azure SQL-Datenbank werden nicht mehr als verwaltete Ressourcen angezeigt.

    Resources                     : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
    
  1. Kehren Sie zum Azure-Portal zurück.

  2. Wählen Sie im linken Bereich Ressourcengruppen aus.

  3. Wählen Sie rg-depositsApplication aus.

  4. Erweitern Sie bei Bedarf das Menü Einstellungen.

  5. Klicken Sie auf Bereitstellungsstapel.

  6. Wählen Sie stack-deposits aus.

  7. Stellen Sie sicher, dass der App Service-Plan und die App Service-Instanz weiterhin als verwaltete Ressourcen vorhanden sind und die anderen Ressourcen gelöscht wurden.

    Screenshot: Azure-Portal mit einem Bereitstellungsstapel und den zwei zugehörigen verwalteten Ressourcen

Löschen des Bereitstellungsstapels

  1. Führen Sie zum Löschen des Bereitstellungsstapels und der verwalteten Ressourcen den folgenden Befehl über das Terminal in Visual Studio Code aus.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. Sie werden aufgefordert, zu bestätigen, dass Sie den Stapel und die angegebenen Ressourcen löschen möchten.

    Screenshot: Befehlszeilenbestätigung zum Löschen des Bereitstellungsstapels mithilfe der Azure CLI

  3. Öffnen Sie nach Abschluss des Löschvorgangs das Azure-Portal, und stellen Sie sicher, dass der Bereitstellungsstapel und die zugehörigen Ressourcen entfernt wurden.

  4. Um die in diesen Übungen verwendete Ressourcengruppe zu löschen, führen Sie den folgenden Befehl über das Terminal in Visual Studio Code aus.

    az group delete \
        -name rg-depositsApplication
    
  5. Sie werden aufgefordert, zu bestätigen, dass Sie die Ressourcengruppe entfernen möchten. Drücken Sie „Y“ und dann die EINGABETASTE.

    Screenshot: Befehlszeilenbestätigung zum Löschen der Ressourcengruppe mithilfe der Azure CLI

  1. Führen Sie zum Löschen des Bereitstellungsstapels und der verwalteten Ressourcen den folgenden Befehl über das Terminal in Visual Studio Code aus.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. Sie werden aufgefordert, zu bestätigen, dass Sie den Stapel und die angegebenen Ressourcen löschen möchten.

    Screenshot: Befehlszeilenbestätigung zum Löschen des Bereitstellungsstapels mithilfe von Azure PowerShell

  3. Öffnen Sie nach Abschluss des Löschvorgangs das Azure-Portal, und stellen Sie sicher, dass der Bereitstellungsstapel und die zugehörigen Ressourcen entfernt wurden.

  4. Um die in diesen Übungen verwendete Ressourcengruppe zu löschen, führen Sie den folgenden Befehl über das Terminal in Visual Studio Code aus.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. Sie werden aufgefordert, zu bestätigen, dass Sie die Ressourcengruppe entfernen möchten. Drücken Sie „Y“ und dann die EINGABETASTE.

    Screenshot: Befehlszeilenbestätigung zum Löschen der Ressourcengruppe mithilfe von Azure PowerShell

  1. Kehren Sie zum Azure-Portal zurück.

  2. Wählen Sie im linken Bereich Ressourcengruppen aus.

  3. Stellen Sie sicher, dass rg-depositsApplication nicht mehr verfügbar ist.