Ejercicio: Desasociación y eliminación de recursos administrados de una pila de implementación
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.
En Visual Studio Code, abra el archivo main.bicep.
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'
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 } }
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
.
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
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".
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
.
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
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.
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
Observe la sección
actionOnUnmanage
de la salida. Todos los valores están establecidos endetach
. 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" },
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.
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
Anote los valores de
resourcesCleanupAction
,resourceGroupsCleanupAction
ymanagementGroupsCleanupAction
. Todos los valores están establecidos endetach
. 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
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.
Vaya a Azure Portal.
En el panel izquierdo, seleccione Grupos de recursos.
Seleccione rg-depositsApplication.
Si es necesario, expanda el menú configuración.
Seleccione Pilas de implementación.
Seleccione stack-deposits.
Compruebe que tiene cuatro recursos administrados y dos recursos desasociados (Log Analytics y Application Insights).
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.
Vuelva a abrir el archivo main.bicep en Visual Studio Code.
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)}'
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' } }
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.
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
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".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.
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
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.
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
Observe la sección
actionOnUnmanage
de la salida. Todos los valores están establecidos endelete
. 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" },
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.
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
Anote los valores de
resourcesCleanupAction
,resourceGroupsCleanupAction
ymanagementGroupsCleanupAction
. Todos los valores están establecidos endelete
. 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
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
Vuelva a Azure Portal.
En el panel izquierdo, seleccione Grupos de recursos.
Seleccione rg-depositsApplication.
Si es necesario, expanda el menú configuración.
Seleccione Pilas de implementación.
Seleccione stack-deposits.
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.
Eliminar la pila de implementación
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
Se le pedirá que confirme si quiere eliminar la pila y los recursos especificados.
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.
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
Se le pedirá que confirme si desea quitar el grupo de recursos. Presione "Y" seguido de "Entrar".
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
Se le pedirá que confirme si quiere eliminar la pila y los recursos especificados.
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.
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
Se le pedirá que confirme si desea quitar el grupo de recursos. Presione "Y" seguido de "Entrar".
Vuelva a Azure Portal.
En el panel izquierdo, seleccione Grupos de recursos.
Compruebe que rg-depositsApplication ya no existe.