Strategie per il test del codice in Funzioni di AzureStrategies for testing your code in Azure Functions

Questo argomento illustra i vari modi per eseguire il test delle funzioni e include gli approcci generali seguenti:This topic demonstrates the various ways to test functions, including using the following general approaches:

  • Strumenti basati su HTTP, ad esempio cURL, Postman e persino un browser Web per i trigger basati sul WebHTTP-based tools, such as cURL, Postman, and even a web browser for web-based triggers
  • Esplora archivi di Azure per testare i trigger basati sull'Archiviazione di AzureAzure Storage Explorer, to test Azure Storage-based triggers
  • Scheda test nel portale Funzioni di AzureTest tab in the Azure Functions portal
  • Funzione attivata tramite timerTimer-triggered function
  • Test dell'applicazione o del frameworkTesting application or framework

Tutti questi metodi di test usano una funzione trigger HTTP che accetta l'input tramite un parametro della stringa di query o il corpo della richiesta.All these testing methods use an HTTP trigger function that accepts input through either a query string parameter or the request body. Questa funzione verrà creata nella prima sezione.You create this function in the first section.

Creare una funzione per i testCreate a function for testing

Per la maggior parte di questa esercitazione si userà una versione leggermente modificata del modello di funzione HttpTrigger JavaScript disponibile quando si crea una funzione.For most of this tutorial, we use a slightly modified version of the HttpTrigger JavaScript function template that is available when you create a function. Se occorre assistenza nella creazione di una funzione, rivedere questa esercitazione.If you need help creating a function, review this tutorial. Scegliere il modello HttpTrigger- JavaScript quando si crea la funzione di test nel Portale di Azure.Choose the HttpTrigger- JavaScript template when creating the test function in the [Azure portal].

Il modello di funzione predefinito è fondamentalmente una funzione Hello World che restituisce il nome dal parametro della stringa query o del corpo della richiesta, name=<your name>.The default function template is basically a "hello world" function that echoes back the name from the request body or query string parameter, name=<your name>. Il codice verrà aggiornato per consentire all'utente di fornire anche il nome e un indirizzo come contenuto JSON nel corpo della richiesta.We'll update the code to also allow you to provide the name and an address as JSON content in the request body. La funzione restituirà quindi queste informazioni al client, se disponibile.Then the function echoes these back to the client when available.

Aggiornare la funzione con il codice seguente che verrà usato per il test:Update the function with the following code, which we will use for testing:

module.exports = function (context, req) {
    context.log("HTTP trigger function processed a request. RequestUri=%s", req.originalUrl);
    context.log("Request Headers = " + JSON.stringify(req.headers));
    var res;

    if (req.query.name || (req.body && req.body.name)) {
        if (typeof req.query.name != "undefined") {
            context.log("Name was provided as a query string param...");
            res = ProcessNewUserInformation(context, req.query.name);
        }
        else {
            context.log("Processing user info from request body...");
            res = ProcessNewUserInformation(context, req.body.name, req.body.address);
        }
    }
    else {
        res = {
            status: 400,
            body: "Please pass a name on the query string or in the request body"
        };
    }
    context.done(null, res);
};
function ProcessNewUserInformation(context, name, address) {
    context.log("Processing user information...");
    context.log("name = " + name);
    var echoString = "Hello " + name;
    var res;

    if (typeof address != "undefined") {
        echoString += "\n" + "The address you provided is " + address;
        context.log("address = " + address);
    }
    res = {
        // status: 200, /* Defaults to 200 */
        body: echoString
    };
    return res;
}

Eseguire il test di una funzione con gli strumentiTest a function with tools

All'esterno del Portale di Azure, sono disponibili vari strumenti che è possibile usare per attivare le funzioni di test.Outside the Azure portal, there are various tools that you can use to trigger your functions for testing. Questi includono gli strumenti di test HTTP (sia basati su interfaccia utente sia sulla riga di comando), strumenti di accesso all'Archiviazione di Azure e un semplice browser Web.These include HTTP testing tools (both UI-based and command line), Azure Storage access tools, and even a simple web browser.

Eseguire il test con un browserTest with a browser

