Configurare un ruolo per un servizio cloud di Azure con Visual Studio

Nota

Questo articolo si applica ad Azure Servizi cloud (versione classica), ora deprecata per i nuovi clienti e verrà ritirata il 31 agosto 2024. I servizi esistenti creati con questa tecnologia sono ancora supportati tramite Azure Servizi cloud (supporto esteso). Per un nuovo sviluppo, è consigliabile usare un tipo di servizio più recente progettato per scopi specifici, ad esempio servizio app Azure, Funzioni di Azure o app contenitore di Azure. Per l'elenco più recente dei servizi disponibili, vedere Directory dei prodotti Azure.

Un servizio cloud di Azure può includere uno o più ruoli di lavoro o ruoli Web. Per ogni ruolo è necessario definire la modalità di configurazione e configurare la modalità di esecuzione.

Le informazioni per il servizio cloud vengono archiviate nei file seguenti:

  • ServiceDefinition.csdef : il file di definizione del servizio definisce le impostazioni di runtime per il servizio cloud, inclusi i ruoli necessari, gli endpoint e le dimensioni della macchina virtuale. Nessun dato archiviato in ServiceDefinition.csdef può essere modificato durante l'esecuzione del ruolo.
  • ServiceConfiguration.cscfg - Il file di configurazione del servizio configura il numero delle istanze di un ruolo che vengono eseguite e i valori delle impostazioni definiti per un ruolo. I dati archiviati in ServiceConfiguration.cscfg possono essere modificati durante l'esecuzione del ruolo.

Per archiviare valori diversi per le impostazioni che controllano l'esecuzione del ruolo, è possibile creare più configurazioni del servizio. È possibile usare una configurazione del servizio diversa per ogni ambiente di distribuzione. Ad esempio, è possibile impostare l'account di archiviazione stringa di connessione per usare l'emulatore Archiviazione di Azure locale in una configurazione del servizio locale e creare un'altra configurazione del servizio da usare Archiviazione di Azure nel cloud.

Quando si crea un servizio cloud in Visual Studio, vengono automaticamente create due configurazioni del servizio che sono poi aggiunte al progetto Azure:

  • ServiceConfiguration.Cloud.cscfg
  • ServiceConfiguration.Local.cscfg

Prerequisiti

Configurare un servizio cloud di Azure

È possibile configurare un servizio cloud di Azure da Esplora soluzioni in Visual Studio, come illustrato nella procedura seguente:

  1. Creare o aprire un progetto del servizio cloud di Azure in Visual Studio.

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Proprietà dal menu di scelta rapida.

    Solution Explorer project context menu

  3. Nella pagina delle proprietà del progetto, selezionare la scheda Sviluppo.

    Project properties page - development tab

  4. Nell'elenco Configurazione del servizio scegliere il nome della configurazione del servizio da modificare. Per apportare modifiche a tutte le configurazioni del servizio per questo ruolo, è possibile scegliere Tutte le configurazioni.

    Importante

    Se si sceglie una configurazione del servizio specifica, alcune proprietà verranno disabilitate perché possono essere impostate solo per tutte le configurazioni. Per modificare queste proprietà, è necessario scegliere Tutte le configurazioni.

    Service Configuration list for an Azure cloud service

Cambiare il numero di istanze del ruolo

Per migliorare le prestazioni del servizio cloud, è possibile cambiare il numero di istanze di un ruolo in esecuzione, in base al numero di utenti o al carico previsto per un ruolo specifico. Una macchina virtuale separata viene creata per ogni istanza di un ruolo quando il servizio cloud è in esecuzione in Azure. Ciò influirà sulla fatturazione per la distribuzione di questo servizio cloud. Per altre informazioni sulla fatturazione, vedere l'argomento contenente informazioni sulla fatturazione per Microsoft Azure.

  1. Creare o aprire un progetto del servizio cloud di Azure in Visual Studio.

  2. In Esplora soluzioni espandere il nodo del progetto. Nel nodo Ruoli, fare clic con il pulsante destro del mouse sul ruolo da aggiornare e selezionare Proprietà dal menu di scelta rapida.

    Solution Explorer Azure role context menu

  3. Selezionare la scheda Configuration (Configurazione).

    Configuration tab

  4. Nell'elenco Configurazione servizio scegliere la configurazione del servizio da aggiornare.

    Service Configuration list 1

  5. Nella casella di testo Conteggio istanze immettere il numero di istanze da avviare per questo ruolo. Quando il servizio cloud viene pubblicato in Azure, ogni istanza viene eseguita in una macchina virtuale diversa.

    Updating the Instance Count

  6. Dalla barra degli strumenti di Visual Studio selezionare Salva.

