Un ruolo sviluppato per Windows Azure, sia esso web o worker, è una normale applicazione .NET che svolge le sue attività in the cloud. La principale differenza rispetto alle applicazioni tradizionali risiede nell'uso dei servizi di storage, affiancati a SQL Azure, che permettono di memorizzare file, dati in forma tabellare o utilizzare code.
Come da sempre è possibile fare con il .NET Framework, i file app.config o web.config permettono di inserire configurazioni da leggere con la classe ConfigurationManager. Questi file però fanno parte del pacchetto di deployment e ogni alterazione richiede una pubblicazione. Il file ServiceConfiguration.cscfg è facilmente editabile dal portale Windows Azure e permette quindi un facile cambiamento dei comportamenti della propria applicazione.
Per usare questo file è necessario prima di tutto modificare il file ServiceDefinition.csdef che contiene già le definizioni dei role dell'applicazione, uno dei quali ha una sezione ConfigurationSettings. In essa si definiscono i nomi delle chiavi che si prevedono di usare:
<ServiceDefinition name="CloudService4" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"> <WorkerRole name="TestRole"> <ConfigurationSettings> <Setting name="test" /> </ConfigurationSettings> </WorkerRole> </ServiceDefinition>
Nel file ServiceConfiguration.cscfg si inserisce nell'omonima sezione il valore della chiave che verrà incluso nel deployment:
<ServiceConfiguration serviceName="CloudService4" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"> <Role name="TestRole"> <Instances count="1" /> <ConfigurationSettings> <Setting name="test" value="value" /> </ConfigurationSettings> </Role> </ServiceConfiguration>
E' possibile modificare la configurazione anche tramite Visual Studio, aprendo il ruolo di proprio interesse ed entrando nella sezione "Settings".

Successivamente è possibile leggere il valore della configurazione corrente attraverso la classe statica RoleEnvironment, come nell'esempio seguente:
// Il valore è una stringa string value = RoleEnvironment.GetConfigurationSettingValue("test");
E' bene precisare che le successive modifiche non subiranno alcun effetto nell'applicazione a meno di aver previsto tali cambiamenti, tematica del prossimo script.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Configurare e gestire sidecar container in Azure App Service
Migliorare l'organizzazione delle risorse con Azure Policy
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Generare una User Delegation SAS in .NET per Azure Blob Storage
Testare l'invio dei messaggi con Event Hubs Data Explorer
Montare Azure Blob Storage su Linux con BlobFuse2
Anonimizzare i dati sensibili nei log di Azure Front Door
Path addizionali per gli asset in ASP.NET Core MVC
Potenziare la ricerca su Cosmos DB con Full Text Search
Il nuovo controllo Range di Blazor 9
Gestire il routing HTTP in Azure Container App