Ejercicio: Desasociación y eliminación de recursos administrados de una pila de implementación

Completado

Se acerca el final de Sprint 3 para la nueva aplicación de depósitos. El equipo de depósitos ha solicitado que desasocie el área de trabajo de Log Analytics y la instancia de Application Insights de la pila de implementación. Esos recursos deben seguir existiendo en Azure. Además, ha solicitado que el servidor y la base de datos de Azure SQL se eliminen de la pila de implementación y de Azure.

En este ejercicio, desasociará y eliminará recursos de Azure de la pila de implementación que ya no son necesarios para la aplicación de depósitos. Primero desasociará los recursos de la pila de implementación que deben seguir existiendo en Azure. Después, eliminará los recursos de la pila de implementación que ya no sean necesarios. Por último, eliminará la pila de implementación, sus recursos administrados y el grupo de recursos.

Durante el proceso, hará lo siguiente

  • Modificar el archivo de Bicep para quitar el área de trabajo de Log Analytics y la instancia de Application Insights
  • Actualizar la pila de implementación para desasociar los recursos administrados
  • Validar los recursos administrados de la pila de implementación y los recursos desasociados
  • Modificar el archivo de Bicep para quitar el servidor y la base de datos de Azure SQL
  • Actualizar la pila de implementación para eliminar los recursos administrados
  • Validar los recursos administrados de la pila de implementación y los recursos eliminados
  • Elimine la pila de implementación y los recursos administrados.
  • Valide la eliminación de la pila de implementación y los recursos administrados.

Modificar el archivo de Bicep para desasociar el área de trabajo de Log Analytics y la instancia de Application Insights

El equipo de depósitos ha solicitado que se desasocie el área de trabajo de Log Analytics y la instancia de Application Insights de la pila de implementación. También han solicitado que los recursos sigan existiendo en Azure. En primera lugar se modifica el archivo de Bicep.

  1. En Visual Studio Code, abra el archivo main.bicep.

  2. Quite el código resaltado de la sección de variables del archivo:

    // 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. Quite el código resaltado de la sección de recursos del archivo:

    // 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. Guarde los cambios en el archivo.

Actualizar la pila de implementación para desasociar los recursos administrados

Con el archivo de Bicep modificado, el objetivo es actualizar la pila de implementación para que el área de trabajo de Log Analytics y la instancia de Application Insights se desasocien de la pila. Para lograr este resultado se usa --action-on-unmanage detachAll.

  1. Para crear la pila de implementación, ejecute el siguiente comando desde el terminal en 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. Recibirá un mensaje que indica que la pila ya existe en la suscripción actual. Si el valor de la acción en el parámetro no administrado ha cambiado, la advertencia le avisa de los nuevos valores. Presione y, seguido de "Entrar".

    Captura de pantalla que muestra la línea de comandos de la CLI de Azure que indica que la pila de implementación ya existe.

Espere a que la implementación se complete antes de continuar con el paso siguiente.