Gestire le stringhe di connessione per gli account di archiviazione

È possibile aggiungere, rimuovere o modificare le stringhe di connessione per le configurazioni del servizio. Ad esempio, è possibile che si voglia creare una stringa di connessione locale per una configurazione del servizio locale con valore UseDevelopmentStorage=true. È anche possibile che si voglia definire una configurazione del servizio cloud che usa un account di archiviazione di Azure.

Avviso

Quando si immettono le informazioni sulla chiave dell'account Archiviazione di Azure per un account di archiviazione stringa di connessione, queste informazioni vengono archiviate localmente nel file di configurazione del servizio. Queste informazioni, tuttavia, non vengono attualmente archiviate come testo crittografato.

Se si usa un valore diverso per ogni configurazione del servizio, non sarà necessario usare stringhe di connessione diverse nel servizio cloud o modificare il codice quando si pubblica il servizio cloud in Azure. È possibile usare lo stesso nome per la stringa di connessione nel codice e il valore sarà diverso in base alla configurazione del servizio selezionata quando si compila il servizio cloud o quando lo si pubblica.

  1. Creare o aprire un progetto del servizio cloud di Azure in Visual Studio.

  2. In Esplora soluzioni espandere il nodo del progetto. Nel nodo Ruoli, fare clic con il pulsante destro del mouse sul ruolo da aggiornare e selezionare Proprietà dal menu di scelta rapida.

    Solution Explorer Azure role context menu

  3. Seleziona la scheda Impostazioni.

    Settings tab

  4. Nell'elenco Configurazione servizio scegliere la configurazione del servizio da aggiornare.

    Service Configuration

  5. Per aggiungere una stringa di connessione, scegliere Aggiungi impostazione.

    Add connection string

  6. Dopo aver aggiunto la nuova impostazione all'elenco, aggiornare la riga nell'elenco con le informazioni necessarie.

    New connection string

    • Nome: digitare il nome da usare per la stringa di connessione.
    • Tipo: selezionare Connessione ion String nell'elenco a discesa.
    • Valore: è possibile immettere la stringa di connessione direttamente nella cella Valore o selezionare i puntini di sospensione (...) per lavorare nella finestra di dialogo Crea stringa di connessione a risorsa di archiviazione.
  7. Nella finestra di dialogo Crea stringa di connessione a risorsa di archiviazione, selezionare un'opzione per Connetti tramite. Seguire quindi le istruzioni relative all'opzione selezionata:

    • Archiviazione di Microsoft Azure emulatore: se si seleziona questa opzione, le impostazioni rimanenti nella finestra di dialogo vengono disabilitate perché si applicano solo ad Azure. Seleziona OK.
    • Sottoscrizione: se si seleziona questa opzione, usare l'elenco a discesa per selezionare e accedere a un account Microsoft o aggiungere un account Microsoft. Selezionare una sottoscrizione e un account di archiviazione di Azure. Seleziona OK.
    • Credenziali immesse manualmente: immettere il nome dell'account di archiviazione e la chiave primaria o secondaria. Selezionare un'opzione per Connessione ion (HTTPS è consigliato per la maggior parte degli scenari). Selezionare OK.
  8. Per eliminare una stringa di connessione, selezionarla e quindi scegliere Rimuovi impostazione.

  9. Dalla barra degli strumenti di Visual Studio selezionare Salva.

