Övning – Koppla från och ta bort hanterade resurser från en distributionsstack

Slutförd

Sprint 3 för den nya inlåningsapplikationen är på väg att avslutas. Teamet för inlåning begärde att du skulle koppla från Log Analytics-arbetsytan och Application Insights-instansen från distributionsstacken. Dessa resurser måste fortsätta att finnas i Azure. Dessutom begärde de att Azure SQL-servern och databasen skulle tas bort från distributionsstacken och Azure.

I den här övningen kopplar du bort och tar bort Azure-resurser från distributionsstacken som inte längre behövs för inlåningsprogrammet. Du börjar med att koppla bort resurser från distributionsstacken som måste finnas kvar i Azure. Sedan tar du bort resurser från distributionsstacken som inte längre behövs. Slutligen tar du bort distributionsstacken, dess hanterade resurser och resursgruppen.

Under processen kommer du att

  • Ändra Bicep-filen för att ta bort Log Analytics-arbetsytan och Application Insights-instansen
  • Uppdatera distributionsstacken för att koppla från de hanterade resurserna
  • Verifiera distributionsstackens hanterade resurser och de frånkopplade resurserna
  • Ändra Bicep-filen för att ta bort Azure SQL-servern och databasen
  • Uppdatera distributionsstacken för att ta bort de hanterade resurserna
  • Verifiera distributionsstackens hanterade resurser och de borttagna resurserna
  • Ta bort distributionsstacken och hanterade resurser.
  • Verifiera borttagningen av distributionsstacken och de hanterade resurserna.

Ändra Bicep-filen för att koppla från Log Analytics-arbetsytan och Application Insights-instansen

Teamet för inlåning begärde att vi skulle koppla från Log Analytics-arbetsytan och Application Insights-instansen från distributionsstacken. De begärde också att resurserna skulle finnas kvar i Azure. Vi börjar med att ändra Bicep-filen.

  1. Öppna filen main.bicep i Visual Studio Code.

  2. Ta bort den markerade koden från avsnittet variabler i filen:

    // 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. Ta bort den markerade koden från resursavsnittet i filen:

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

Uppdatera distributionsstacken för att koppla från de hanterade resurserna

När Bicep-filen har ändrats vill vi uppdatera distributionsstacken så att Log Analytics-arbetsytan och Application Insights-instansen kopplas från stacken. Vi använder --action-on-unmanage detachAll för att uppnå det här resultatet.

  1. Om du vill uppdatera distributionsstacken kör du följande kommando från terminalen i 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. Du får ett meddelande om att stacken redan finns i den aktuella prenumerationen. Om värdet för åtgärden för ohanterad parameter har ändrats varnar varningen dig om de nya värdena. Tryck på y, följt av "Retur".

    En skärmbild som visar azure CLI-kommandoraden som varnar för att distributionsstacken redan finns.

Vänta tills uppdateringsåtgärden har slutförts innan du går vidare till nästa uppgift.

