Oefening: beheerde resources loskoppelen en verwijderen uit een implementatiestack

Voltooid

Sprint 3 voor de nieuwe stortingsaanvraag komt tot een einde. Het stortingsteam heeft gevraagd dat u de Log Analytics-werkruimte en het Application Insights-exemplaar loskoppelt van de implementatiestack. Deze resources moeten blijven bestaan in Azure. Daarnaast hebben ze gevraagd dat de Azure SQL-server en -database worden verwijderd uit de implementatiestack en Azure.

In deze oefening ontkoppelt en verwijdert u Azure-resources uit de implementatiestack die niet meer nodig zijn voor de stortingstoepassing. U begint met het loskoppelen van resources uit de implementatiestack die in Azure moeten blijven bestaan. Vervolgens verwijdert u resources uit de implementatiestack die niet meer nodig zijn. Ten slotte verwijdert u de implementatiestack, de beheerde resources en de resourcegroep.

Tijdens het proces gaat u

  • Het Bicep-bestand wijzigen om de Log Analytics-werkruimte en het Application Insights-exemplaar te verwijderen
  • De implementatiestack bijwerken om de beheerde resources los te koppelen
  • De beheerde resources van de implementatiestack en de losgekoppelde resources valideren
  • Het Bicep-bestand wijzigen om de Azure SQL-server en -database te verwijderen
  • De implementatiestack bijwerken om de beheerde resources te verwijderen
  • De beheerde resources van de implementatiestack en de verwijderde resources valideren
  • Verwijder de implementatiestack en beheerde resources.
  • Valideer het verwijderen van de implementatiestack en de beheerde resources.

Het Bicep-bestand wijzigen om de Log Analytics-werkruimte en het Application Insights-exemplaar los te koppelen

Het stortingsteam heeft gevraagd om de Log Analytics-werkruimte en het Application Insights-exemplaar los te koppelen van de implementatiestack. Ze hebben ook gevraagd of de resources blijven bestaan in Azure. We beginnen met het wijzigen van het Bicep-bestand.

  1. Open het bestand main.bicep in Visual Studio Code.

  2. Verwijder de gemarkeerde code uit de sectie variabelen van uw bestand:

    // 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. Verwijder de gemarkeerde code uit de sectie resources van het bestand:

    // 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. Sla de wijzigingen in het bestand op.

De implementatiestack bijwerken om de beheerde resources los te koppelen

Nu het Bicep-bestand is gewijzigd, willen we de implementatiestack bijwerken, zodat de Log Analytics-werkruimte en het Application Insights-exemplaar worden losgekoppeld van de stack. We gebruiken --action-on-unmanage detachAll dit resultaat.

  1. Als u de implementatiestack wilt bijwerken, voert u de volgende opdracht uit vanuit de terminal in 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. U ontvangt een bericht waarin staat dat de stack al bestaat in het huidige abonnement. Als de waarde van de actie voor onbeheerde parameter is gewijzigd, wordt u gewaarschuwd voor de nieuwe waarden. Druk op y, gevolgd door Enter.

    Een schermopname van de Azure CLI-opdrachtregelwaarschuwing dat de implementatiestack al bestaat.

Wacht tot de updatebewerking is voltooid voordat u verdergaat met de volgende taak.

