Упражнение. Отключение и удаление управляемых ресурсов из стека развертывания

Завершено

Спринт 3 для нового приложения депозитов заканчивается. Команда по депозитам попросила отсоединить рабочую область Log Analytics и экземпляр Application Insights от стека развертывания. Эти ресурсы должны продолжать существовать в Azure. Кроме того, они попросили, чтобы сервер SQL Azure и база данных были удалены из стека развертывания и Azure.

В этом упражнении вы отсоедините и удалите ресурсы Azure из стека развертывания, которые больше не нужны для приложения депозитов. Начните с отключения ресурсов из стека развертывания, которые должны продолжать существовать в Azure. Затем вы удаляете ресурсы из стека развертывания, которые больше не нужны. Наконец, удалите стек развертывания, управляемые ресурсы и группу ресурсов.

Во время процесса вы будете

  • Измените файл Bicep, чтобы удалить рабочую область Log Analytics и экземпляр Application Insights
  • Обновление стека развертывания для отключения управляемых ресурсов
  • Проверка управляемых ресурсов стека развертывания и отсоединяемых ресурсов
  • Измените файл Bicep, чтобы удалить сервер SQL Azure и базу данных
  • Обновление стека развертывания для удаления управляемых ресурсов
  • Проверка управляемых ресурсов стека развертывания и удаленных ресурсов
  • Удалите стек развертывания и управляемые ресурсы.
  • Проверьте удаление стека развертывания и управляемых ресурсов.

Измените файл Bicep, чтобы отключить рабочую область Log Analytics и экземпляр Application Insights

Команда по депозитам попросила отсоединить рабочую область Log Analytics и экземпляр Application Insights от стека развертывания. Они также попросили, чтобы ресурсы продолжали существовать в Azure. Сначала мы изменим Bicep-файл.

  1. Откройте файл main.bicep в Visual Studio Code.

  2. Удалите выделенный код из раздела переменных файла:

    // 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. Удалите выделенный код из раздела ресурсов файла:

    // 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. Сохраните изменения в файле.

Обновление стека развертывания для отключения управляемых ресурсов

Измененный файл Bicep позволяет обновить стек развертывания, чтобы рабочая область Log Analytics и экземпляр Application Insights отсоединялись от стека. Мы используем --action-on-unmanage detachAll для этого результата.

  1. Чтобы обновить стек развертывания, выполните следующую команду из терминала в 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. Вы получите сообщение о том, что стек уже существует в текущей подписке. Если значение действия для неуправляемого параметра изменилось, предупреждение оповещает вас о новых значениях. Нажмите клавишу yВВОД, а затем нажмите клавишу ВВОД.

    Снимок экрана: предупреждение командной строки Azure CLI о том, что стек развертывания уже существует.

Дождитесь завершения операции обновления, прежде чем перейти к следующей задаче.