När Bicep-filen har ändrats vill vi uppdatera distributionsstacken så att Log Analytics-arbetsytan och Application Insights-instansen kopplas från stacken. Vi använder ActionOnUnmanage DetachAll för att uppnå det här resultatet.

  1. Om du vill uppdatera distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DetachAll `
        -DenySettingsMode none
    
  2. Vänta tills uppdateringsåtgärden har slutförts innan du går vidare till nästa uppgift.

Verifiera distributionsstackens hanterade resurser och de frånkopplade resurserna

När uppdateringen är klar vill vi verifiera att distributionsstacken inte längre hanterar Log Analytics-arbetsytan och Application Insights-instansen.

  1. Om du vill visa konfigurationen av distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Observera avsnittet actionOnUnmanage i utdata. Värdena är alla inställda på detach. Det här resultatet beror på att du utförde distributionsstackens uppdatering med --action-on-unmanage detachAll.

    "actionOnUnmanage": {
      "managementGroups": "detach",
      "resourceGroups": "detach",
      "resources": "detach"
    },
    
  3. Titta nu på resursavsnittet i utdata. Vi ser inte längre Log Analytics-arbetsytan och Application Insights-instansen som hanterade resurser.

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

När uppdateringen är klar vill vi verifiera att distributionsstacken inte längre hanterar Log Analytics-arbetsytan och Application Insights-instansen.

  1. Om du vill visa konfigurationen av distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Observera värdena för resourcesCleanupAction, resourceGroupsCleanupActionoch managementGroupsCleanupAction. Värdena är alla inställda på detach. Det här resultatet beror på att du utförde distributionsstackens uppdatering med -ActionOnUnmanage DetachAll.

    resourcesCleanupAction        : detach
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach
    
  3. Titta nu på resursavsnittet i utdata. Vi ser inte längre Log Analytics-arbetsytan och Application Insights-instansen som hanterade resurser.

    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
    

Nu ska vi verifiera vår distributionsstack i Azure Portal.

  1. Gå till Azure-portalen.

  2. På den vänstra panelen väljer du Resursgrupper.

  3. Välj rg-depositsApplication.

  4. Om det behövs expanderar du inställningsmenyn.

  5. Välj Distributionsstackar.

  6. Välj stackinsättningar.

  7. Kontrollera att du har fyra hanterade resurser och två frånkopplade resurser (Log Analytics och Application Insights).

    En skärmbild som visar Azure Portal som representerar en distributionsstack och dess hanterade resurser och frånkopplade resurser.

Ändra Bicep-filen för att koppla från och ta bort Azure SQL-servern och databasen

Teamet för inlåning begärde att vi skulle koppla från och ta bort Azure SQL-servern och databasen från distributionsstacken och Azure. Vi börjar med att ändra Bicep-filen.

  1. Öppna filen main.bicep igen i Visual Studio Code.

  2. Ta bort den markerade koden från avsnittet parametrar i filen:

    // 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. Ta bort den markerade koden från resursavsnittet i filen:

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

Uppdatera distributionsstacken för att ta bort de hanterade resurserna

När Bicep-filen har ändrats vill vi uppdatera distributionsstacken så att Azure SQL-servern och databasen kopplas från stacken och tas bort från Azure. Vi använder --action-on-unmanage deleteAll för att uppnå det här resultatet. Den här åtgärden tar också bort Log Analytics-arbetsytan och Application Insights-instansen som vi tog bort i det sista avsnittet.

  1. Om du vill uppdatera distributionsstacken kör du följande kommando från terminalen i 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. Du får ett meddelande om att stacken redan finns i den aktuella prenumerationen. Om värdet för åtgärden för ohanterad parameter har ändrats varnar varningen dig om de nya värdena. Tryck på y, följt av "Retur".

    En skärmbild som visar azure CLI-kommandoraden som varnar för att distributionsstacken redan finns.

  3. Vänta tills uppdateringsåtgärden har slutförts innan du går vidare till nästa uppgift.

När Bicep-filen har ändrats vill vi uppdatera distributionsstacken så att Azure SQL-servern och databasen kopplas från stacken och tas bort från Azure. Vi använder -ActionOnUnmanage DeleteAll för att åstadkomma detta. Den här åtgärden tar också bort Log Analytics-arbetsytan och Application Insights-instansen som vi tog bort i det sista avsnittet.

  1. Om du vill uppdatera distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Vänta tills uppdateringsåtgärden har slutförts innan du går vidare till nästa uppgift.

Verifiera distributionsstackens hanterade resurser

När uppdateringen är klar vill vi verifiera att distributionsstacken inte längre hanterar Log Analytics-arbetsytan, Application Insights-instansen och Azure SQL-servern och databasen. Vi vill också kontrollera att resurserna tas bort från Azure.

  1. Om du vill visa konfigurationen av distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Observera avsnittet actionOnUnmanage i utdata. Värdena är alla inställda på delete. Det här resultatet beror på att du utförde distributionsstackens uppdatering med --action-on-unmanage deleteAll.

    "actionOnUnmanage": {
      "managementGroups": "delete",
      "resourceGroups": "delete",
      "resources": "delete"
    },
    
  3. Titta nu på resursavsnittet i utdata. Vi ser inte längre Azure SQL-servern och databasen som hanterade resurser.

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

När uppdateringen är klar vill vi verifiera att distributionsstacken inte längre hanterar Log Analytics-arbetsytan, Application Insights-instansen och Azure SQL-servern och databasen. Vi vill också kontrollera att resurserna tas bort från Azure.

  1. Om du vill visa konfigurationen av distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Observera värdena för resourcesCleanupAction, resourceGroupsCleanupActionoch managementGroupsCleanupAction. Värdena är alla inställda på delete. Det här resultatet beror på att du utförde distributionsstackens uppdatering med -ActionOnUnmanage DeleteAll.

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  3. Titta nu på resursavsnittet i utdata. Vi ser inte längre Azure SQL-servern och databasen som hanterade resurser.

    Resources                     : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
    
  1. Gå tillbaka till Azure-portalen.

  2. På den vänstra panelen väljer du Resursgrupper.

  3. Välj rg-depositsApplication.

  4. Om det behövs expanderar du inställningsmenyn.

  5. Välj Distributionsstackar.

  6. Välj stackinsättningar.

  7. Kontrollera att App Service-planen och App Service fortfarande finns som hanterade resurser och att våra andra resurser tas bort.

    En skärmbild som visar Azure Portal som representerar en distributionsstack och dess två hanterade resurser.

Ta bort distributionsstacken

  1. Om du vill ta bort distributionsstacken och dess hanterade resurser kör du följande kommando från terminalen i Visual Studio Code.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. Du uppmanas att bekräfta om du vill ta bort stacken och de angivna resurserna.

    En skärmbild som visar en kommandoradsbekräftelse för att ta bort distributionsstacken med Hjälp av Azure CLI.

  3. När borttagningen har slutförts öppnar du Azure Portal och kontrollerar att distributionsstacken och dess resurser har tagits bort.

  4. Om du vill ta bort resursgruppen som används i de här övningarna kör du följande kommando från terminalen i Visual Studio Code.

    az group delete \
        -name rg-depositsApplication
    
  5. Du uppmanas att bekräfta om du vill ta bort resursgruppen. Tryck på 'Y', följt av 'Retur'.

    En skärmbild som visar en kommandoradsbekräftelse för att ta bort resursgruppen med hjälp av Azure CLI.

  1. Om du vill ta bort distributionsstacken och dess hanterade resurser kör du följande kommando från terminalen i Visual Studio Code.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. Du uppmanas att bekräfta om du vill ta bort stacken och de angivna resurserna.

    En skärmbild som visar en kommandoradsbekräftelse för att ta bort distributionsstacken med Hjälp av Azure PowerShell.

  3. När borttagningen har slutförts öppnar du Azure Portal och kontrollerar att distributionsstacken och dess resurser har tagits bort.

  4. Om du vill ta bort resursgruppen som används i de här övningarna kör du följande kommando från terminalen i Visual Studio Code.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. Du uppmanas att bekräfta om du vill ta bort resursgruppen. Tryck på 'Y', följt av 'Retur'.

    En skärmbild som visar en kommandoradsbekräftelse för att ta bort resursgruppen med hjälp av Azure PowerShell.

  1. Gå tillbaka till Azure-portalen.

  2. På den vänstra panelen väljer du Resursgrupper.

  3. Kontrollera att rg-depositsApplication inte längre finns.