Con el archivo de Bicep modificado, el objetivo es actualizar la pila de implementación para que el área de trabajo de Log Analytics y la instancia de Application Insights se desasocien de la pila. Para lograr este resultado se usa ActionOnUnmanage DetachAll.

  1. Para crear la pila de implementación, ejecute el siguiente comando desde el terminal en Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DetachAll `
        -DenySettingsMode none
    
  2. Espere a que la implementación se complete antes de continuar con el paso siguiente.

Validar los recursos administrados de la pila de implementación y los recursos desasociados

Una vez que se complete la actualización, querrá validar que la pila de implementación ya no administra el área de trabajo de Log Analytics ni la instancia de Application Insights.

  1. Para ver la configuración de la pila de implementación, ejecute el siguiente comando desde el terminal en Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Observe la sección actionOnUnmanage de la salida. Todos los valores están establecidos en detach. Este resultado se debe a que ha realizado la actualización de la pila de implementación con --action-on-unmanage detachAll.

    "actionOnUnmanage": {
      "managementGroups": "detach",
      "resourceGroups": "detach",
      "resources": "detach"
    },
    
  3. Ahora observe la sección de recursos de la salida. Ya no se ve el área de trabajo de Log Analytics ni la instancia de Application Insights como recursos administrados.

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

Una vez que se complete la actualización, querrá validar que la pila de implementación ya no administra el área de trabajo de Log Analytics ni la instancia de Application Insights.

  1. Para ver la configuración de la pila de implementación, ejecute el siguiente comando desde el terminal en Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Anote los valores de resourcesCleanupAction, resourceGroupsCleanupAction y managementGroupsCleanupAction. Todos los valores están establecidos en detach. Este resultado se debe a que ha realizado la actualización de la pila de implementación con -ActionOnUnmanage DetachAll.

    resourcesCleanupAction        : detach
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach
    
  3. Ahora observe la sección de recursos de la salida. Ya no se ve el área de trabajo de Log Analytics ni la instancia de Application Insights como recursos administrados.

    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
    

Ahora se validará la pila de implementación en Azure Portal.

  1. Vaya a Azure Portal.

  2. En el panel izquierdo, seleccione Grupos de recursos.

  3. Seleccione rg-depositsApplication.

  4. Si es necesario, expanda el menú configuración.

  5. Seleccione Pilas de implementación.

  6. Seleccione stack-deposits.

  7. Compruebe que tiene cuatro recursos administrados y dos recursos desasociados (Log Analytics y Application Insights).

    Recorte de pantalla en el que se muestra Azure Portal, donde se representa una pila de implementación y sus recursos administrados y recursos desasociados.

Modificación del archivo de Bicep para desasociar y eliminar el servidor y la base de datos de Azure SQL

El equipo de depósitos ha solicitado que el servidor y la base de datos de Azure SQL se desasocien y eliminen de la pila de implementación y de Azure. En primera lugar se modifica el archivo de Bicep.

  1. Vuelva a abrir el archivo main.bicep en Visual Studio Code.

  2. Quite el código resaltado de la sección de parámetros del archivo:

    // 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. Quite el código resaltado de la sección de recursos del archivo:

    // 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. Guarde los cambios en el archivo.

Actualizar la pila de implementación para eliminar los recursos administrados

Con el archivo de Bicep modificado, el objetivo es actualizar la pila de implementación para que el servidor y la base de datos de Azure SQL se desasocien de la pila y se quiten de Azure. Para lograr este resultado se usa --action-on-unmanage deleteAll. Esta acción también elimina el área de trabajo de Log Analytics y la instancia de Application Insights que se han desasociado en la última sección.

  1. Para crear la pila de implementación, ejecute el siguiente comando desde el terminal en 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. Recibirá un mensaje que indica que la pila ya existe en la suscripción actual. Si el valor de la acción en el parámetro no administrado ha cambiado, la advertencia le avisa de los nuevos valores. Presione y, seguido de "Entrar".

    Captura de pantalla que muestra la línea de comandos de la CLI de Azure que indica que la pila de implementación ya existe.

  3. Espere a que la implementación se complete antes de continuar con el paso siguiente.

Con el archivo de Bicep modificado, el objetivo es actualizar la pila de implementación para que el servidor y la base de datos de Azure SQL se desasocien de la pila y se quiten de Azure. Para lograrlo se usa -ActionOnUnmanage DeleteAll. Esta acción también elimina el área de trabajo de Log Analytics y la instancia de Application Insights que se han desasociado en la última sección.

  1. Para crear la pila de implementación, ejecute el siguiente comando desde el terminal en Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Espere a que la implementación se complete antes de continuar con el paso siguiente.

Validación de los recursos administrados de la pila de implementación

Una vez que se complete la actualización, querrá validar que la pila de implementación ya no administra el área de trabajo de Log Analytics ni la instancia de Application Insights, ni el servidor y la base de datos de Azure SQL. También quiere comprobar que los recursos se han eliminado de Azure.

  1. Para ver la configuración de la pila de implementación, ejecute el siguiente comando desde el terminal en Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Observe la sección actionOnUnmanage de la salida. Todos los valores están establecidos en delete. Este resultado se debe a que ha realizado la actualización de la pila de implementación con --action-on-unmanage deleteAll.

    "actionOnUnmanage": {
      "managementGroups": "delete",
      "resourceGroups": "delete",
      "resources": "delete"
    },
    
  3. Ahora observe la sección de recursos de la salida. Ya no se ven ni el servidor ni la base de datos de Azure SQL como recursos administrados.

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

Una vez que se complete la actualización, querrá validar que la pila de implementación ya no administra el área de trabajo de Log Analytics ni la instancia de Application Insights, ni el servidor y la base de datos de Azure SQL. También quiere comprobar que los recursos se han eliminado de Azure.

  1. Para ver la configuración de la pila de implementación, ejecute el siguiente comando desde el terminal en Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Anote los valores de resourcesCleanupAction, resourceGroupsCleanupAction y managementGroupsCleanupAction. Todos los valores están establecidos en delete. Este resultado se debe a que ha realizado la actualización de la pila de implementación con -ActionOnUnmanage DeleteAll.

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  3. Ahora observe la sección de recursos de la salida. Ya no se ven ni el servidor ni la base de datos de Azure SQL como recursos administrados.

    Resources                     : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
    
  1. Vuelva a Azure Portal.

  2. En el panel izquierdo, seleccione Grupos de recursos.

  3. Seleccione rg-depositsApplication.

  4. Si es necesario, expanda el menú configuración.

  5. Seleccione Pilas de implementación.

  6. Seleccione stack-deposits.

  7. Compruebe que el plan de App Service y la instancia de App Service siguen existiendo como recursos administrados y que los demás recursos se han eliminado.

    Recorte de pantalla en el que se muestra Azure Portal, donde se representa una pila de implementación y sus dos recursos administrados.

Eliminar la pila de implementación

  1. Para eliminar la pila de implementación y sus recursos administrados, ejecute el siguiente comando desde el terminal en Visual Studio Code.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. Se le pedirá que confirme si quiere eliminar la pila y los recursos especificados.

    Captura de pantalla que muestra una confirmación de la línea de comandos para eliminar la pila de implementación mediante la CLI de Azure.

  3. Una vez completada la operación de eliminación, abra Azure Portal y compruebe que se quita la pila de implementación y sus recursos.

  4. Para eliminar el grupo de recursos usado en estos ejercicios, ejecute el siguiente comando desde el terminal en Visual Studio Code.

    az group delete \
        -name rg-depositsApplication
    
  5. Se le pedirá que confirme si desea quitar el grupo de recursos. Presione "Y" seguido de "Entrar".

    Captura de pantalla que muestra una confirmación de la línea de comandos para eliminar el grupo de recursos mediante la CLI de Azure.

  1. Para eliminar la pila de implementación y sus recursos administrados, ejecute el siguiente comando desde el terminal en Visual Studio Code.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. Se le pedirá que confirme si quiere eliminar la pila y los recursos especificados.

    Captura de pantalla que muestra una confirmación de la línea de comandos para eliminar la pila de implementación mediante Azure PowerShell.

  3. Una vez completada la operación de eliminación, abra Azure Portal y compruebe que se quita la pila de implementación y sus recursos.

  4. Para eliminar el grupo de recursos usado en estos ejercicios, ejecute el siguiente comando desde el terminal en Visual Studio Code.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. Se le pedirá que confirme si desea quitar el grupo de recursos. Presione "Y" seguido de "Entrar".

    Captura de pantalla que muestra una confirmación de la línea de comandos para eliminar el grupo de recursos mediante Azure PowerShell.

  1. Vuelva a Azure Portal.

  2. En el panel izquierdo, seleccione Grupos de recursos.

  3. Compruebe que rg-depositsApplication ya no existe.