2015-12-15 13 views
9

Desidero poter testare un progetto di Azure WebJobs SDK localmente, prima di pubblicarlo effettivamente in Azure.Come testare localmente i progetti di SDK di WebSure di Azure?

Se faccio un nuovo Azure Web Lavoro progetto, ho un po 'di codice che assomiglia a questo:

Program.cs:

// To learn more about Microsoft Azure WebJobs SDK, please see http://go.microsoft.com/fwlink/?LinkID=320976 
class Program 
{ 
    // Please set the following connection strings in app.config for this WebJob to run: 
    // AzureWebJobsDashboard and AzureWebJobsStorage 
    static void Main() 
    { 
     var host = new JobHost(); 
     // The following code ensures that the WebJob will be running continuously 
     host.RunAndBlock(); 
    } 
} 

Functions.cs:

public class Functions 
{ 
    // This function will get triggered/executed when a new message is written 
    // on an Azure Queue called queue. 
    public static void ProcessQueueMessage([QueueTrigger("queue")] string message, TextWriter log) 
    { 
     log.WriteLine(message); 
    } 
} 

Mi piacerebbe andare in giro a verificare se la funzione QueueTrigger funziona correttamente, ma io posso 'T anche arrivare così lontano, perché in host.RunAndBlock(); ottengo la seguente eccezione:

un'eccezione non gestita di tipo 'System.InvalidOperationException' in mscorlib.dll

Ulteriori informazioni: Microsoft Azure SDK WebJobs Dashboard stringa di connessione mancante o vuota. Il conto stringa di connessione Microsoft Azure può essere impostata nei seguenti modi:

  1. impostare la stringa di connessione denominata 'AzureWebJobsDashboard' nella sezione connectionStrings del file .config nel seguente formato , o

  2. Impostare la variabile di ambiente denominata "AzureWebJobsDashboard" o

  3. Impostare la proprietà corrispondente di JobHostConfiguration.

mi sono imbattuto l'emulatore di archiviazione, e impostare la stringa di connessione Azure AzureWebJobsDashboard in questo modo:

<add name="AzureWebJobsDashboard" connectionString="UseDevelopmentStorage=true" /> 

ma, quando l'ho fatto, sto ottenendo un errore diverso

Un'eccezione non gestita di tipo 'System.InvalidOperationException' si è verificata in mscorlib.dll

Ulteriori informazioni: Impossibile convalidare l'SDK Web Azure di Microsoft Azure Account del cruscotto. Microsoft Azure Storage Emulator non è supportato da , utilizzare un account di archiviazione Microsoft Azure ospitato in Microsoft Azure .


Esiste un modo per testare il mio uso del WebJobs SDK a livello locale?

risposta

4

Se si desidera testare l'SDK WebJobs in locale, è necessario configurare un account di archiviazione in Azure. Non è possibile testarlo contro l'emulatore di Azure. Questo è quello che ti dice questo errore.

Impossibile convalidare l'account Dashboard di Microsoft Azure WebJobs SDK. Microsoft Azure Storage Emulator non è supportato, utilizzare un account di archiviazione Microsoft Azure ospitato in Microsoft Azure.

Quindi, per rispondere alla tua domanda, è possibile creare un account di archiviazione in Azure tramite il portale, e quindi impostare la stringa di connessione nel app.config della vostra applicazione console. Quindi basta rilasciare un messaggio alla coda ed eseguire l'applicazione console localmente e la raccoglierà (supponendo che tu stia cercando di interagire con la coda ovviamente).

Assicurarsi di sostituire la "coda" [QueueTrigger("queue")] con il nome della coda che si desidera eseguire il polling.

Spero che questo aiuti

+0

Quindi non c'è modo di testarlo offline? –

+0

No, è necessario testare un account di archiviazione reale, non è possibile utilizzare l'emulatore. È davvero facile da configurare però. – lopezbertoni

+3

Abbiamo un elemento di monitoraggio per il supporto dell'emulatore locale, ma al momento non è supportato. Vedi l'elemento di monitoraggio qui: https://github.com/Azure/azure-webjobs-sdk/issues/53. Si noti che la stringa di connessione AzureWebJobsDashboard non è richiesta (solo se si desidera visualizzare i registri in Dashboard). È richiesta la stringa di connessione AzureWebJobsStorage. – mathewc

6

WebJobs 2.0 ora funziona utilizzando lo storage di sviluppo (sto usando v2.0.0-beta2).

Si noti che la latenza in generale e i trigger di Blob in particolare sono attualmente molto meglio di quanto si possa ottenere in produzione. Progettare con cura.