Esercizio - Aggiornare ed eliminare uno stack di distribuzione
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
Aprire il file main.bicep in Visual Studio Code.
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'
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' } }
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.
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
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'.Viene richiesta l'immissione di un valore per
sqlServerAdminUserName
. Creare un nome per l'amministratore di SQL Server, quindi premere 'INVIO'.Viene richiesta l'immissione di un valore per
sqlServerAdminPassword
. Creare una password complessa per l'amministratore di SQL Server, quindi premere 'INVIO'.
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.
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
Viene richiesta l'immissione di un valore per
sqlServerAdminUserName
. Creare un nome per l'amministratore di SQL Server, quindi premere 'INVIO'.Viene richiesta l'immissione di un valore per
sqlServerAdminPassword
. Creare una password complessa per l'amministratore di SQL Server, quindi premere 'INVIO'.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
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
Viene chiesto di confermare se si vuole eliminare lo stack e le risorse specificate.
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.
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
Viene chiesto di confermare se si vuole rimuovere il gruppo di risorse. Premere 'Y', quindi premere 'INVIO'.
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
Viene chiesto di confermare se si vuole eliminare lo stack e le risorse specificate.
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.
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
Viene chiesto di confermare se si vuole rimuovere il gruppo di risorse. Premere 'Y', quindi premere 'INVIO'.