Accedere a una stringa di connessione a livello di codice

La procedura seguente illustra come accedere a una stringa di connessione a livello di codice usando C#.

  1. Aggiungere le seguenti direttive using al file C# in cui si vuole usare l'impostazione:

    using Microsoft.WindowsAzure;
    using Microsoft.WindowsAzure.Storage;
    using Microsoft.WindowsAzure.ServiceRuntime;
    
  2. Il codice seguente è un esempio di come accedere a una stringa di connessione. Sostituire il <segnaposto Connessione ionStringName> con il valore appropriato.

    // Setup the connection to Azure Storage
    var storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("<ConnectionStringName>"));
    

Aggiungere impostazioni personalizzate da usare nel servizio cloud di Azure

Le impostazioni personalizzate nel file di configurazione del servizio consentono di aggiungere un nome e un valore per una stringa per una configurazione del servizio specifica. È possibile scegliere di usare questa impostazione per configurare una funzionalità nel servizio cloud leggendo il valore dell'impostazione e usando questo valore per controllare la logica nel codice. È possibile cambiare questi valori della configurazione del servizio senza dovere ricompilare il pacchetto del servizio o quando il servizio cloud è in esecuzione. Il codice può cercare notifiche in caso di modifiche di un'impostazione. Per altre informazioni, vedere RoleEnvironment.Changing Event.

È possibile aggiungere, rimuovere o modificare impostazioni personalizzate per le configurazioni del servizio. Potrebbero essere necessari diversi valori per queste stringhe per configurazioni del servizio diverse.

Se si usa un valore diverso per ogni configurazione del servizio, non sarà necessario usare stringhe diverse nel servizio cloud o modificare il codice quando si pubblica il servizio cloud in Azure. È possibile usare lo stesso nome per la stringa nel codice e il valore sarà diverso in base alla configurazione del servizio selezionata quando si compila il servizio cloud o quando lo si pubblica.

  1. Creare o aprire un progetto del servizio cloud di Azure in Visual Studio.

  2. In Esplora soluzioni espandere il nodo del progetto. Nel nodo Ruoli, fare clic con il pulsante destro del mouse sul ruolo da aggiornare e selezionare Proprietà dal menu di scelta rapida.

    Solution Explorer Azure role context menu

  3. Seleziona la scheda Impostazioni.

    Settings tab

  4. Nell'elenco Configurazione servizio scegliere la configurazione del servizio da aggiornare.

    Service Configuration list 2

  5. Per aggiungere un'impostazione personalizzata, selezionare Aggiungi impostazione.

    Add custom setting

  6. Dopo aver aggiunto la nuova impostazione all'elenco, aggiornare la riga nell'elenco con le informazioni necessarie.

    New custom setting

    • Nome: inserire il nome dell'impostazione.
    • Tipo : selezionare String nell'elenco a discesa.
    • Valore: inserire il valore dell'impostazione. È possibile immettere il valore direttamente nella cella Valore o selezionare i puntini di sospensione (...) per immettere il valore nella finestra di dialogo Modifica stringa.
  7. Per eliminare un'impostazione personalizzata, selezionarla e quindi scegliere Rimuovi impostazione.

  8. Dalla barra degli strumenti di Visual Studio selezionare Salva.

Accedere al valore dell'impostazione personalizzata a livello di codice

La procedura seguente illustra come accedere a un'impostazione personalizzata a livello di codice usando C#.

  1. Aggiungere le seguenti direttive using al file C# in cui si vuole usare l'impostazione:

    using Microsoft.WindowsAzure;
    using Microsoft.WindowsAzure.Storage;
    using Microsoft.WindowsAzure.ServiceRuntime;
    
  2. Il codice seguente è un esempio di come accedere a un'impostazione personalizzata. Sostituire il <segnaposto SettingName> con il valore appropriato.

    var settingValue = RoleEnvironment.GetConfigurationSettingValue("<SettingName>");
    

Gestire le risorse di archiviazione locali per ogni istanza del ruolo

