Esplorare i tipi di associazione di input e di output

Completato

L'accesso ai dati e la loro elaborazione sono le attività principali in molte soluzioni software. Prendere in considerazione alcuni di questi scenari:

  • È stato chiesto di implementare una modalità per spostare i dati in ingresso da Archiviazione BLOB di Azure ad Azure Cosmos DB.
  • Si vogliono pubblicare i messaggi in arrivo in una coda per elaborarli tramite un altro componente aziendale.
  • Il servizio deve recuperare i punteggi dei giocatori da una coda e aggiornare un tabellone online.

Tutti questi esempi riguardano lo spostamento dei dati. L'origine dati e le destinazioni sono diverse a seconda dello scenario, ma il modello è simile. Ci si connette a un'origine dati e si leggono e scrivono dati. Funzioni di Azure consente l'integrazione con dati e servizi tramite le associazioni.

Che cos'è un'associazione?

In Funzioni di Azure le associazioni forniscono una modalità dichiarativa per connettersi ai dati dall'interno del codice. Rendono più facile un'integrazione coerente con i flussi dei dati in una funzione. È possibile avere più associazioni che forniscono accesso a elementi dati diversi. Si tratta di un'integrazione molto efficace perché consente di connettersi alle origini dati senza dover scrivere codice per una logica di connessione specifica (come le connessioni di database o le interfacce API Web).

Tipi di associazioni

Ci sono due tipi di associazioni che è possibile usare con le funzioni:

  • Associazione di input: si connette a un'origine dati. La funzione può leggere i dati da tali origini di input.

  • Associazione di output: si connette a una destinazione dati. La funzione scrive i dati in tali destinazioni di output.

Ci sono inoltre i trigger, ovvero tipi speciali di associazioni di input che provocano l'esecuzione di una funzione. Ad esempio, una notifica di Griglia di eventi di Azure può essere configurata come trigger. Quando si verifica un evento, la funzione viene eseguita.

Tipi di associazioni supportate

Il tipo di associazione definisce la posizione in cui vengono letti o inviati i dati. Sono disponibili un'associazione per rispondere alle richieste Web e una vasta scelta di associazioni per interagire direttamente con diversi servizi di Azure e servizi di terze parti.

Un tipo di associazione può essere usato come input, output o entrambi. Ad esempio, una funzione può scrivere in un'associazione di output di Archiviazione BLOB, ma un aggiornamento di Archiviazione BLOB può attivare un'altra funzione.

I tipi di associazione comuni includono:

  • Archiviazione BLOB
  • Code del bus di servizio di Azure
  • Azure Cosmos DB
  • Hub eventi di Azure
  • File esterni
  • Tabelle esterne
  • Endpoint HTTP

Questi tipi rappresentano solo alcuni esempi. Ci sono altri tipi e le funzioni hanno inoltre un modello di estendibilità che permette di aggiungere altre associazioni.

Proprietà delle associazioni

In tutte le associazioni sono necessarie tre proprietà, anche se potrebbe essere necessario specificarne di più in base al tipo di associazione e all'archiviazione in uso.

  • Name - Definisce il parametro della funzione tramite cui si accede ai dati. In un'associazione di input della coda, ad esempio, questa proprietà corrisponde al nome del parametro della funzione che riceve il contenuto del messaggio della coda.

  • Tipo: identifica il tipo di associazione. Ad esempio, il tipo di dati o di servizio con cui si vuole interagire.

  • Direzione: indica la direzione del flusso dei dati. Ad esempio, si tratta di un'associazione di input o di output?

La maggior parte dei tipi di associazione necessita anche di una quarta proprietà:

  • Connection - Fornisce il nome di una chiave di impostazione dell'app che contiene la stringa di connessione. Le associazioni usano stringhe di connessione archiviate nelle impostazioni dell'app per mantenere i segreti all'esterno del codice della funzione. Le stringhe di connessione rendono il codice più configurabile e sicuro.

Creare un'associazione

Le associazioni sono definite in JSON. Un'associazione viene configurata nel file di configurazione della funzione, denominato function.json, e si trova nella stessa cartella del codice della funzione.

Verrà ora esaminato un esempio di associazione di input:

    ...
    {
      "name": "headshotBlob",
      "type": "blob",
      "path": "thumbnail-images/{filename}",
      "connection": "HeadshotStorageConnection",
      "direction": "in"
    },
    ...

Per creare questa associazione, è necessario:

  1. Creare un'associazione nel file function.json.

  2. Specificare il valore per la variabile name. In questo esempio la variabile contiene i dati BLOB.

  3. Specificare la proprietà type per l'associazione. Nell'esempio precedente viene usato il servizio Archivio BLOB.

  4. Specificare la proprietà path che indica il contenitore e il nome dell'elemento inserito. La proprietà path è obbligatoria quando si usa il trigger BLOB e deve essere specificata nello stile mostrato qui, con la parte del nome del file del percorso racchiusa tra parentesi graffe. Questa sintassi crea un'espressione di associazione che consente di fare riferimento al nome del BLOB in altre associazioni e nel codice della funzione. In questo esempio, un parametro della funzione denominato filename verrebbe popolato con il nome di file del BLOB che ha attivato la funzione.

  5. Specificare il nome dell'impostazione della stringa connection definito nel file delle impostazioni dell'applicazione. Il nome viene usato come chiave per trovare la stringa di connessione per connettersi all'account di archiviazione.

  6. Definire direction come in. Vengono letti i dati dal BLOB.

Le associazioni vengono usate per connettersi ai dati nella funzione. In questo esempio è stata usata un'associazione di input per connettere le immagini utente che devono essere elaborate come anteprime dalla funzione.