Nu het Bicep-bestand is gewijzigd, willen we de implementatiestack bijwerken, zodat de Log Analytics-werkruimte en het Application Insights-exemplaar worden losgekoppeld van de stack. We gebruiken ActionOnUnmanage DetachAll dit resultaat.

  1. Als u de implementatiestack wilt bijwerken, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DetachAll `
        -DenySettingsMode none
    
  2. Wacht tot de updatebewerking is voltooid voordat u verdergaat met de volgende taak.

De beheerde resources van de implementatiestack en de losgekoppelde resources valideren

Nu de update is voltooid, willen we valideren dat de implementatiestack de Log Analytics-werkruimte en het Application Insights-exemplaar niet meer beheert.

  1. Als u de configuratie van de implementatiestack wilt weergeven, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Let op de actionOnUnmanage sectie van de uitvoer. De waarden zijn allemaal ingesteld op detach. Dit resultaat is omdat u de update van de implementatiestack hebt uitgevoerd met de --action-on-unmanage detachAll.

    "actionOnUnmanage": {
      "managementGroups": "detach",
      "resourceGroups": "detach",
      "resources": "detach"
    },
    
  3. Bekijk nu de sectie resources van de uitvoer. De Log Analytics-werkruimte en het Application Insights-exemplaar worden niet meer als beheerde resources weergegeven.

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

Nu de update is voltooid, willen we valideren dat de implementatiestack de Log Analytics-werkruimte en het Application Insights-exemplaar niet meer beheert.

  1. Als u de configuratie van de implementatiestack wilt weergeven, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Let op de waarden voor resourcesCleanupAction, resourceGroupsCleanupActionen managementGroupsCleanupAction. De waarden zijn allemaal ingesteld op detach. Dit resultaat is omdat u de update van de implementatiestack hebt uitgevoerd met de -ActionOnUnmanage DetachAll.

    resourcesCleanupAction        : detach
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach
    
  3. Bekijk nu de sectie resources van de uitvoer. De Log Analytics-werkruimte en het Application Insights-exemplaar worden niet meer als beheerde resources weergegeven.

    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
    

We gaan onze implementatiestack valideren in Azure Portal.

  1. Ga naar de Azure Portal.

  2. Selecteer Resourcegroepen in het linkerdeelvenster.

  3. Selecteer rg-depositsApplication.

  4. Vouw indien nodig het instellingenmenu uit.

  5. Selecteer Implementatiestacks.

  6. Selecteer stapeldeposito's.

  7. Controleer of u vier beheerde resources en twee losgekoppelde resources (Log Analytics en Application Insights) hebt.

    Een schermopname van Azure Portal die een implementatiestack en de bijbehorende beheerde resources en losgekoppelde resources vertegenwoordigt.

Het Bicep-bestand wijzigen om de Azure SQL-server en -database los te koppelen en te verwijderen

Het stortingsteam heeft gevraagd om de Azure SQL-server en -database los te maken en te verwijderen uit de implementatiestack en Azure. We beginnen met het wijzigen van het Bicep-bestand.

  1. Open het bestand main.bicep opnieuw in Visual Studio Code.

  2. Verwijder de gemarkeerde code uit de sectie parameters van uw bestand:

    // 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. Verwijder de gemarkeerde code uit de sectie resources van het bestand:

    // 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. Sla de wijzigingen in het bestand op.

De implementatiestack bijwerken om de beheerde resources te verwijderen

Nu het Bicep-bestand is gewijzigd, willen we de implementatiestack bijwerken, zodat de Azure SQL-server en -database worden losgekoppeld van de stack en worden verwijderd uit Azure. We gebruiken --action-on-unmanage deleteAll dit resultaat. Met deze actie worden ook de Log Analytics-werkruimte en het Application Insights-exemplaar verwijderd dat in de laatste sectie is losgekoppeld.

  1. Als u de implementatiestack wilt bijwerken, voert u de volgende opdracht uit vanuit de terminal in 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. U ontvangt een bericht waarin staat dat de stack al bestaat in het huidige abonnement. Als de waarde van de actie voor onbeheerde parameter is gewijzigd, wordt u gewaarschuwd voor de nieuwe waarden. Druk op y, gevolgd door Enter.

    Een schermopname van de Azure CLI-opdrachtregelwaarschuwing dat de implementatiestack al bestaat.

  3. Wacht tot de updatebewerking is voltooid voordat u verdergaat met de volgende taak.

Nu het Bicep-bestand is gewijzigd, willen we de implementatiestack bijwerken, zodat de Azure SQL-server en -database worden losgekoppeld van de stack en worden verwijderd uit Azure. We gebruiken -ActionOnUnmanage DeleteAll dit om dit te bereiken. Met deze actie worden ook de Log Analytics-werkruimte en het Application Insights-exemplaar verwijderd dat in de laatste sectie is losgekoppeld.

  1. Als u de implementatiestack wilt bijwerken, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Wacht tot de updatebewerking is voltooid voordat u verdergaat met de volgende taak.

De beheerde resources van de implementatiestack valideren

Nu de update is voltooid, willen we valideren dat de implementatiestack de Log Analytics-werkruimte, het Application Insights-exemplaar en de Azure SQL-server en -database niet meer beheert. We willen ook controleren of de resources uit Azure worden verwijderd.

  1. Als u de configuratie van de implementatiestack wilt weergeven, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Let op de actionOnUnmanage sectie van de uitvoer. De waarden zijn allemaal ingesteld op delete. Dit resultaat is omdat u de update van de implementatiestack hebt uitgevoerd met de --action-on-unmanage deleteAll.

    "actionOnUnmanage": {
      "managementGroups": "delete",
      "resourceGroups": "delete",
      "resources": "delete"
    },
    
  3. Bekijk nu de sectie resources van de uitvoer. De Azure SQL-server en -database worden niet meer als beheerde resources weergegeven.

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

Nu de update is voltooid, willen we valideren dat de implementatiestack de Log Analytics-werkruimte, het Application Insights-exemplaar en de Azure SQL-server en -database niet meer beheert. We willen ook controleren of de resources uit Azure worden verwijderd.

  1. Als u de configuratie van de implementatiestack wilt weergeven, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Let op de waarden voor resourcesCleanupAction, resourceGroupsCleanupActionen managementGroupsCleanupAction. De waarden zijn allemaal ingesteld op delete. Dit resultaat is omdat u de update van de implementatiestack hebt uitgevoerd met de -ActionOnUnmanage DeleteAll.

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  3. Bekijk nu de sectie resources van de uitvoer. De Azure SQL-server en -database worden niet meer als beheerde resources weergegeven.

    Resources                     : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
    
  1. Ga terug naar de Azure-portal.

  2. Selecteer Resourcegroepen in het linkerdeelvenster.

  3. Selecteer rg-depositsApplication.

  4. Vouw indien nodig het instellingenmenu uit.

  5. Selecteer Implementatiestacks.

  6. Selecteer stapeldeposito's.

  7. Controleer of het App Service-plan en de App Service nog steeds bestaan als beheerde resources en of onze andere resources worden verwijderd.

    Een schermopname van Azure Portal die een implementatiestack en de twee beheerde resources vertegenwoordigt.

De implementatiestack verwijderen

  1. Als u de implementatiestack en de bijbehorende beheerde resources wilt verwijderen, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. U wordt gevraagd om te bevestigen of u de stack en de opgegeven resources wilt verwijderen.

    Een schermopname met een bevestiging van de opdrachtregel om de implementatiestack te verwijderen met behulp van Azure CLI.

  3. Nadat de verwijderbewerking is voltooid, opent u Azure Portal en controleert u of de implementatiestack en de bijbehorende resources zijn verwijderd.

  4. Als u de resourcegroep wilt verwijderen die in deze oefeningen wordt gebruikt, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    az group delete \
        -name rg-depositsApplication
    
  5. U wordt gevraagd om te bevestigen of u de resourcegroep wilt verwijderen. Druk op Y, gevolgd door Enter.

    Een schermopname met een bevestiging van de opdrachtregel om de resourcegroep te verwijderen met behulp van Azure CLI.

  1. Als u de implementatiestack en de bijbehorende beheerde resources wilt verwijderen, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. U wordt gevraagd om te bevestigen of u de stack en de opgegeven resources wilt verwijderen.

    Een schermopname met een bevestiging van de opdrachtregel om de implementatiestack te verwijderen met behulp van Azure PowerShell.

  3. Nadat de verwijderbewerking is voltooid, opent u Azure Portal en controleert u of de implementatiestack en de bijbehorende resources zijn verwijderd.

  4. Als u de resourcegroep wilt verwijderen die in deze oefeningen wordt gebruikt, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. U wordt gevraagd om te bevestigen of u de resourcegroep wilt verwijderen. Druk op Y, gevolgd door Enter.

    Een schermopname van een opdrachtregelbevestiging om de resourcegroep te verwijderen met behulp van Azure PowerShell.

  1. Ga terug naar de Azure-portal.

  2. Selecteer Resourcegroepen in het linkerdeelvenster.

  3. Controleer of de rg-depositsApplication niet meer bestaat.