Il browser web è un modo semplice per attivare le funzioni tramite HTTP.The web browser is a simple way to trigger functions via HTTP. È possibile usare un browser per le richieste GET per cui non è necessario un payload del corpo e che usi solo i parametri di stringa della query.You can use a browser for GET requests that do not require a body payload, and that use only query string parameters.

Per testare la funzione definita in precedenza, copiare l'URL funzione dal portale,To test the function we defined earlier, copy the Function Url from the portal. che si presenta nel formato seguente:It has the following form:

https://<Your Function App>.azurewebsites.net/api/<Your Function Name>?code=<your access code>

Aggiungere il parametro name alla stringa di query.Append the name parameter to the query string. Usare un nome effettivo per il segnaposto <Enter a name here>.Use an actual name for the <Enter a name here> placeholder.

https://<Your Function App>.azurewebsites.net/api/<Your Function Name>?code=<your access code>&name=<Enter a name here>

Incollare l'URL nel browser. Verrà restituita una risposta simile alla seguente.Paste the URL into your browser, and you should get a response similar to the following.

Schermata della scheda del browser Chrome con risposta del test

Questo esempio è relativo al browser Chrome, che ha restituito la stringa in XML.This example is the Chrome browser, which wraps the returned string in XML. Altri browser mostrano solo il valore della stringa.Other browsers display just the string value.

Nella finestra Log del portale viene registrato un output simile al seguente durante l'esecuzione della funzione:In the portal Logs window, output similar to the following is logged in executing the function:

2016-03-23T07:34:59  Welcome, you are now connected to log-streaming service.
2016-03-23T07:35:09.195 Function started (Id=61a8c5a9-5e44-4da0-909d-91d293f20445)
2016-03-23T07:35:10.338 Node.js HTTP trigger function processed a request. RequestUri=https://functionsExample.azurewebsites.net/api/WesmcHttpTriggerNodeJS1?code=XXXXXXXXXX==&name=Glenn from a browser
2016-03-23T07:35:10.338 Request Headers = {"cache-control":"max-age=0","connection":"Keep-Alive","accept":"text/html","accept-encoding":"gzip","accept-language":"en-US"}
2016-03-23T07:35:10.338 Name was provided as a query string param.
2016-03-23T07:35:10.338 Processing User Information...
2016-03-23T07:35:10.369 Function completed (Success, Id=61a8c5a9-5e44-4da0-909d-91d293f20445)

Eseguire il test con PostmanTest with Postman

Postman, che si integra on il browser Chrome, è lo strumento consigliato per testare la maggior parte delle funzioni.The recommended tool to test most of your functions is Postman, which integrates with the Chrome browser. Per installare Postman, vedere la pagina dalla quale è possibile ottenere Postman.To install Postman, see Get Postman. Postman consente di controllare molti più attributi di una richiesta HTTP.Postman provides control over many more attributes of an HTTP request.

Suggerimento

Usare lo strumento di test HTTP con cui si ha maggiore familiarità.Use the HTTP testing tool that you are most comfortable with. Ecco alcune alternative a Postman:Here are some alternatives to Postman:

Per testare la funzione con un corpo della richiesta in Postman:To test the function with a request body in Postman:

  1. Avviare Postman dal pulsante App nell'angolo in alto a sinistra di una finestra del browser Chrome.Start Postman from the Apps button in the upper-left corner of a Chrome browser window.
  2. Copiare l'URL funzione e incollarlo in Postman.Copy your Function Url, and paste it into Postman. Include il parametro della stringa di query del codice di accesso.It includes the access code query string parameter.
  3. Modificare il metodo HTTP in POST.Change the HTTP method to POST.
  4. Fare clic su Body > raw e aggiungere il corpo della richiesta JSON simile al seguente:Click Body > raw, and add a JSON request body similar to the following:

    {
        "name" : "Wes testing with Postman",
        "address" : "Seattle, WA 98101"
    }
    
  5. Fare clic su Send.Click Send.

L'immagine seguente mostra il test della semplice funzione echo di esempio in questa esercitazione.The following image shows testing the simple echo function example in this tutorial.

