Ejercicio: Actualización y eliminación de una pila de implementación

Completado

Está en el sprint 2 para la nueva aplicación de depósitos. Quiere probar la actualización de la pila de implementación mediante la definición de una base de datos de Azure SQL en el archivo de Bicep. Quiere comprobar que la pila administra los recursos recién definidos.

En este ejercicio, actualizará el archivo de Bicep que creó anteriormente para incluir nuevos recursos. También actualizará y eliminará la pila de implementación que administra los recursos.

  • Actualice el archivo de Bicep para incluir una base de datos de Azure SQL.
  • Actualice la pila de implementación para implementar la nueva base de datos.
  • Valide los recursos administrados de la pila de implementación.
  • Elimine la pila de implementación y los recursos administrados.
  • Valide la eliminación de la pila de implementación y los recursos administrados.

Actualización del archivo de Bicep para incluir la base de datos de Azure SQL

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

  2. Agregue el código resaltado a 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)}'
    
    // Variables
    @description('The name of the app service plan.')
    var appServicePlanName = 'plan-deposits'
    
  3. Agregue el siguiente código al final del archivo:

    // 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.

Actualización de pila de implementación

Con el archivo de Bicep actualizado, queremos actualizar la pila de implementación para que la nueva base de datos de Azure SQL se implemente en el entorno como un recurso administrado.

  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. Se le pedirá que escriba un valor para sqlServerAdminUserName. Cree un nombre para el administrador de SQL Server, seguido de "Entrar".

    Captura de pantalla que muestra la línea de comandos de la CLI de Azure que le pide que escriba un nombre de usuario de administrador de SQL Server.

  4. Se le pedirá que escriba un valor para sqlServerAdminPassword. Cree una contraseña compleja para el administrador de SQL Server, seguida de "Entrar".

    Captura de pantalla que muestra la línea de comandos de la CLI de Azure que le pide que escriba una contraseña de administrador de SQL Server.

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

Con el archivo de Bicep actualizado, queremos actualizar la pila de implementación para que la nueva base de datos de Azure SQL se implemente en el entorno como un recurso administrado.

  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. Se le pedirá que escriba un valor para sqlServerAdminUserName. Cree un nombre para el administrador de SQL Server, seguido de "Entrar".

    Captura de pantalla que muestra la línea de comandos de Azure PowerShell que le pide que escriba un nombre de usuario de administrador de SQL Server.

  3. Se le pedirá que escriba un valor para sqlServerAdminPassword. Cree una contraseña compleja para el administrador de SQL Server, seguida de "Entrar".

    Captura de pantalla que muestra la línea de comandos de Azure PowerShell que le pide que escriba una contraseña de administrador de SQL Server.

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

Comprobación de la actualización de la pila de implementación y los recursos administrados

Una vez completada la actualización, queremos validar que la pila de implementación administra la base de datos de Azure SQL. 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

El resultado debería parecerse al siguiente:

{
  "actionOnUnmanage": {
    "managementGroups": "detach",
    "resourceGroups": "detach",
    "resources": "detach"
  },
  "bypassStackOutOfSyncError": null,
  "correlationId": ".",
  "debugSetting": null,
  "deletedResources": [],
  "denySettings": {
    "applyToChildScopes": false,
    "excludedActions": null,
    "excludedPrincipals": null,
    "mode": "none"
  },
  "deploymentId": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deployments/stack-deposits",
  "deploymentScope": null,
  "description": null,
  "detachedResources": [],
  "duration": "PT2M53.2734284S",
  "error": null,
  "failedResources": [],
  "id": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deploymentStacks/stack-deposits",
  "location": null,
  "name": "stack-deposits",
  "outputs": null,
  "parameters": {
    "sqlServerAdminPassword": {
      "reference": null,
      "type": "securestring",
      "value": ""
    },
    "sqlServerAdminUserName": {
      "reference": null,
      "type": "string",
      "value": "sqladmin"
    }
  },
  "parametersLink": null,
  "provisioningState": "succeeded",
  "resourceGroup": "rg-depositsApplication",
  "resources": [
    {
      "denyStatus": "none",
      "id": "/subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq/databases/sqldb-eque2jlrboltq",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-eque2jlrboltq",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    }
  ],
  "systemData": {
    "createdAt": "2024-01-01T00:00:01.000000+00:00",
    "createdBy": "depositsapplication@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2024-01-01T00:00:01.000000+00:00",
    "lastModifiedBy": "depositsapplication@contoso.com",
    "lastModifiedByType": "User"
  },
  "tags": {},
  "template": null,
  "templateLink": null,
  "type": "Microsoft.Resources/deploymentStacks"
}

Observe la sección de recursos de la salida. Ahora vemos que SQL Server y la base de datos SQL aparecen como recursos administrados.

Una vez completada la actualización, queremos validar que la pila de implementación administra la base de datos de Azure SQL. 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

El resultado debería parecerse al siguiente:

Id                            : /subscriptions/././rg-depositsApplication/././deploymentStacks/stack-deposits
Name                          : stack-deposits
ProvisioningState             : succeeded
resourcesCleanupAction        : detach
resourceGroupsCleanupAction   : detach
managementGroupsCleanupAction : detach
CorrelationId                 : .
DenySettingsMode              : none
CreationTime(UTC)             : 1/01/2024 0:00:01 AM
DeploymentId                  : /subscriptions/././rg-depositsApplication/././deployments/stack-deposits
Resources                     : /subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits
                                /subscriptions/././rg-depositsApplication/././sites/webapp-eque2jlrboltq
                                /subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq
                                /subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq/databases/sqldb-eque2jlrboltq
Parameters                    : 
                                Name                      Type                       Value     
                                ========================  =========================  ==========
                                sqlServerAdminUserName    string                     "sqladmin"
                                sqlServerAdminPassword    securestring               ""

Observe la sección de recursos de la salida. Ahora vemos que SQL Server y la base de datos SQL aparecen como 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 desea 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 desea 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.