Измененный файл Bicep позволяет обновить стек развертывания, чтобы рабочая область Log Analytics и экземпляр Application Insights отсоединялись от стека. Мы используем ActionOnUnmanage DetachAll для этого результата.

  1. Чтобы обновить стек развертывания, выполните следующую команду из терминала в Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DetachAll `
        -DenySettingsMode none
    
  2. Дождитесь завершения операции обновления, прежде чем перейти к следующей задаче.

Проверка управляемых ресурсов стека развертывания и отсоединяемых ресурсов

После завершения обновления мы хотим убедиться, что стек развертывания больше не управляет рабочей областью Log Analytics и экземпляром Application Insights.

  1. Чтобы просмотреть конфигурацию стека развертывания, выполните следующую команду из терминала в Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Обратите внимание на actionOnUnmanage раздел выходных данных. Все значения имеют значение detach. Это связано с тем, что вы выполнили обновление стека развертывания с помощью --action-on-unmanage detachAll.

    "actionOnUnmanage": {
      "managementGroups": "detach",
      "resourceGroups": "detach",
      "resources": "detach"
    },
    
  3. Теперь просмотрите раздел ресурсов выходных данных. Мы больше не видим рабочую область Log Analytics и экземпляр Application Insights как управляемые ресурсы.

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

После завершения обновления мы хотим убедиться, что стек развертывания больше не управляет рабочей областью Log Analytics и экземпляром Application Insights.

  1. Чтобы просмотреть конфигурацию стека развертывания, выполните следующую команду из терминала в Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Обратите внимание на значения для resourcesCleanupAction, resourceGroupsCleanupActionи managementGroupsCleanupAction. Все значения имеют значение detach. Это связано с тем, что вы выполнили обновление стека развертывания с помощью -ActionOnUnmanage DetachAll.

    resourcesCleanupAction        : detach
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach
    
  3. Теперь просмотрите раздел ресурсов выходных данных. Мы больше не видим рабочую область Log Analytics и экземпляр Application Insights как управляемые ресурсы.

    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
    

Давайте проверим наш стек развертывания в портал Azure.

  1. Переход на портал Azure.

  2. На левой панели выберите Группы ресурсов.

  3. Выберите rg-depositsApplication.

  4. При необходимости разверните меню параметров .

  5. Выберите стеки развертывания.

  6. Выберите стек-депозиты.

  7. Убедитесь, что у вас есть четыре управляемых ресурса и два отсоединяемых ресурса (Log Analytics и Application Insights).

    Снимок экрана: портал Azure, представляющий стек развертывания и управляемые ресурсы и отсоединяемые ресурсы.

Измените файл Bicep, чтобы отсоединить и удалить сервер SQL Azure и базу данных

Команда по депозитам попросила отсоединить и удалить сервер SQL Azure и базу данных из стека развертывания и Azure. Сначала мы изменим Bicep-файл.

  1. Откройте файл main.bicep в Visual Studio Code.

  2. Удалите выделенный код из раздела параметров файла:

    // 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. Удалите выделенный код из раздела ресурсов файла:

    // 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. Сохраните изменения в файле.

Обновление стека развертывания для удаления управляемых ресурсов

Измененный файл Bicep позволяет обновить стек развертывания, чтобы сервер SQL Azure и база данных отсоединялись от стека и удалены из Azure. Мы используем --action-on-unmanage deleteAll для этого результата. Это действие также удаляет рабочую область Log Analytics и экземпляр Application Insights, отсоединяемый в последнем разделе.

  1. Чтобы обновить стек развертывания, выполните следующую команду из терминала в 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. Вы получите сообщение о том, что стек уже существует в текущей подписке. Если значение действия для неуправляемого параметра изменилось, предупреждение оповещает вас о новых значениях. Нажмите клавишу yВВОД, а затем нажмите клавишу ВВОД.

    Снимок экрана: предупреждение командной строки Azure CLI о том, что стек развертывания уже существует.

  3. Дождитесь завершения операции обновления, прежде чем перейти к следующей задаче.

Измененный файл Bicep позволяет обновить стек развертывания, чтобы сервер SQL Azure и база данных отсоединялись от стека и удалены из Azure. Мы используем -ActionOnUnmanage DeleteAll для этого. Это действие также удаляет рабочую область Log Analytics и экземпляр Application Insights, отсоединяемый в последнем разделе.

  1. Чтобы обновить стек развертывания, выполните следующую команду из терминала в Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Дождитесь завершения операции обновления, прежде чем перейти к следующей задаче.

Проверка управляемых ресурсов стека развертывания

После завершения обновления мы хотим убедиться, что стек развертывания больше не управляет рабочей областью Log Analytics, экземпляром Application Insights и сервером SQL Azure и базой данных. Мы также хотим убедиться, что ресурсы удаляются из Azure.

  1. Чтобы просмотреть конфигурацию стека развертывания, выполните следующую команду из терминала в Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Обратите внимание на actionOnUnmanage раздел выходных данных. Все значения имеют значение delete. Это связано с тем, что вы выполнили обновление стека развертывания с помощью --action-on-unmanage deleteAll.

    "actionOnUnmanage": {
      "managementGroups": "delete",
      "resourceGroups": "delete",
      "resources": "delete"
    },
    
  3. Теперь просмотрите раздел ресурсов выходных данных. Мы больше не видим сервер SQL Azure и базу данных в качестве управляемых ресурсов.

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

После завершения обновления мы хотим убедиться, что стек развертывания больше не управляет рабочей областью Log Analytics, экземпляром Application Insights и сервером SQL Azure и базой данных. Мы также хотим убедиться, что ресурсы удаляются из Azure.

  1. Чтобы просмотреть конфигурацию стека развертывания, выполните следующую команду из терминала в Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Обратите внимание на значения для resourcesCleanupAction, resourceGroupsCleanupActionи managementGroupsCleanupAction. Все значения имеют значение delete. Это связано с тем, что вы выполнили обновление стека развертывания с помощью -ActionOnUnmanage DeleteAll.

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  3. Теперь просмотрите раздел ресурсов выходных данных. Мы больше не видим сервер SQL Azure и базу данных в качестве управляемых ресурсов.

    Resources                     : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
    
  1. Вернитесь на портал Azure.

  2. На левой панели выберите Группы ресурсов.

  3. Выберите rg-depositsApplication.

  4. При необходимости разверните меню параметров .

  5. Выберите стеки развертывания.

  6. Выберите стек-депозиты.

  7. Убедитесь, что план службы приложений и служба приложений по-прежнему существуют в качестве управляемых ресурсов, а другие ресурсы удаляются.

    Снимок экрана: портал Azure, представляющий стек развертывания и два управляемых ресурса.

Удаление стека развертывания

  1. Чтобы удалить стек развертывания и управляемые ресурсы, выполните следующую команду из терминала в Visual Studio Code.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. Он предложит подтвердить, хотите ли удалить стек и указанные ресурсы.

    Снимок экрана: подтверждение командной строки для удаления стека развертывания с помощью Azure CLI.

  3. После завершения операции удаления откройте портал Azure и убедитесь, что стек развертывания и его ресурсы удалены.

  4. Чтобы удалить группу ресурсов, используемую в этих упражнениях, выполните следующую команду из терминала в Visual Studio Code.

    az group delete \
        -name rg-depositsApplication
    
  5. Он предложит подтвердить, хотите ли удалить группу ресурсов. Нажмите клавишу Y, а затем —ВВОД.

    Снимок экрана: подтверждение командной строки для удаления группы ресурсов с помощью Azure CLI.

  1. Чтобы удалить стек развертывания и управляемые ресурсы, выполните следующую команду из терминала в Visual Studio Code.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. Он предложит подтвердить, хотите ли удалить стек и указанные ресурсы.

    Снимок экрана: подтверждение командной строки для удаления стека развертывания с помощью Azure PowerShell.

  3. После завершения операции удаления откройте портал Azure и убедитесь, что стек развертывания и его ресурсы удалены.

  4. Чтобы удалить группу ресурсов, используемую в этих упражнениях, выполните следующую команду из терминала в Visual Studio Code.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. Он предложит подтвердить, хотите ли удалить группу ресурсов. Нажмите клавишу Y, а затем —ВВОД.

    Снимок экрана: подтверждение командной строки для удаления группы ресурсов с помощью Azure PowerShell.

  1. Вернитесь на портал Azure.

  2. На левой панели выберите Группы ресурсов.

  3. Убедитесь, что rg-depositsApplication больше не существует.