Schermata dell'interfaccia utente di Postman

Nella finestra Log del portale viene registrato un output simile al seguente durante l'esecuzione della funzione:In the portal Logs window, output similar to the following is logged in executing the function:

2016-03-23T08:04:51  Welcome, you are now connected to log-streaming service.
2016-03-23T08:04:57.107 Function started (Id=dc5db8b1-6f1c-4117-b5c4-f6b602d538f7)
2016-03-23T08:04:57.763 HTTP trigger function processed a request. RequestUri=https://functions841def78.azurewebsites.net/api/WesmcHttpTriggerNodeJS1?code=XXXXXXXXXX==
2016-03-23T08:04:57.763 Request Headers = {"cache-control":"no-cache","connection":"Keep-Alive","accept":"*/*","accept-encoding":"gzip","accept-language":"en-US"}
2016-03-23T08:04:57.763 Processing user info from request body...
2016-03-23T08:04:57.763 Processing User Information...
2016-03-23T08:04:57.763 name = Wes testing with Postman
2016-03-23T08:04:57.763 address = Seattle, W.A. 98101
2016-03-23T08:04:57.795 Function completed (Success, Id=dc5db8b1-6f1c-4117-b5c4-f6b602d538f7)

Eseguire il test con cURL dalla riga di comandoTest with cURL from the command line

Spesso, quando si eseguono test del software, non è necessario eseguire ricerche particolari al di là della riga di comando per eseguire il debug dell'applicazione.Often when you're testing software, it's not necessary to look any further than the command line to help debug your application. L'approccio è analogo per le funzioni.This is no different with testing functions. Si noti che cURL è disponibile per impostazione predefinita nei sistemi basati su Linux.Note that the cURL is available by default on Linux-based systems. In Windows è necessario prima scaricare e installare lo strumento cURL.On Windows, you must first download and install the cURL tool.

Per testare la funzione definita in precedenza, copiare l'URL funzione dal portale,To test the function that we defined earlier, copy the Function URL from the portal. che si presenta nel formato seguente:It has the following form:

https://<Your Function App>.azurewebsites.net/api/<Your Function Name>?code=<your access code>

Si tratta dell'URL per l'attivazione di una funzione.This is the URL for triggering your function. È possibile testarlo con il comando cURL dalla riga di comando per eseguire una richiesta GET (-G o --get) sulla funzione:Test this by using the cURL command on the command line to make a GET (-G or --get) request against the function:

curl -G https://<Your Function App>.azurewebsites.net/api/<Your Function Name>?code=<your access code>

Questo esempio in particolare richiede un parametro della stringa di query che può essere passato come dati (-d) nel comando cURL:This particular example requires a query string parameter, which can be passed as Data (-d) in the cURL command:

curl -G https://<Your Function App>.azurewebsites.net/api/<Your Function Name>?code=<your access code> -d name=<Enter a name here>

Eseguire il comando per visualizzare l'output seguente della funzione nella riga di comando:Run the command, and you see the following output of the function on the command line:

Schermata dell'output del prompt dei comandi

Nella finestra Log del portale viene registrato un output simile al seguente durante l'esecuzione della funzione:In the portal Logs window, output similar to the following is logged in executing the function:

2016-04-05T21:55:09  Welcome, you are now connected to log-streaming service.
2016-04-05T21:55:30.738 Function started (Id=ae6955da-29db-401a-b706-482fcd1b8f7a)
2016-04-05T21:55:30.738 Node.js HTTP trigger function processed a request. RequestUri=https://functionsExample.azurewebsites.net/api/HttpTriggerNodeJS1?code=XXXXXXX&name=Azure Functions
2016-04-05T21:55:30.738 Function completed (Success, Id=ae6955da-29db-401a-b706-482fcd1b8f7a)

Eseguire il test di un trigger del BLOB con Storage ExplorerTest a blob trigger by using Storage Explorer

