Condividi tramite


Aggiungere messaggi a una coda di archiviazione di Azure tramite Funzioni

In Funzioni di Azure le associazioni di input e di output forniscono una modalità dichiarativa per rendere disponibili nel codice i dati di servizi esterni. In questo articolo si usa un'associazione di output per creare un messaggio in una coda quando una richiesta HTTP attiva una funzione. Per visualizzare i messaggi della coda creati dalla funzione si usa il contenitore di archiviazione di Azure.

Prerequisiti

Aggiungere un binding di output

In questa sezione si usa l'interfaccia utente del portale per aggiungere un'associazione di output di Archiviazione code di Azure alla funzione creata nei prerequisiti. Questo binding consente di scrivere una quantità minima di codice per creare un messaggio in una coda. Non è necessario scrivere codice per attività come l'apertura di una connessione di archiviazione, la creazione di una coda o il recupero di un riferimento a una coda. Queste attività vengono eseguite dal runtime di Funzioni di Azure e dall'associazione di output della coda.

  1. Nella portale di Azure cercare e selezionare l'app per le funzioni creata in Creare la prima funzione dal portale di Azure.

  2. Nell'app per le funzioni selezionare la funzione creata.

  3. Selezionare Integrazione e quindi + Aggiungi output.

    Screenshot che mostra come creare un'associazione di output per la funzione.

  4. Selezionare il tipo di associazione archiviazione code di Azure e aggiungere le impostazioni come specificato nella tabella seguente:

    Screenshot che mostra come aggiungere un'associazione di output di Archiviazione code a una funzione nel portale di Azure.

    Impostazione Valore suggerito description
    Nome del parametro del messaggio outputQueueItem Nome del parametro di binding di output.
    Nome coda outqueue Nome della coda a cui connettersi nell'account di archiviazione.
    Connessione dell'account di archiviazione AzureWebJobsStorage È possibile usare la connessione dell'account di archiviazione esistente usata dall'app per le funzioni o crearne una nuova.
  5. Selezionare OK per aggiungere il binding.

Dopo aver definito un binding di output, è necessario ora aggiornare il codice in modo da usare il binding per aggiungere messaggi a una coda.

Aggiungere il codice che usa l'associazione di output

In questa sezione si aggiunge il codice che scrive un messaggio nella coda di output. Il messaggio include il valore passato al trigger HTTP nella stringa di query. Ad esempio, se la stringa di query include name=Azure, il messaggio della coda è Name passato alla funzione: Azure.

  1. Nella funzione selezionare Codice e test per visualizzare il codice funzione nell'editor.

  2. Aggiornare il codice della funzione in base al linguaggio di funzione:

    Aggiungere un parametro outputQueueItem alla firma del metodo come illustrato nell'esempio seguente:

    public static async Task<IActionResult> Run(HttpRequest req,
        ICollector<string> outputQueueItem, ILogger log)
    {
        ...
    }
    

    Nel corpo della funzione, subito prima dell'istruzione return , aggiungere il codice che usa il parametro per creare un messaggio di coda:

    outputQueueItem.Add("Name passed to the function: " + name);
    
  3. Seleziona Salva per salvare le modifiche.

Testare la funzione

  1. Dopo aver salvato le modifiche al codice, selezionare Test.

  2. Verificare che il test corrisponda a questo screenshot e quindi selezionare Esegui.

    Screenshot che mostra come testare l'associazione di Archiviazione code nel portale di Azure.

    Si noti che in Corpo della richiesta è presente il valore di nameAzure. Questo valore viene visualizzato nel messaggio della coda creato quando viene richiamata la funzione.

    In alternativa alla selezione di Esegui, è possibile chiamare la funzione immettendo un URL in un browser e specificando il name valore nella stringa di query. Questo metodo del browser viene visualizzato in Creare la prima funzione dal portale di Azure.

  3. Controllare i log per assicurarsi che la funzione abbia avuto esito positivo.

    Quando il binding di output viene usato per la prima volta, nell'account di archiviazione viene creata dal runtime di Funzioni una nuova coda denominata outqueue. Usare l'account di archiviazione per verificare che la coda e un messaggio in esso siano stati creati.

Trovare l'account di archiviazione connesso ad AzureWebJobsStorage

  1. Nell'app per le funzioni, espandere Impostazionie selezionare Variabili di ambiente.

  2. Nella scheda Impostazioni app selezionare AzureWebJobsStorage.

    Screenshot che mostra la pagina Configurazione con AzureWebJobsStorage selezionato.

  3. Trovare e prendere nota del nome dell'account.

    Screenshot che mostra come individuare l'account di archiviazione connesso ad AzureWebJobsStorage.

Esaminare la coda di output

  1. Nel gruppo di risorse per l'app per le funzioni selezionare l'account di archiviazione in uso.

  2. In Servizio code selezionare Code e selezionare la coda denominata outqueue.

    La coda contiene il messaggio creato dall'associazione di output della coda quando è stata eseguita la funzione attivata da HTTP. Se la funzione è stata richiamata con il valore predefinito di nameAzure, il messaggio della coda è Name passed to the function: Azure.

  3. Eseguire di nuovo la funzione.

    Nella coda viene visualizzato un nuovo messaggio.

Pulire le risorse

Nei passaggi precedenti sono state create risorse di Azure in un gruppo di risorse. Se non si prevede di aver bisogno di queste risorse in futuro, è possibile eliminarle eliminando il gruppo di risorse.

Nel menu del portale di Azure o nella pagina Home selezionare Gruppi di risorse. Quindi, nella pagina Gruppi di risorse selezionare myResourceGroup.

Nella pagina myResourceGroup assicurarsi che le risorse elencate siano quelle da eliminare.

Selezionare Elimina gruppo di risorse, digitare myResourceGroup nella casella di testo per confermare e quindi selezionare Elimina.

In questo articolo è stata aggiunta un'associazione di output a una funzione esistente. Per altre informazioni sull'associazione all'archiviazione code, vedere Binding e trigger di archiviazione code.