Esercizio - Aggiornare ed eliminare uno stack di distribuzione

Completato

Si è nello sprint 2 per la nuova applicazione sui depositi. Si vuole testare l'aggiornamento dello stack di distribuzione definendo un database SQL di Azure nel file Bicep. Si vuole verificare che lo stack gestisca le risorse appena definite.

In questo esercizio si aggiorna il file Bicep creato in precedenza per includere nuove risorse. È anche possibile aggiornare ed eliminare lo stack di distribuzione che gestisce le risorse.

  • Aggiornare il file Bicep per includere un database SQL di Azure.
  • Aggiornare lo stack di distribuzione per distribuire il nuovo database.
  • Convalidare le risorse gestite dello stack di distribuzione.
  • Eliminare lo stack di distribuzione e le risorse gestite.
  • Convalidare l'eliminazione dello stack di distribuzione e delle risorse gestite.

Aggiornare il file Bicep per includere il database SQL di Azure

  1. Aprire il file main.bicep in Visual Studio Code.

  2. Aggiungere il codice evidenziato alla sezione parametri del file:

    // 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. Aggiungere il codice seguente alla fine del file:

    // 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. Salvare le modifiche apportate al file.

Aggiornare lo stack di distribuzione

Con il file Bicep aggiornato, si vuole aggiornare lo stack di distribuzione in modo che il nuovo database SQL di Azure venga distribuito nell'ambiente come risorsa gestita.

  1. Per aggiornare lo stack di distribuzione, eseguire il comando seguente dal terminale in 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. Viene visualizzato un messaggio che informa che lo stack esiste già nella sottoscrizione corrente. Se il valore dell'azione sul parametro non gestito cambia, l'avviso notifica gli utenti dei nuovi valori. Premere y, quindi premere 'INVIO'.

    Screenshot che mostra l'avviso della riga di comando dell'interfaccia della riga di comando di Azure che indica che lo stack di distribuzione esiste già.

  3. Viene richiesta l'immissione di un valore per sqlServerAdminUserName. Creare un nome per l'amministratore di SQL Server, quindi premere 'INVIO'.

    Screenshot che mostra la riga di comando dell'interfaccia della riga di comando di Azure che richiede di immettere un nome utente per l'amministratore di SQL Server.

  4. Viene richiesta l'immissione di un valore per sqlServerAdminPassword. Creare una password complessa per l'amministratore di SQL Server, quindi premere 'INVIO'.

    Screenshot che mostra la riga di comando dell'interfaccia della riga di comando di Azure che richiede di immettere una password per l'amministratore di SQL Server.

Prima di passare all'attività successiva, attendere il completamento dell'operazione di aggiornamento.

Con il file Bicep aggiornato, si vuole aggiornare lo stack di distribuzione in modo che il nuovo database SQL di Azure venga distribuito nell'ambiente come risorsa gestita.

  1. Per aggiornare lo stack di distribuzione, eseguire il comando seguente dal terminale in Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Viene richiesta l'immissione di un valore per sqlServerAdminUserName. Creare un nome per l'amministratore di SQL Server, quindi premere 'INVIO'.

    Screenshot che mostra la riga di comando di Azure PowerShell che richiede di immettere un nome utente per l'amministratore di SQL Server.

  3. Viene richiesta l'immissione di un valore per sqlServerAdminPassword. Creare una password complessa per l'amministratore di SQL Server, quindi premere 'INVIO'.

    Screenshot che mostra la riga di comando di Azure PowerShell che richiede di immettere una password per l'amministratore di SQL Server.

  4. Prima di passare all'attività successiva, attendere il completamento dell'operazione di aggiornamento.

Verificare l'aggiornamento allo stack di distribuzione e alle risorse gestite

Al termine dell'aggiornamento, si vuole verificare che lo stack di distribuzione gestisca il database SQL di Azure. Per visualizzare la configurazione dello stack di distribuzione, eseguire il comando seguente dal terminale in Visual Studio Code.

az stack group show \
    --resource-group rg-depositsApplication \
    --name stack-deposits

Il risultato dovrebbe essere simile all'output seguente:

{
  "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"
}

Prendere nota della sezione delle risorse dell'output. L'istanza di SQL Server e il database SQL sono elencati ora come risorse gestite.

Al termine dell'aggiornamento, si vuole verificare che lo stack di distribuzione gestisca il database SQL di Azure. Per visualizzare la configurazione dello stack di distribuzione, eseguire il comando seguente dal terminale in Visual Studio Code.

Get-AzResourceGroupDeploymentStack `
    -ResourceGroupName rg-depositsApplication `
    -Name stack-deposits

Il risultato dovrebbe essere simile all'output seguente:

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               ""

Prendere nota della sezione delle risorse dell'output. L'istanza di SQL Server e il database SQL sono elencati ora come risorse gestite.

Eliminare lo stack di distribuzione

  1. Per eliminare lo stack di distribuzione e le relative risorse gestite, eseguire il comando seguente dal terminale in Visual Studio Code.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. Viene chiesto di confermare se si vuole eliminare lo stack e le risorse specificate.

    Screenshot che mostra una conferma della riga di comando per eliminare lo stack di distribuzione usando l'interfaccia della riga di comando di Azure.

  3. Al termine dell'operazione di eliminazione, aprire il portale di Azure e verificare che lo stack di distribuzione e le relative risorse siano state rimosse.

  4. Per eliminare il gruppo di risorse usato in questi esercizi, eseguire il comando seguente dal terminale in Visual Studio Code.

    az group delete \
        -name rg-depositsApplication
    
  5. Viene chiesto di confermare se si vuole rimuovere il gruppo di risorse. Premere 'Y', quindi premere 'INVIO'.

    Screenshot che mostra una conferma della riga di comando per eliminare il gruppo di risorse usando l'interfaccia della riga di comando di Azure.

  1. Per eliminare lo stack di distribuzione e le relative risorse gestite, eseguire il comando seguente dal terminale in Visual Studio Code.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. Viene chiesto di confermare se si vuole eliminare lo stack e le risorse specificate.

    Screenshot che mostra una conferma della riga di comando per eliminare lo stack di distribuzione usando Azure PowerShell.

  3. Al termine dell'operazione di eliminazione, aprire il portale di Azure e verificare che lo stack di distribuzione e le relative risorse siano state rimosse.

  4. Per eliminare il gruppo di risorse usato in questi esercizi, eseguire il comando seguente dal terminale in Visual Studio Code.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. Viene chiesto di confermare se si vuole rimuovere il gruppo di risorse. Premere 'Y', quindi premere 'INVIO'.

    Screenshot che mostra una conferma della riga di comando per eliminare il gruppo di risorse usando Azure PowerShell.