È possibile testare una funzione trigger del BLOB con Esplora archivi di Azure.You can test a blob trigger function by using Azure Storage Explorer.

  1. Nel Portale di Azure creare una funzione trigger del BLOB in C#, F# o JavaScript per l'app Funzioni.In the [Azure portal] for your function app, create a C#, F# or JavaScript blob trigger function. Impostare il percorso da monitorare sul nome del contenitore BLOB.Set the path to monitor to the name of your blob container. ad esempio:For example:

     files
    
  2. Fare clic sul pulsante + per selezionare o creare l'account di archiviazione da usare.Click the + button to select or create the storage account you want to use. Fare quindi clic su Crea.Then click Create.
  3. Creare un file di testo con il contenuto seguente e salvarlo:Create a text file with the following text, and save it:

     A text file for blob trigger function testing.
    
  4. Eseguire Azure Storage Explorer e connettersi al contenitore BLOB nell'account di archiviazione monitorato.Run Azure Storage Explorer, and connect to the blob container in the storage account being monitored.
  5. Fare clic su Carica per caricare il file di testo.Click Upload to upload the text file.

    Screenshot di Esplora archivi

Il codice della funzione trigger del BLOB predefinita segnala l'elaborazione del BLOB nei log:The default blob trigger function code reports the processing of the blob in the logs:

2016-03-24T11:30:10  Welcome, you are now connected to log-streaming service.
2016-03-24T11:30:34.472 Function started (Id=739ebc07-ff9e-4ec4-a444-e479cec2e460)
2016-03-24T11:30:34.472 C# Blob trigger function processed: A text file for blob trigger function testing.
2016-03-24T11:30:34.472 Function completed (Success, Id=739ebc07-ff9e-4ec4-a444-e479cec2e460)

Eseguire il test di una funzione all'interno di FunzioniTest a function within functions

Il portale Funzioni di Azure è progettato per consentire di testare l'HTTP e le funzioni attivate da timer.The Azure Functions portal is designed to let you test HTTP and timer triggered functions. È inoltre possibile creare funzioni per attivare altre funzioni su cui si esegue il test.You can also create functions to trigger other functions that you are testing.

Eseguire il test con il pulsante Esegui nel portale FunzioniTest with the Functions portal Run button

Il portale presenta un pulsante Esegui che consente di eseguire alcuni test limitati.The portal provides a Run button that you can use to do some limited testing. Con questo pulsante, è possibile specificare un corpo della richiesta, tuttavia non si possono specificare i parametri della stringa di query o aggiornare le intestazioni della richiesta.You can provide a request body by using the button, but you can't provide query string parameters or update request headers.

Eseguire il test della funzione trigger HTTP creata in precedenza aggiungendo una stringa JSON simile alla seguente nel campo Corpo della richiesta.Test the HTTP trigger function we created earlier by adding a JSON string similar to the following in the Request body field. Quindi, fare clic sul pulsante Esegui.Then click the Run button.

{
    "name" : "Wes testing Run button",
    "address" : "USA"
}

Nella finestra Log del portale viene registrato un output simile al seguente durante l'esecuzione della funzione:In the portal Logs window, output similar to the following is logged in executing the function:

2016-03-23T08:03:12  Welcome, you are now connected to log-streaming service.
2016-03-23T08:03:17.357 Function started (Id=753a01b0-45a8-4125-a030-3ad543a89409)
2016-03-23T08:03:18.697 HTTP trigger function processed a request. RequestUri=https://functions841def78.azurewebsites.net/api/wesmchttptriggernodejs1
2016-03-23T08:03:18.697 Request Headers = {"connection":"Keep-Alive","accept":"*/*","accept-encoding":"gzip","accept-language":"en-US"}
2016-03-23T08:03:18.697 Processing user info from request body...
2016-03-23T08:03:18.697 Processing User Information...
2016-03-23T08:03:18.697 name = Wes testing Run button
2016-03-23T08:03:18.697 address = USA
2016-03-23T08:03:18.744 Function completed (Success, Id=753a01b0-45a8-4125-a030-3ad543a89409)

Eseguire il test con un trigger del timerTest with a timer trigger