È possibile aggiungere una risorsa di archiviazione del file system locale per ogni istanza del ruolo. I dati archiviati nella risorsa di archiviazione non sono accessibili da altre istanze del ruolo per il quale sono archiviati, né da altri ruoli.

  1. Creare o aprire un progetto del servizio cloud di Azure in Visual Studio.

  2. In Esplora soluzioni espandere il nodo del progetto. Nel nodo Ruoli, fare clic con il pulsante destro del mouse sul ruolo da aggiornare e selezionare Proprietà dal menu di scelta rapida.

    Solution Explorer Azure role context menu

  3. Selezionare la scheda Risorsa di archiviazione locale.

    Local storage tab

  4. Nell'elenco Configurazione del servizio, verificare che l'opzione selezionata sia Tutte le configurazioni, poiché le impostazioni di archiviazione locale si applicano a tutte le configurazioni di servizio. Qualsiasi altro valore comporta la disabilitazione di tutti i campi di input della pagina.

    Service Configuration list 3

  5. Per aggiungere una voce relativa a una risorsa di archiviazione locale, selezionare Aggiungi risorsa di archiviazione locale.

    Add local storage

  6. Dopo aver aggiunto la nuova risorsa di archiviazione locale all'elenco, aggiornare la riga nell'elenco con le informazioni necessarie.

    New local storage entry

    • Nome: digitare il nome da usare per la nuova risorsa di archiviazione locale.
    • Dimensione (MB): immettere la dimensione in MB necessaria per la nuova risorsa di archiviazione locale.
    • Pulisci a riciclo ruolo: selezionare questa opzione per rimuovere i dati dalla nuova risorsa di archiviazione locale quando la macchina virtuale per il ruolo viene riciclata.
  7. Per eliminare una risorsa di archiviazione locale, selezionarla e scegliere Remove Local Storage (Rimuovi risorsa di archiviazione locale).

  8. Dalla barra degli strumenti di Visual Studio selezionare Salva.

Accedere alla risorsa di archiviazione locale a livello di codice

Questa sezione illustra come accedere alla risorsa di archiviazione locale a livello di codice usando C# per scrivere il file di testo di prova MyLocalStorageTest.txt.

Scrivere un file di testo in una risorsa di archiviazione locale

Il codice seguente è un esempio di come scrivere un file di testo in una risorsa di archiviazione locale. Sostituire il <segnaposto Local Archiviazione Name> con il valore appropriato.

// Retrieve an object that points to the local storage resource
LocalResource localResource = RoleEnvironment.GetLocalResource("<LocalStorageName>");

//Define the file name and path
string[] paths = { localResource.RootPath, "MyLocalStorageTest.txt" };
String filePath = Path.Combine(paths);

using (FileStream writeStream = File.Create(filePath))
{
    Byte[] textToWrite = new UTF8Encoding(true).GetBytes("Testing Web role storage");
    writeStream.Write(textToWrite, 0, textToWrite.Length);
}

Trovare un file scritto in una risorsa di archiviazione locale

Per visualizzare il file creato dal codice nella sezione precedente, seguire questa procedura:

  1. Nell'area di notifica di Windows, fare clic con il pulsante destro del mouse sull'icona di Azure e, dal menu di scelta rapida, selezionare Show Compute Emulator UI (Mostra interfaccia utente dell'emulatore di calcolo).

    Show Azure compute emulator

  2. Selezionare il ruolo Web.

    Azure compute emulator

  3. Dal menu Emulatore di calcolo di Microsoft Azure, selezionare Strumenti>Open local store (Apri risorsa di archiviazione locale).

    Open local store menu item

  4. Nella finestra di Esplora risorse visualizzata, immettere "MyLocalStorageTest.txt" nella casella di testo Cerca e premere Invio per avviare la ricerca.

Per altre informazioni sui progetti Azure in Visual Studio, vedere Configurazione di un progetto Azure. Per altre informazioni sullo schema del servizio cloud, vedere Guida di riferimento agli schemi.