Cvičení – odpojení a odstranění spravovaných prostředků ze zásobníku nasazení

Dokončeno

Blíží se konec sprintu 3 pro novou aplikaci pro vklady. Tým záloh požadoval odpojení pracovního prostoru služby Log Analytics a instance Application Insights ze zásobníku nasazení. Tyto prostředky musí v Azure nadále existovat. Kromě toho požadovali, aby se server a databáze Azure SQL odstranily ze zásobníku nasazení a Azure.

V tomto cvičení odpojte a odstraníte prostředky Azure ze zásobníku nasazení, které už pro aplikaci vkladů nepotřebujete. Začnete odpojením prostředků ze zásobníku nasazení, které musí v Azure nadále existovat. Potom odstraníte prostředky ze zásobníku nasazení, které už nepotřebujete. Nakonec odstraníte zásobník nasazení, jeho spravované prostředky a skupinu prostředků.

Během tohoto procesu budete

  • Úprava souboru Bicep pro odebrání pracovního prostoru služby Log Analytics a instance Application Insights
  • Aktualizace zásobníku nasazení pro odpojení spravovaných prostředků
  • Ověření spravovaných prostředků zásobníku nasazení a odpojených prostředků
  • Úprava souboru Bicep pro odebrání serveru a databáze Azure SQL
  • Aktualizace zásobníku nasazení pro odstranění spravovaných prostředků
  • Ověření spravovaných prostředků zásobníku nasazení a odstraněných prostředků
  • Odstraňte zásobník nasazení a spravované prostředky.
  • Ověřte odstranění zásobníku nasazení a spravovaných prostředků.

Úprava souboru Bicep pro odpojení pracovního prostoru služby Log Analytics a instance Application Insights

Tým záloh požádal, abychom odpojili pracovní prostor služby Log Analytics a instanci Application Insights ze zásobníku nasazení. Také požádali o to, aby prostředky v Azure nadále existovaly. Začneme úpravou souboru Bicep.

  1. Otevřete soubor main.bicep v editoru Visual Studio Code.

  2. Odeberte zvýrazněný kód z oddílu proměnných souboru:

    // 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. Odeberte zvýrazněný kód z oddílu prostředků souboru:

    // 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. Uložte změny souboru.

Aktualizace zásobníku nasazení pro odpojení spravovaných prostředků

Při změně souboru Bicep chceme aktualizovat zásobník nasazení tak, aby se pracovní prostor služby Log Analytics a instance Application Insights odpojily ze zásobníku. K dosažení tohoto výsledku používáme --action-on-unmanage detachAll .

  1. Pokud chcete aktualizovat zásobník nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.

    az stack group create \
        --name stack-deposits \
        --resource-group 'rg-depositsApplication' \
        --template-file ./main.bicep \
        --action-on-unmanage detachAll \
        --deny-settings-mode none
    
  2. Zobrazí se zpráva s oznámením, že zásobník již v aktuálním předplatném existuje. Pokud se hodnota akce u nespravovaných parametrů změnila, upozornění vás upozorní na nové hodnoty. Stiskněte klávesu y, následovanou klávesou Enter.

    Snímek obrazovky znázorňující upozornění příkazového řádku Azure CLI, že zásobník nasazení už existuje

Než přejdete k dalšímu úkolu, počkejte na dokončení operace aktualizace.