Alcune funzioni non possono essere testate adeguatamente con gli strumenti citati in precedenza.Some functions can't be adequately tested with the tools mentioned previously. Prendiamo ad esempio una funzione trigger della coda eseguita quando un messaggio viene inserito in Archiviazione code di Azure.For example, consider a queue trigger function that runs when a message is dropped into Azure Queue storage. È sempre possibile scrivere codice per inserire un messaggio nella coda. Di seguito ne viene fornito un esempio in un progetto console.You can always write code to drop a message into your queue, and an example of this in a console project is provided later in this article. Esiste tuttavia un altro approccio che può essere usato per eseguire direttamente il test delle funzioni.However, there is another approach you can use that tests functions directly.

È possibile usare un trigger del timer configurato con un'associazione di output della coda.You can use a timer trigger configured with a queue output binding. Il codice del trigger del timer può quindi scrivere i messaggi di prova nella coda.That timer trigger code can then write the test messages to the queue. In questa sezione ne viene presentato un esempio.This section walks through an example.

Per informazioni più dettagliate sull'uso di associazioni con Funzioni di Azure, vedere la Guida di riferimento per gli sviluppatori di Funzioni di Azure.For more in-depth information on using bindings with Azure Functions, see the Azure Functions developer reference.

Creare trigger della coda per il testCreate a queue trigger for testing

Per illustrare questo approccio, si creerà prima di tutto una funzione trigger della coda che si vuole testare per una coda denominata queue-newusers.To demonstrate this approach, we first create a queue trigger function that we want to test for a queue named queue-newusers. Questa funzione elabora le informazioni relative a nome e indirizzo per un nuovo utente inserito nell'archiviazione code di Azure.This function processes name and address information dropped into Queue storage for a new user.

Nota

Se si usa un nome di coda diverso, assicurarsi che il nome usato sia conforme alle regole descritte in Denominazione di code e metadati .If you use a different queue name, make sure the name you use conforms to the Naming Queues and MetaData rules. In caso contrario, viene visualizzato un errore.Otherwise, you get an error.

  1. Nel Portale di Azure fare clic su Nuova funzione > QueueTrigger - C# per l'app per le funzioni.In the [Azure portal] for your function app, click New Function > QueueTrigger - C#.
  2. Immettere il nome della coda da monitorare tramite la funzione coda:Enter the queue name to be monitored by the queue function:

     queue-newusers
    
  3. Fare clic sul pulsante + per selezionare o creare l'account di archiviazione da usare.Click the + button to select or create the storage account you want to use. Fare quindi clic su Crea.Then click Create.
  4. Lasciare aperta la finestra del browser nel portale per monitorare le voci di log per il codice del modello di funzione coda predefinito.Leave this portal browser window open, so you can monitor the log entries for the default queue function template code.

Creare un trigger del timer per inserire un messaggio nella codaCreate a timer trigger to drop a message in the queue

  1. Aprire il Portale di Azure in una nuova finestra del browser e passare all'app per le funzioni.Open the [Azure portal] in a new browser window, and navigate to your function app.
  2. Fare clic su Nuova funzione > TimerTrigger - C#.Click New Function > TimerTrigger - C#. Immettere un'espressione CRON per impostare la frequenza con cui il codice del timer eseguirà il test della funzione coda.Enter a cron expression to set how often the timer code tests your queue function. Fare quindi clic su Crea.Then click Create. Se si vuole che il test venga eseguito ogni 30 secondi, è possibile usare l'espressione CRONseguente:If you want the test to run every 30 seconds, you can use the following CRON expression:

     */30 * * * * *
    
  3. Fare clic sulla scheda Integra per il nuovo trigger del timer.Click the Integrate tab for your new timer trigger.
  4. In Output fare clic sul pulsante + Nuovo output.Under Output, click + New Output. Fare clic su coda e quindi su Seleziona.Then click queue and Select.
  5. Prendere nota del nome usato per l'oggetto messaggio di coda.Note the name you use for the queue message object. Usare il codice di funzione timer.You use this in the timer function code.

     myQueue
    
  6. Immettere il nome della coda a cui verrà inviato il messaggio:Enter the queue name where the message is sent:

     queue-newusers
    
  7. Fare clic sul pulsante + per selezionare l'account di archiviazione usato in precedenza con il trigger della coda.Click the + button to select the storage account you used previously with the queue trigger. Fare quindi clic su Salva.Then click Save.
  8. Fare clic sulla scheda Sviluppo per il trigger del timer.Click the Develop tab for your timer trigger.
  9. È possibile usare il codice seguente per la funzione timer C#, a condizione di avere usato lo stesso nome di oggetto messaggio della coda indicato in precedenza.You can use the following code for the C# timer function, as long as you used the same queue message object name shown earlier. Fare quindi clic su Salva.Then click Save.

    using System;
    
    public static void Run(TimerInfo myTimer, out String myQueue, TraceWriter log)
    {
        String newUser =
        "{\"name\":\"User testing from C# timer function\",\"address\":\"XYZ\"}";
    
        log.Verbose($"C# Timer trigger function executed at: {DateTime.Now}");   
        log.Verbose($"{newUser}");   
    
        myQueue = newUser;
    }
    

