練習 - 從部署堆疊中斷連結和刪除受控資源

已完成

新存款應用程式的短期衝刺 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 檔案開始。

  1. 在 Visual Studio Code 中,開啟 main.bicep 檔案。

  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. 您會收到訊息,指出堆疊已存在於目前的訂用帳戶。 如果 action on unmanage 參數的值已變更,則警告會警示您新的值。 按 y,接下來按「Enter 鍵」。

    顯示部署堆疊已存在之 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. 請留意 resourcesCleanupActionresourceGroupsCleanupActionmanagementGroupsCleanupAction 的值。 這些值全都設定為 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. 選取 [stack-deposits]

  7. 確認您有四個受控資源和兩個已中斷連結的資源 (Log Analytics 和 Application Insights)。

    顯示 Azure 入口網站的螢幕擷取畫面,其中顯示部署堆疊和其受控資源,以及已中斷連結的資源。

修改 Bicep 檔案以中斷連結和刪除 Azure SQL 伺服器和資料庫

存款小組要求我們從部署堆疊和 Azure 中斷連結和刪除 Azure SQL 伺服器和資料庫。 我們從修改 Bicep 檔案開始。

  1. 在 Visual Studio Code 中,重新開啟 main.bicep 檔案。

  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 檔案之後,我們想要更新部署堆疊,讓 Azure SQL 伺服器和資料庫與堆疊中斷連結並從 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. 您會收到訊息,指出堆疊已存在於目前的訂用帳戶。 如果 action on unmanage 參數的值已變更,則警告會警示您新的值。 按 y,接下來按「Enter 鍵」。

    顯示部署堆疊已存在之 Azure CLI 命令列警告的螢幕擷取畫面。

  3. 等候更新作業完成,再進行下個工作。

修改 Bicep 檔案之後,我們想要更新部署堆疊,讓 Azure SQL 伺服器和資料庫與堆疊中斷連結並從 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 執行個體與 Azure SQL 伺服器和資料庫。 我們也想要確認資源已從 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. 現在請看一下輸出的資源區段。 我們已不再看到 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 刪除。

  1. 若要檢視部署堆疊的設定,請從 Visual Studio Code 中的終端執行下列命令。

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. 請留意 resourcesCleanupActionresourceGroupsCleanupActionmanagementGroupsCleanupAction 的值。 這些值全都設定為 delete。 此結果是因為您使用 -ActionOnUnmanage DeleteAll 執行部署堆疊更新。

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  3. 現在請看一下輸出的資源區段。 我們已不再看到 Azure SQL 伺服器和資料庫是受控資源。

    Resources                     : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
    
  1. 返回 Azure 入口網站

  2. 在左側面板中,選取 [資源群組]

  3. 選取 [rg-depositsApplication]

  4. 如有必要,請展開 [設定] 功能表。

  5. 選取 [部署堆疊]

  6. 選取 [stack-deposits]

  7. 確認 App Service 方案和 App Service 仍以受控資源的形式存在,而且我們的其他資源已刪除。

    顯示 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 按鍵」,接下來按「Enter 鍵」。

    顯示使用 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 按鍵」,接下來按「Enter 鍵」。

    顯示使用 Azure PowerShell 刪除資源群組之命令列確認的螢幕擷取畫面。

  1. 返回 Azure 入口網站

  2. 在左側面板中,選取 [資源群組]

  3. 確認 rg-depositsApplication 已不存在。