Při změně souboru Bicep chceme aktualizovat zásobník nasazení tak, aby se pracovní prostor služby Log Analytics a instance Application Insights odpojily ze zásobníku. K dosažení tohoto výsledku používáme ActionOnUnmanage DetachAll .

  1. Pokud chcete aktualizovat zásobník nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DetachAll `
        -DenySettingsMode none
    
  2. Než přejdete k dalšímu úkolu, počkejte na dokončení operace aktualizace.

Ověření spravovaných prostředků zásobníku nasazení a odpojených prostředků

Po dokončení aktualizace chceme ověřit, že zásobník nasazení už nespravuje pracovní prostor služby Log Analytics a instanci Application Insights.

  1. Pokud chcete zobrazit konfiguraci zásobníku nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Všimněte si actionOnUnmanage části výstupu. Všechny hodnoty jsou nastaveny na detach. Tento výsledek je způsoben tím, že jste provedli aktualizaci zásobníku nasazení s nástrojem --action-on-unmanage detachAll.

    "actionOnUnmanage": {
      "managementGroups": "detach",
      "resourceGroups": "detach",
      "resources": "detach"
    },
    
  3. Teď se podívejte na část prostředků výstupu. Pracovní prostor služby Log Analytics a instanci Application Insights už nevidíme jako spravované prostředky.

    "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 dokončení aktualizace chceme ověřit, že zásobník nasazení už nespravuje pracovní prostor služby Log Analytics a instanci Application Insights.

  1. Pokud chcete zobrazit konfiguraci zásobníku nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Všimněte si hodnot pro resourcesCleanupAction, resourceGroupsCleanupActiona managementGroupsCleanupAction. Všechny hodnoty jsou nastaveny na detach. Tento výsledek je způsoben tím, že jste provedli aktualizaci zásobníku nasazení s nástrojem -ActionOnUnmanage DetachAll.

    resourcesCleanupAction        : detach
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach
    
  3. Teď se podívejte na část prostředků výstupu. Pracovní prostor služby Log Analytics a instanci Application Insights už nevidíme jako spravované prostředky.

    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
    

Pojďme ověřit náš zásobník nasazení na webu Azure Portal.

  1. Přejděte na Azure Portal.

  2. Na levém panelu vyberte Skupiny prostředků.

  3. Vyberte rg-depositsApplication.

  4. V případě potřeby rozbalte nabídku nastavení .

  5. Vyberte Zásobníky nasazení.

  6. Vyberte zásobníkové vklady.

  7. Ověřte, že máte čtyři spravované prostředky a dva odpojené prostředky (Log Analytics a Application Insights).

    Snímek obrazovky znázorňující Azure Portal představující zásobník nasazení a jeho spravované prostředky a odpojené prostředky

Úprava souboru Bicep pro odpojení a odstranění serveru a databáze Azure SQL

Tým vkladů požádal, abychom odpojili a odstranili server a databázi Azure SQL ze zásobníku nasazení a Azure. Začneme úpravou souboru Bicep.

  1. Znovu otevřete soubor main.bicep v editoru Visual Studio Code.

  2. Odeberte zvýrazněný kód z oddílu parametrů souboru:

    // 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. Odeberte zvýrazněný kód z oddílu prostředků souboru:

    // 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. Uložte změny souboru.

Aktualizace zásobníku nasazení pro odstranění spravovaných prostředků

S upraveným souborem Bicep chceme aktualizovat zásobník nasazení tak, aby se server Azure SQL a databáze odpojily od zásobníku a odstranily z Azure. K dosažení tohoto výsledku používáme --action-on-unmanage deleteAll . Tato akce také odstraní pracovní prostor služby Log Analytics a instanci Application Insights, které jsme odpojili v poslední části.

  1. Pokud chcete aktualizovat zásobník nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.

    az stack group create \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --template-file ./main.bicep \
        --action-on-unmanage deleteAll \
        --deny-settings-mode none
    
  2. Zobrazí se zpráva s oznámením, že zásobník již v aktuálním předplatném existuje. Pokud se hodnota akce u nespravovaných parametrů změnila, upozornění vás upozorní na nové hodnoty. Stiskněte klávesu y, následovanou klávesou Enter.

    Snímek obrazovky znázorňující upozornění příkazového řádku Azure CLI, že zásobník nasazení už existuje

  3. Než přejdete k dalšímu úkolu, počkejte na dokončení operace aktualizace.

S upraveným souborem Bicep chceme aktualizovat zásobník nasazení tak, aby se server Azure SQL a databáze odpojily od zásobníku a odstranily z Azure. Toho dosáhneme -ActionOnUnmanage DeleteAll . Tato akce také odstraní pracovní prostor služby Log Analytics a instanci Application Insights, které jsme odpojili v poslední části.

  1. Pokud chcete aktualizovat zásobník nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Než přejdete k dalšímu úkolu, počkejte na dokončení operace aktualizace.

Ověření spravovaných prostředků zásobníku nasazení

Po dokončení aktualizace chceme ověřit, že zásobník nasazení už nespravuje pracovní prostor služby Log Analytics, instanci Application Insights a server a databázi Azure SQL. Chceme také ověřit, že se prostředky odstraní z Azure.

  1. Pokud chcete zobrazit konfiguraci zásobníku nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Všimněte si actionOnUnmanage části výstupu. Všechny hodnoty jsou nastaveny na delete. Tento výsledek je způsoben tím, že jste provedli aktualizaci zásobníku nasazení s nástrojem --action-on-unmanage deleteAll.

    "actionOnUnmanage": {
      "managementGroups": "delete",
      "resourceGroups": "delete",
      "resources": "delete"
    },
    
  3. Teď se podívejte na část prostředků výstupu. Azure SQL Server a databáze se už nezobrazují jako spravované prostředky.

    "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 dokončení aktualizace chceme ověřit, že zásobník nasazení už nespravuje pracovní prostor služby Log Analytics, instanci Application Insights a server a databázi Azure SQL. Chceme také ověřit, že se prostředky odstraní z Azure.

  1. Pokud chcete zobrazit konfiguraci zásobníku nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Všimněte si hodnot pro resourcesCleanupAction, resourceGroupsCleanupActiona managementGroupsCleanupAction. Všechny hodnoty jsou nastaveny na delete. Tento výsledek je způsoben tím, že jste provedli aktualizaci zásobníku nasazení s nástrojem -ActionOnUnmanage DeleteAll.

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  3. Teď se podívejte na část prostředků výstupu. Azure SQL Server a databáze se už nezobrazují jako spravované prostředky.

    Resources                     : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
    
  1. Vraťte se na Azure Portal.

  2. Na levém panelu vyberte Skupiny prostředků.

  3. Vyberte rg-depositsApplication.

  4. V případě potřeby rozbalte nabídku nastavení .

  5. Vyberte Zásobníky nasazení.

  6. Vyberte zásobníkové vklady.

  7. Ověřte, že plán služby App Service a služba App Service stále existují jako spravované prostředky, a naše další prostředky se odstraní.

    Snímek obrazovky znázorňující Azure Portal představující zásobník nasazení a jeho dva spravované prostředky

Odstranění zásobníku nasazení

  1. Pokud chcete odstranit zásobník nasazení a jeho spravované prostředky, spusťte z terminálu v editoru Visual Studio Code následující příkaz.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. Zobrazí výzvu k potvrzení, jestli chcete odstranit zásobník a zadané prostředky.

    Snímek obrazovky s potvrzením příkazového řádku pro odstranění zásobníku nasazení pomocí Azure CLI

  3. Po dokončení operace odstranění otevřete web Azure Portal a ověřte, že se odebere zásobník nasazení a jeho prostředky.

  4. Pokud chcete odstranit skupinu prostředků používanou v těchto cvičeních, spusťte následující příkaz z terminálu v editoru Visual Studio Code.

    az group delete \
        -name rg-depositsApplication
    
  5. Zobrazí výzvu k potvrzení, jestli chcete odebrat skupinu prostředků. Stiskněte Y a pak Enter.

    Snímek obrazovky s potvrzením příkazového řádku pro odstranění skupiny prostředků pomocí Azure CLI

  1. Pokud chcete odstranit zásobník nasazení a jeho spravované prostředky, spusťte z terminálu v editoru Visual Studio Code následující příkaz.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. Zobrazí výzvu k potvrzení, jestli chcete odstranit zásobník a zadané prostředky.

    Snímek obrazovky s potvrzením příkazového řádku pro odstranění zásobníku nasazení pomocí Azure PowerShellu

  3. Po dokončení operace odstranění otevřete web Azure Portal a ověřte, že se odebere zásobník nasazení a jeho prostředky.

  4. Pokud chcete odstranit skupinu prostředků používanou v těchto cvičeních, spusťte následující příkaz z terminálu v editoru Visual Studio Code.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. Zobrazí výzvu k potvrzení, jestli chcete odebrat skupinu prostředků. Stiskněte Y a pak Enter.

    Snímek obrazovky s potvrzením příkazového řádku pro odstranění skupiny prostředků pomocí Azure PowerShellu

  1. Vraťte se na Azure Portal.

  2. Na levém panelu vyberte Skupiny prostředků.

  3. Ověřte, že aplikace rg-depositsApplication již neexistuje.