Упражнение. Отключение и удаление управляемых ресурсов из стека развертывания
Спринт 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-файл.
Откройте файл main.bicep в Visual Studio Code.
Удалите выделенный код из раздела переменных файла:
// 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'
Удалите выделенный код из раздела ресурсов файла:
// 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 } }
Сохраните изменения в файле.
Обновление стека развертывания для отключения управляемых ресурсов
Измененный файл Bicep позволяет обновить стек развертывания, чтобы рабочая область Log Analytics и экземпляр Application Insights отсоединялись от стека. Мы используем --action-on-unmanage detachAll
для этого результата.
Чтобы обновить стек развертывания, выполните следующую команду из терминала в 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
Вы получите сообщение о том, что стек уже существует в текущей подписке. Если значение действия для неуправляемого параметра изменилось, предупреждение оповещает вас о новых значениях. Нажмите клавишу
y
ВВОД, а затем нажмите клавишу ВВОД.
Дождитесь завершения операции обновления, прежде чем перейти к следующей задаче.
Измененный файл Bicep позволяет обновить стек развертывания, чтобы рабочая область Log Analytics и экземпляр Application Insights отсоединялись от стека. Мы используем ActionOnUnmanage DetachAll
для этого результата.
Чтобы обновить стек развертывания, выполните следующую команду из терминала в Visual Studio Code.
Set-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -TemplateFile ./main.bicep ` -ActionOnUnmanage DetachAll ` -DenySettingsMode none
Дождитесь завершения операции обновления, прежде чем перейти к следующей задаче.
Проверка управляемых ресурсов стека развертывания и отсоединяемых ресурсов
После завершения обновления мы хотим убедиться, что стек развертывания больше не управляет рабочей областью Log Analytics и экземпляром Application Insights.
Чтобы просмотреть конфигурацию стека развертывания, выполните следующую команду из терминала в Visual Studio Code.
az stack group show \ --resource-group rg-depositsApplication \ --name stack-deposits
Обратите внимание на
actionOnUnmanage
раздел выходных данных. Все значения имеют значениеdetach
. Это связано с тем, что вы выполнили обновление стека развертывания с помощью--action-on-unmanage detachAll
."actionOnUnmanage": { "managementGroups": "detach", "resourceGroups": "detach", "resources": "detach" },
Теперь просмотрите раздел ресурсов выходных данных. Мы больше не видим рабочую область 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.
Чтобы просмотреть конфигурацию стека развертывания, выполните следующую команду из терминала в Visual Studio Code.
Get-AzResourceGroupDeploymentStack ` -ResourceGroupName rg-depositsApplication ` -Name stack-deposits
Обратите внимание на значения для
resourcesCleanupAction
,resourceGroupsCleanupAction
иmanagementGroupsCleanupAction
. Все значения имеют значениеdetach
. Это связано с тем, что вы выполнили обновление стека развертывания с помощью-ActionOnUnmanage DetachAll
.resourcesCleanupAction : detach resourceGroupsCleanupAction : detach managementGroupsCleanupAction : detach
Теперь просмотрите раздел ресурсов выходных данных. Мы больше не видим рабочую область 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.
Переход на портал Azure.
На левой панели выберите Группы ресурсов.
Выберите rg-depositsApplication.
При необходимости разверните меню параметров .
Выберите стеки развертывания.
Выберите стек-депозиты.
Убедитесь, что у вас есть четыре управляемых ресурса и два отсоединяемых ресурса (Log Analytics и Application Insights).
Измените файл Bicep, чтобы отсоединить и удалить сервер SQL Azure и базу данных
Команда по депозитам попросила отсоединить и удалить сервер SQL Azure и базу данных из стека развертывания и Azure. Сначала мы изменим Bicep-файл.
Откройте файл main.bicep в Visual Studio Code.
Удалите выделенный код из раздела параметров файла:
// 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)}'
Удалите выделенный код из раздела ресурсов файла:
// 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' } }
Сохраните изменения в файле.
Обновление стека развертывания для удаления управляемых ресурсов
Измененный файл Bicep позволяет обновить стек развертывания, чтобы сервер SQL Azure и база данных отсоединялись от стека и удалены из Azure. Мы используем --action-on-unmanage deleteAll
для этого результата. Это действие также удаляет рабочую область Log Analytics и экземпляр Application Insights, отсоединяемый в последнем разделе.
Чтобы обновить стек развертывания, выполните следующую команду из терминала в 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
Вы получите сообщение о том, что стек уже существует в текущей подписке. Если значение действия для неуправляемого параметра изменилось, предупреждение оповещает вас о новых значениях. Нажмите клавишу
y
ВВОД, а затем нажмите клавишу ВВОД.Дождитесь завершения операции обновления, прежде чем перейти к следующей задаче.
Измененный файл Bicep позволяет обновить стек развертывания, чтобы сервер SQL Azure и база данных отсоединялись от стека и удалены из Azure. Мы используем -ActionOnUnmanage DeleteAll
для этого. Это действие также удаляет рабочую область Log Analytics и экземпляр Application Insights, отсоединяемый в последнем разделе.
Чтобы обновить стек развертывания, выполните следующую команду из терминала в Visual Studio Code.
Set-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -TemplateFile ./main.bicep ` -ActionOnUnmanage DeleteAll ` -DenySettingsMode none
Дождитесь завершения операции обновления, прежде чем перейти к следующей задаче.
Проверка управляемых ресурсов стека развертывания
После завершения обновления мы хотим убедиться, что стек развертывания больше не управляет рабочей областью Log Analytics, экземпляром Application Insights и сервером SQL Azure и базой данных. Мы также хотим убедиться, что ресурсы удаляются из Azure.
Чтобы просмотреть конфигурацию стека развертывания, выполните следующую команду из терминала в Visual Studio Code.
az stack group show \ --resource-group rg-depositsApplication \ --name stack-deposits
Обратите внимание на
actionOnUnmanage
раздел выходных данных. Все значения имеют значениеdelete
. Это связано с тем, что вы выполнили обновление стека развертывания с помощью--action-on-unmanage deleteAll
."actionOnUnmanage": { "managementGroups": "delete", "resourceGroups": "delete", "resources": "delete" },
Теперь просмотрите раздел ресурсов выходных данных. Мы больше не видим сервер 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.
Чтобы просмотреть конфигурацию стека развертывания, выполните следующую команду из терминала в Visual Studio Code.
Get-AzResourceGroupDeploymentStack ` -ResourceGroupName rg-depositsApplication ` -Name stack-deposits
Обратите внимание на значения для
resourcesCleanupAction
,resourceGroupsCleanupAction
иmanagementGroupsCleanupAction
. Все значения имеют значениеdelete
. Это связано с тем, что вы выполнили обновление стека развертывания с помощью-ActionOnUnmanage DeleteAll
.resourcesCleanupAction : delete resourceGroupsCleanupAction : delete managementGroupsCleanupAction : delete
Теперь просмотрите раздел ресурсов выходных данных. Мы больше не видим сервер SQL Azure и базу данных в качестве управляемых ресурсов.
Resources : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
Вернитесь на портал Azure.
На левой панели выберите Группы ресурсов.
Выберите rg-depositsApplication.
При необходимости разверните меню параметров .
Выберите стеки развертывания.
Выберите стек-депозиты.
Убедитесь, что план службы приложений и служба приложений по-прежнему существуют в качестве управляемых ресурсов, а другие ресурсы удаляются.
Удаление стека развертывания
Чтобы удалить стек развертывания и управляемые ресурсы, выполните следующую команду из терминала в Visual Studio Code.
az stack group delete \ --name stack-deposits \ --resource-group rg-depositsApplication \ --action-on-unmanage deleteAll
Он предложит подтвердить, хотите ли удалить стек и указанные ресурсы.
После завершения операции удаления откройте портал Azure и убедитесь, что стек развертывания и его ресурсы удалены.
Чтобы удалить группу ресурсов, используемую в этих упражнениях, выполните следующую команду из терминала в Visual Studio Code.
az group delete \ -name rg-depositsApplication
Он предложит подтвердить, хотите ли удалить группу ресурсов. Нажмите клавишу Y, а затем —ВВОД.
Чтобы удалить стек развертывания и управляемые ресурсы, выполните следующую команду из терминала в Visual Studio Code.
Remove-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -ActionOnUnmanage DeleteAll
Он предложит подтвердить, хотите ли удалить стек и указанные ресурсы.
После завершения операции удаления откройте портал Azure и убедитесь, что стек развертывания и его ресурсы удалены.
Чтобы удалить группу ресурсов, используемую в этих упражнениях, выполните следующую команду из терминала в Visual Studio Code.
Remove-AzResourceGroup ` -Name rg-depositsApplication
Он предложит подтвердить, хотите ли удалить группу ресурсов. Нажмите клавишу Y, а затем —ВВОД.
Вернитесь на портал Azure.
На левой панели выберите Группы ресурсов.
Убедитесь, что rg-depositsApplication больше не существует.