Ćwiczenie — odłączanie i usuwanie zasobów zarządzanych ze stosu wdrożenia

Ukończone

Sprint 3 dla nowej aplikacji depozytów zbliża się do końca. Zespół ds. depozytów zażądał odłączenia obszaru roboczego usługi Log Analytics i wystąpienia usługi Application Insights od stosu wdrożenia. Te zasoby muszą nadal istnieć na platformie Azure. Ponadto zażądali usunięcia serwera i bazy danych Azure SQL ze stosu wdrożenia i platformy Azure.

W tym ćwiczeniu odłączysz i usuniesz zasoby platformy Azure ze stosu wdrożenia, który nie jest już potrzebny dla aplikacji depozytów. Zacznij od odłączenia zasobów od stosu wdrożenia, który musi nadal istnieć na platformie Azure. Następnie usuwasz zasoby ze stosu wdrażania, które nie są już potrzebne. Na koniec usuniesz stos wdrożenia, jego zarządzane zasoby i grupę zasobów.

Podczas tego procesu będziesz

  • Zmodyfikuj plik Bicep, aby usunąć obszar roboczy usługi Log Analytics i wystąpienie usługi Application Insights
  • Aktualizowanie stosu wdrożenia w celu odłączenia zarządzanych zasobów
  • Weryfikowanie zasobów zarządzanych stosu wdrożenia i odłączonych zasobów
  • Modyfikowanie pliku Bicep w celu usunięcia serwera i bazy danych Azure SQL
  • Aktualizowanie stosu wdrożenia w celu usunięcia zarządzanych zasobów
  • Weryfikowanie zasobów zarządzanych stosu wdrożenia i usuniętych zasobów
  • Usuń stos wdrożenia i zarządzane zasoby.
  • Zweryfikuj usunięcie stosu wdrożenia i zarządzanych zasobów.

Modyfikowanie pliku Bicep w celu odłączenia obszaru roboczego usługi Log Analytics i wystąpienia usługi Application Insights

Zespół ds. depozytów zażądał odłączenia obszaru roboczego usługi Log Analytics i wystąpienia usługi Application Insights od stosu wdrożenia. Zażądali również, aby zasoby nadal istniały na platformie Azure. Zaczynamy od zmodyfikowania pliku Bicep.

  1. Otwórz plik main.bicep w programie Visual Studio Code.

  2. Usuń wyróżniony kod z sekcji zmiennych pliku:

    // 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. Usuń wyróżniony kod z sekcji zasobów pliku:

    // 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. Zapisz zmiany w pliku.

Aktualizowanie stosu wdrożenia w celu odłączenia zarządzanych zasobów

Po zmodyfikowaniu pliku Bicep chcemy zaktualizować stos wdrożenia, aby obszar roboczy usługi Log Analytics i wystąpienie usługi Application Insights zostały odłączone od stosu. Służymy --action-on-unmanage detachAll do osiągnięcia tego wyniku.

  1. Aby zaktualizować stos wdrożenia, uruchom następujące polecenie z poziomu terminalu w programie Visual Studio Code.

    az stack group create \
        --name stack-deposits \
        --resource-group 'rg-depositsApplication' \
        --template-file ./main.bicep \
        --action-on-unmanage detachAll \
        --deny-settings-mode none
    
  2. Zostanie wyświetlony komunikat z informacją, że stos już istnieje w bieżącej subskrypcji. Jeśli wartość akcji dla parametru niezarządzanego została zmieniona, ostrzeżenie ostrzega o nowych wartościach. Naciśnij y, a następnie Enter.

    Zrzut ekranu przedstawiający ostrzeżenie wiersza polecenia interfejsu wiersza polecenia platformy Azure, że stos wdrożenia już istnieje.

Poczekaj na zakończenie operacji aktualizacji przed przejściem do następnego zadania.