A questo punto, se è stata usata l'espressione CRON di esempio, la funzione timer C# verrà eseguita ogni 30 secondi.At this point, the C# timer function executes every 30 seconds if you used the example cron expression. I log per la funzione timer segnalano ogni esecuzione:The logs for the timer function report each execution:

2016-03-24T10:27:02  Welcome, you are now connected to log-streaming service.
2016-03-24T10:27:30.004 Function started (Id=04061790-974f-4043-b851-48bd4ac424d1)
2016-03-24T10:27:30.004 C# Timer trigger function executed at: 3/24/2016 10:27:30 AM
2016-03-24T10:27:30.004 {"name":"User testing from C# timer function","address":"XYZ"}
2016-03-24T10:27:30.004 Function completed (Success, Id=04061790-974f-4043-b851-48bd4ac424d1)

Nella finestra del browser per la funzione coda viene visualizzato ogni messaggio in fase di elaborazione:In the browser window for the queue function, you can see each message being processed:

2016-03-24T10:27:06  Welcome, you are now connected to log-streaming service.
2016-03-24T10:27:30.607 Function started (Id=e304450c-ff48-44dc-ba2e-1df7209a9d22)
2016-03-24T10:27:30.607 C# Queue trigger function processed: {"name":"User testing from C# timer function","address":"XYZ"}
2016-03-24T10:27:30.607 Function completed (Success, Id=e304450c-ff48-44dc-ba2e-1df7209a9d22)

Eseguire il test di una funzione con il codiceTest a function with code

Potrebbe essere necessario creare un'applicazione esterna o un framework per testare le funzioni.You may need to create an external application or framework to test your functions.

Eseguire il test di una funzione trigger HTTP con il codice Node.jsTest an HTTP trigger function with code: Node.js

È possibile usare il codice Node.js per eseguire una richiesta HTTP e testare la funzione.You can use a Node.js app to execute an HTTP request to test your function. Assicurarsi di impostare:Make sure to set:

  • host nelle opzioni di richiesta per l'host dell'app per le funzioni.The host in the request options to your function app host.
  • Il nome della funzione in path.Your function name in the path.
  • Il codice di accesso (<your code>) in path.Your access code (<your code>) in the path.

Esempio di codice:Code example:

var http = require("http");

var nameQueryString = "name=Wes%20Query%20String%20Test%20From%20Node.js";

var nameBodyJSON = {
    name : "Wes testing with Node.JS code",
    address : "Dallas, T.X. 75201"
};

var bodyString = JSON.stringify(nameBodyJSON);

var options = {
  host: "functions841def78.azurewebsites.net",
  //path: "/api/HttpTriggerNodeJS2?code=sc1wt62opn7k9buhrm8jpds4ikxvvj42m5ojdt0p91lz5jnhfr2c74ipoujyq26wab3wk5gkfbt9&" + nameQueryString,
  path: "/api/HttpTriggerNodeJS2?code=sc1wt62opn7k9buhrm8jpds4ikxvvj42m5ojdt0p91lz5jnhfr2c74ipoujyq26wab3wk5gkfbt9",
  method: "POST",
  headers : {
      "Content-Type":"application/json",
      "Content-Length": Buffer.byteLength(bodyString)
    }    
};

