練習 - 從部署堆疊中斷連結和刪除受控資源
新存款應用程式的短期衝刺 3 即將結束。 存款小組要求您從部署堆疊中斷連結 Log Analytics 工作區和 Application Insights 執行個體。 那些資源必須繼續存在於 Azure 中。 此外,他們要求您從部署堆疊和 Azure 中刪除 Azure SQL 伺服器和資料庫。
在此練習中,您會從存款應用程式不再需要的部署堆疊中斷連結和刪除 Azure 資源。 您會從需要繼續存在於 Azure 中的部署堆疊中斷連結資源開始。 然後,您會從不再需要的部署堆疊刪除資源。 最後,您會刪除部署堆疊、其受控資源,以及資源群組。
在此流程中,您將會
- 修改 Bicep 檔案,以移除 Log Analytics 工作區和 Application Insights 執行個體
- 更新部署堆疊以中斷連結受控資源
- 驗證部署堆疊的受控資源與已中斷連結的資源
- 修改 Bicep 檔案以移除 Azure SQL 伺服器和資料庫
- 更新部署堆疊以刪除受控資源
- 驗證部署堆疊的受控資源與已刪除的資源
- 刪除部署堆疊和受控資源。
- 驗證部署堆疊和受控資源的刪除。
修改 Bicep 檔案,以中斷連結 Log Analytics 工作區和 Application Insights 執行個體
存款小組要求我們從部署堆疊中斷連結 Log Analytics 工作區和 Application Insights 執行個體。 他們還要求資源繼續存在於 Azure 中。 我們從修改 Bicep 檔案開始。
在 Visual Studio Code 中,開啟 main.bicep 檔案。
將醒目提示的程式碼從檔案的變數區段移除:
// 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
您會收到訊息,指出堆疊已存在於目前的訂用帳戶。 如果 action on unmanage 參數的值已變更,則警告會警示您新的值。 按
y
,接下來按「Enter 鍵」。
等候更新作業完成,再進行下個工作。
修改 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]。
如有必要,請展開 [設定] 功能表。
選取 [部署堆疊]。
選取 [stack-deposits]。
確認您有四個受控資源和兩個已中斷連結的資源 (Log Analytics 和 Application Insights)。
修改 Bicep 檔案以中斷連結和刪除 Azure SQL 伺服器和資料庫
存款小組要求我們從部署堆疊和 Azure 中斷連結和刪除 Azure SQL 伺服器和資料庫。 我們從修改 Bicep 檔案開始。
在 Visual Studio Code 中,重新開啟 main.bicep 檔案。
將醒目提示的程式碼從檔案的參數區段移除:
// 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 檔案之後,我們想要更新部署堆疊,讓 Azure SQL 伺服器和資料庫與堆疊中斷連結並從 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
您會收到訊息,指出堆疊已存在於目前的訂用帳戶。 如果 action on unmanage 參數的值已變更,則警告會警示您新的值。 按
y
,接下來按「Enter 鍵」。等候更新作業完成,再進行下個工作。
修改 Bicep 檔案之後,我們想要更新部署堆疊,讓 Azure SQL 伺服器和資料庫與堆疊中斷連結並從 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 執行個體與 Azure SQL 伺服器和資料庫。 我們也想要確認資源已從 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" },
現在請看一下輸出的資源區段。 我們已不再看到 Azure SQL 伺服器和資料庫是受控資源。
"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 執行個體與 Azure SQL 伺服器和資料庫。 我們也想要確認資源已從 Azure 刪除。
若要檢視部署堆疊的設定,請從 Visual Studio Code 中的終端執行下列命令。
Get-AzResourceGroupDeploymentStack ` -ResourceGroupName rg-depositsApplication ` -Name stack-deposits
請留意
resourcesCleanupAction
、resourceGroupsCleanupAction
和managementGroupsCleanupAction
的值。 這些值全都設定為delete
。 此結果是因為您使用-ActionOnUnmanage DeleteAll
執行部署堆疊更新。resourcesCleanupAction : delete resourceGroupsCleanupAction : delete managementGroupsCleanupAction : delete
現在請看一下輸出的資源區段。 我們已不再看到 Azure SQL 伺服器和資料庫是受控資源。
Resources : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
返回 Azure 入口網站。
在左側面板中,選取 [資源群組]。
選取 [rg-depositsApplication]。
如有必要,請展開 [設定] 功能表。
選取 [部署堆疊]。
選取 [stack-deposits]。
確認 App Service 方案和 App Service 仍以受控資源的形式存在,而且我們的其他資源已刪除。
刪除部署堆疊
若要刪除部署堆疊及其受控資源,請從 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 按鍵」,接下來按「Enter 鍵」。
若要刪除部署堆疊及其受控資源,請從 Visual Studio Code 中的終端執行下列命令。
Remove-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -ActionOnUnmanage DeleteAll
它會提示您確認是否要刪除堆疊和指定的資源。
刪除作業完成之後,請開啟 Azure 入口網站並驗證已移除部署堆疊及其資源。
若要刪除這些練習中使用的資源群組,請從 Visual Studio Code 中的終端執行下列命令。
Remove-AzResourceGroup ` -Name rg-depositsApplication
它會提示您確認是否要移除資源群組。 按「Y 按鍵」,接下來按「Enter 鍵」。
返回 Azure 入口網站。
在左側面板中,選取 [資源群組]。
確認 rg-depositsApplication 已不存在。