Po zmodyfikowaniu pliku Bicep chcemy zaktualizować stos wdrożenia, aby obszar roboczy usługi Log Analytics i wystąpienie usługi Application Insights zostały odłączone od stosu. Służymy ActionOnUnmanage DetachAll do osiągnięcia tego wyniku.

  1. Aby zaktualizować stos wdrożenia, uruchom następujące polecenie z poziomu terminalu w programie Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DetachAll `
        -DenySettingsMode none
    
  2. Poczekaj na zakończenie operacji aktualizacji przed przejściem do następnego zadania.

Weryfikowanie zasobów zarządzanych stosu wdrożenia i odłączonych zasobów

Po zakończeniu aktualizacji chcemy sprawdzić, czy stos wdrożenia nie zarządza już obszarem roboczym usługi Log Analytics i wystąpieniem usługi Application Insights.

  1. Aby wyświetlić konfigurację stosu wdrażania, uruchom następujące polecenie w terminalu w programie Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Zwróć uwagę na sekcję actionOnUnmanage danych wyjściowych. Wszystkie wartości są ustawione na detach. Ten wynik jest spowodowany wykonaniem aktualizacji stosu wdrożenia za pomocą polecenia --action-on-unmanage detachAll.

    "actionOnUnmanage": {
      "managementGroups": "detach",
      "resourceGroups": "detach",
      "resources": "detach"
    },
    
  3. Teraz przyjrzyj się sekcji zasobów danych wyjściowych. Obszar roboczy usługi Log Analytics i wystąpienie usługi Application Insights nie są już widoczne jako zasoby zarządzane.

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

Po zakończeniu aktualizacji chcemy sprawdzić, czy stos wdrożenia nie zarządza już obszarem roboczym usługi Log Analytics i wystąpieniem usługi Application Insights.

  1. Aby wyświetlić konfigurację stosu wdrażania, uruchom następujące polecenie w terminalu w programie Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Zwróć uwagę na wartości , resourcesCleanupActionresourceGroupsCleanupActioni managementGroupsCleanupAction. Wszystkie wartości są ustawione na detach. Ten wynik jest spowodowany wykonaniem aktualizacji stosu wdrożenia za pomocą polecenia -ActionOnUnmanage DetachAll.

    resourcesCleanupAction        : detach
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach
    
  3. Teraz przyjrzyj się sekcji zasobów danych wyjściowych. Obszar roboczy usługi Log Analytics i wystąpienie usługi Application Insights nie są już widoczne jako zasoby zarządzane.

    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
    

Zweryfikujmy nasz stos wdrożenia w witrynie Azure Portal.

  1. Przejdź do portalu Azure Portal.

  2. Na panelu po lewej stronie wybierz pozycję Grupy zasobów.

  3. Wybierz pozycję rg-depositsApplication.

  4. W razie potrzeby rozwiń menu ustawień .

  5. Wybierz pozycję Stosy wdrożenia.

  6. Wybierz pozycję stack-deposits.

  7. Sprawdź, czy masz cztery zasoby zarządzane i dwa odłączone zasoby (Log Analytics i Application Insights).

    Zrzut ekranu przedstawiający witrynę Azure Portal reprezentującą stos wdrożenia oraz zarządzane zasoby i odłączone zasoby.

Modyfikowanie pliku Bicep w celu odłączenia i usunięcia serwera i bazy danych Azure SQL

Zespół ds. depozytów zażądał odłączenia i usunięcia serwera i bazy danych Azure SQL z stosu wdrożenia i platformy Azure. Zaczynamy od zmodyfikowania pliku Bicep.

  1. Otwórz ponownie plik main.bicep w programie Visual Studio Code.

  2. Usuń wyróżniony kod z sekcji parameters pliku:

    // 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. Usuń wyróżniony kod z sekcji zasobów pliku:

    // 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. Zapisz zmiany w pliku.

Aktualizowanie stosu wdrożenia w celu usunięcia zarządzanych zasobów

Po zmodyfikowaniu pliku Bicep chcemy zaktualizować stos wdrożenia, aby serwer i baza danych azure SQL zostały odłączone od stosu i usunięte z platformy Azure. Służymy --action-on-unmanage deleteAll do osiągnięcia tego wyniku. Ta akcja powoduje również usunięcie obszaru roboczego usługi Log Analytics i wystąpienia usługi Application Insights, które odłączyliśmy w ostatniej sekcji.

  1. Aby zaktualizować stos wdrożenia, uruchom następujące polecenie z poziomu terminalu w programie Visual Studio Code.

    az stack group create \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --template-file ./main.bicep \
        --action-on-unmanage deleteAll \
        --deny-settings-mode none
    
  2. Zostanie wyświetlony komunikat z informacją, że stos już istnieje w bieżącej subskrypcji. Jeśli wartość akcji dla parametru niezarządzanego została zmieniona, ostrzeżenie ostrzega o nowych wartościach. Naciśnij y, a następnie Enter.

    Zrzut ekranu przedstawiający ostrzeżenie wiersza polecenia interfejsu wiersza polecenia platformy Azure, że stos wdrożenia już istnieje.

  3. Poczekaj na zakończenie operacji aktualizacji przed przejściem do następnego zadania.

Po zmodyfikowaniu pliku Bicep chcemy zaktualizować stos wdrożenia, aby serwer i baza danych azure SQL zostały odłączone od stosu i usunięte z platformy Azure. Służymy -ActionOnUnmanage DeleteAll do tego celu. Ta akcja powoduje również usunięcie obszaru roboczego usługi Log Analytics i wystąpienia usługi Application Insights, które odłączyliśmy w ostatniej sekcji.

  1. Aby zaktualizować stos wdrożenia, uruchom następujące polecenie z poziomu terminalu w programie Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Poczekaj na zakończenie operacji aktualizacji przed przejściem do następnego zadania.

Weryfikowanie zarządzanych zasobów stosu wdrożenia

Po zakończeniu aktualizacji chcemy sprawdzić, czy stos wdrożenia nie zarządza już obszarem roboczym usługi Log Analytics, wystąpieniem usługi Application Insights i serwerem Azure SQL i bazą danych. Chcemy również sprawdzić, czy zasoby zostały usunięte z platformy Azure.

  1. Aby wyświetlić konfigurację stosu wdrażania, uruchom następujące polecenie w terminalu w programie Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Zwróć uwagę na sekcję actionOnUnmanage danych wyjściowych. Wszystkie wartości są ustawione na delete. Ten wynik jest spowodowany wykonaniem aktualizacji stosu wdrożenia za pomocą polecenia --action-on-unmanage deleteAll.

    "actionOnUnmanage": {
      "managementGroups": "delete",
      "resourceGroups": "delete",
      "resources": "delete"
    },
    
  3. Teraz przyjrzyj się sekcji zasobów danych wyjściowych. Serwer Azure SQL i baza danych nie są już widoczne jako zasoby zarządzane.

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

Po zakończeniu aktualizacji chcemy sprawdzić, czy stos wdrożenia nie zarządza już obszarem roboczym usługi Log Analytics, wystąpieniem usługi Application Insights i serwerem Azure SQL i bazą danych. Chcemy również sprawdzić, czy zasoby zostały usunięte z platformy Azure.

  1. Aby wyświetlić konfigurację stosu wdrażania, uruchom następujące polecenie w terminalu w programie Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Zwróć uwagę na wartości , resourcesCleanupActionresourceGroupsCleanupActioni managementGroupsCleanupAction. Wszystkie wartości są ustawione na delete. Ten wynik jest spowodowany wykonaniem aktualizacji stosu wdrożenia za pomocą polecenia -ActionOnUnmanage DeleteAll.

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  3. Teraz przyjrzyj się sekcji zasobów danych wyjściowych. Serwer Azure SQL i baza danych nie są już widoczne jako zasoby zarządzane.

    Resources                     : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
    
  1. Wróć do witryny Azure Portal.

  2. Na panelu po lewej stronie wybierz pozycję Grupy zasobów.

  3. Wybierz pozycję rg-depositsApplication.

  4. W razie potrzeby rozwiń menu ustawień .

  5. Wybierz pozycję Stosy wdrożenia.

  6. Wybierz pozycję stack-deposits.

  7. Sprawdź, czy plan usługi App Service i usługa App Service nadal istnieją jako zasoby zarządzane, a nasze inne zasoby są usuwane.

    Zrzut ekranu przedstawiający witrynę Azure Portal reprezentującą stos wdrożenia i jego dwa zarządzane zasoby.

Usuwanie stosu wdrożenia

  1. Aby usunąć stos wdrożenia i jego zasoby zarządzane, uruchom następujące polecenie w terminalu w programie Visual Studio Code.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. Zostanie wyświetlony monit o potwierdzenie, czy chcesz usunąć stos i określone zasoby.

    Zrzut ekranu przedstawiający potwierdzenie wiersza polecenia umożliwiające usunięcie stosu wdrożenia przy użyciu interfejsu wiersza polecenia platformy Azure.

  3. Po zakończeniu operacji usuwania otwórz witrynę Azure Portal i sprawdź, czy stos wdrożenia i jego zasoby zostaną usunięte.

  4. Aby usunąć grupę zasobów używaną w tych ćwiczeniach, uruchom następujące polecenie z poziomu terminalu w programie Visual Studio Code.

    az group delete \
        -name rg-depositsApplication
    
  5. Zostanie wyświetlony monit o potwierdzenie, czy chcesz usunąć grupę zasobów. Naciśnij "Y", a następnie "Enter".

    Zrzut ekranu przedstawiający potwierdzenie wiersza polecenia umożliwiające usunięcie grupy zasobów przy użyciu interfejsu wiersza polecenia platformy Azure.

  1. Aby usunąć stos wdrożenia i jego zasoby zarządzane, uruchom następujące polecenie w terminalu w programie Visual Studio Code.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. Zostanie wyświetlony monit o potwierdzenie, czy chcesz usunąć stos i określone zasoby.

    Zrzut ekranu przedstawiający potwierdzenie wiersza polecenia umożliwiające usunięcie stosu wdrożenia przy użyciu programu Azure PowerShell.

  3. Po zakończeniu operacji usuwania otwórz witrynę Azure Portal i sprawdź, czy stos wdrożenia i jego zasoby zostaną usunięte.

  4. Aby usunąć grupę zasobów używaną w tych ćwiczeniach, uruchom następujące polecenie z poziomu terminalu w programie Visual Studio Code.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. Zostanie wyświetlony monit o potwierdzenie, czy chcesz usunąć grupę zasobów. Naciśnij "Y", a następnie "Enter".

    Zrzut ekranu przedstawiający potwierdzenie wiersza polecenia umożliwiające usunięcie grupy zasobów przy użyciu programu Azure PowerShell.

  1. Wróć do witryny Azure Portal.

  2. Na panelu po lewej stronie wybierz pozycję Grupy zasobów.

  3. Sprawdź, czy rg-depositsApplication już nie istnieje.