callback = function(response) {
  var str = ""
  response.on("data", function (chunk) {
    str += chunk;
  });

  response.on("end", function () {
    console.log(str);
  });
}

var req = http.request(options, callback);
console.log("*** Sending name and address in body ***");
console.log(bodyString);
req.end(bodyString);

Output:Output:

C:\Users\Wesley\testing\Node.js>node testHttpTriggerExample.js
*** Sending name and address in body ***
{"name" : "Wes testing with Node.JS code","address" : "Dallas, T.X. 75201"}
Hello Wes testing with Node.JS code
The address you provided is Dallas, T.X. 75201

Nella finestra Log del portale viene registrato un output simile al seguente durante l'esecuzione della funzione:In the portal Logs window, output similar to the following is logged in executing the function:

2016-03-23T08:08:55  Welcome, you are now connected to log-streaming service.
2016-03-23T08:08:59.736 Function started (Id=607b891c-08a1-427f-910c-af64ae4f7f9c)
2016-03-23T08:09:01.153 HTTP trigger function processed a request. RequestUri=http://functionsExample.azurewebsites.net/api/WesmcHttpTriggerNodeJS1/?code=XXXXXXXXXX==
2016-03-23T08:09:01.153 Request Headers = {"connection":"Keep-Alive","host":"functionsExample.azurewebsites.net"}
2016-03-23T08:09:01.153 Name not provided as query string param. Checking body...
2016-03-23T08:09:01.153 Request Body Type = object
2016-03-23T08:09:01.153 Request Body = [object Object]
2016-03-23T08:09:01.153 Processing User Information...
2016-03-23T08:09:01.215 Function completed (Success, Id=607b891c-08a1-427f-910c-af64ae4f7f9c)

Testare una funzione trigger della coda con codice C#Test a queue trigger function with code: C#

Si è accennato in precedenza che è possibile testare un trigger della coda tramite codice per inserire un messaggio nella coda.We mentioned earlier that you can test a queue trigger by using code to drop a message in your queue. L'esempio di codice seguente si basa sul codice C# illustrato nell'esercitazione Introduzione all'archiviazione code di Azure .The following example code is based on the C# code presented in the Getting started with Azure Queue storage tutorial. Da questo collegamento è disponibile il codice anche per altri linguaggi.Code for other languages is also available from that link.

Per testare il codice in un'app console è necessario:To test this code in a console app, you must:

Codice C# di esempio:Example C# code:

static void Main(string[] args)
{
    string name = null;
    string address = null;
    string queueName = "queue-newusers";
    string JSON = null;

    if (args.Length > 0)
    {
        name = args[0];
    }
    if (args.Length > 1)
    {
        address = args[1];
    }

    // Retrieve storage account from connection string
    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);

    // Create the queue client
    CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

    // Retrieve a reference to a queue
    CloudQueue queue = queueClient.GetQueueReference(queueName);

    // Create the queue if it doesn't already exist
    queue.CreateIfNotExists();

    // Create a message and add it to the queue.
    if (name != null)
    {
        if (address != null)
            JSON = String.Format("{{\"name\":\"{0}\",\"address\":\"{1}\"}}", name, address);
        else
            JSON = String.Format("{{\"name\":\"{0}\"}}", name);
    }

    Console.WriteLine("Adding message to " + queueName + "...");
    Console.WriteLine(JSON);

    CloudQueueMessage message = new CloudQueueMessage(JSON);
    queue.AddMessage(message);
}

Nella finestra del browser per la funzione coda viene visualizzato ogni messaggio in fase di elaborazione:In the browser window for the queue function, you can see each message being processed:

2016-03-24T10:27:06  Welcome, you are now connected to log-streaming service.
2016-03-24T10:27:30.607 Function started (Id=e304450c-ff48-44dc-ba2e-1df7209a9d22)
2016-03-24T10:27:30.607 C# Queue trigger function processed: {"name":"Wes testing queues","address":"in a console app"}
2016-03-24T10:27:30.607 Function completed (Success, Id=e304450c-ff48-44dc-ba2e-1df7209a9d22)