Associazioni di app per dispositivi mobili in Funzioni di Azure

Questo articolo illustra come configurare e scrivere il codice delle associazioni di App per dispositivi mobili di Azure in Funzioni di Azure. Funzioni di Azure supporta le associazioni di input e output per App per dispositivi mobili.

Le associazioni di input e output per App per dispositivi mobili consentono di leggere e scrivere tabelle di dati nella propria app per dispositivi mobili.

Informazioni di riferimento per gli sviluppatori delle Funzioni di Azure. Se non si ha familiarità con le Funzioni di Azure, iniziare con le seguenti risorse:

Associazione di input di App per dispositivi mobili

L'associazione di input di App per dispositivi mobili carica un record da un endpoint tabella per dispositivi mobili e lo passa alla propria funzione. Nelle funzioni C# e F# eventuali modifiche apportate al record vengono automaticamente inviate alla tabella se la funzione termina correttamente.

L'input di App per dispositivi mobili in una funzione usa l'oggetto JSON seguente nella matrice bindings di function.json:

{
    "name": "<Name of input parameter in function signature>",
    "type": "mobileTable",
    "tableName": "<Name of your mobile app's data table>",
    "id" : "<Id of the record to retrieve - see below>",
    "connection": "<Name of app setting that has your mobile app's URL - see below>",
    "apiKey": "<Name of app setting that has your mobile app's API key - see below>",
    "direction": "in"
}

Tenere presente quanto segue:

  • id può essere statico oppure può essere basato sul trigger che richiama la funzione. Se ad esempio si usa un trigger della coda per la propria funzione, "id": "{queueTrigger}" userà il valore di stringa del messaggio della coda come ID del record da recuperare.
  • connection deve contenere il nome di un'impostazione dell'app per le funzioni, in cui è contenuto l'URL dell'app per dispositivi mobili. La funzione usa questo URL per creare le operazioni REST da eseguire sull'app per dispositivi mobili. A questo scopo, è necessario creare un'impostazione nell'app per le funzioni che contenga l'URL dell'app per dispositivi mobili (simile a http://<appname>.azurewebsites.net) e quindi specificare il nome dell'impostazione dell'app nella proprietà connection dell'associazione di input.
  • È necessario specificare apiKey se si implementa una chiave API nel back-end dell'app per dispositivi mobili Node.js o se si implementa una chiave API nel back-end dell'app per dispositivi mobili .NET. A questo scopo, è necessario creare un'impostazione nell'app per le funzioni che contenga la chiave API e quindi aggiungere la proprietà apiKey nell'associazione di input con il nome dell'impostazione dell'app.

    Importante

    Questa chiave API non deve essere condivisa con i client dell'app per dispositivi mobili. Può essere distribuita in modo sicuro solo ai client sul lato servizio, come Funzioni di Azure.

    Nota

    Funzioni di Azure archivia le informazioni di connessione e le chiavi API come impostazioni dell'app in modo che non vengano controllate nel repository di controllo del codice sorgente. In questo modo viene garantita la protezione delle informazioni riservate.

Uso dell'input

In questa sezione viene illustrato come usare l'associazione di input di App per dispositivi mobili nel codice di funzione.

Se il record corrispondente alla tabella e all'ID di record specificati viene trovato, il record viene passato al parametro denominato JObject (in Node.js viene passato all'oggetto context.bindings.<name>). Se il record non viene trovato, il parametro è null.

Nelle funzioni C# e F# eventuali modifiche apportate al record di input (parametro di input) vengono automaticamente inviate alla tabella di App per dispositivi mobili quando la funzione termina correttamente. Nelle funzioni Node.js si accede al record di input usando context.bindings.<name>. In Node.js, inoltre, non è possibile modificare i record.

Esempio di input

Si supponga di avere il seguente function.json, che recupera un record della tabella di App per dispositivi mobili tramite l'ID del messaggio di attivazione della coda:

{
"bindings": [
    {
    "name": "myQueueItem",
    "queueName": "myqueue-items",
    "connection":"",
    "type": "queueTrigger",
    "direction": "in"
    },
    {
        "name": "record",
        "type": "mobileTable",
        "tableName": "MyTable",
        "id" : "{queueTrigger}",
        "connection": "My_MobileApp_Url",
        "apiKey": "My_MobileApp_Key",
        "direction": "in"
    }
],
"disabled": false
}

Vedere l'esempio specifico del linguaggio che usa il record di input dall'associazione. Gli esempi in C# e F# modificano anche la proprietà text del record.

Esempio di input in C#

#r "Newtonsoft.Json"    
using Newtonsoft.Json.Linq;

public static void Run(string myQueueItem, JObject record)
{
    if (record != null)
    {
        record["Text"] = "This has changed.";
    }    
}

Esempio di input in Node.js

module.exports = function (context, myQueueItem) {    
    context.log(context.bindings.record);
    context.done();
};

Associazione di output di App per dispositivi mobili

L'associazione di output di App per dispositivi mobili consente di scrivere un nuovo record in un endpoint tabella di App per dispositivi mobili.

L'output di App per dispositivi mobili per una funzione usa l'oggetto JSON seguente nella matrice bindings di function.json:

{
    "name": "<Name of output parameter in function signature>",
    "type": "mobileTable",
    "tableName": "<Name of your mobile app's data table>",
    "connection": "<Name of app setting that has your mobile app's URL - see below>",
    "apiKey": "<Name of app setting that has your mobile app's API key - see below>",
    "direction": "out"
}

Tenere presente quanto segue:

  • connection deve contenere il nome di un'impostazione dell'app per le funzioni, in cui è contenuto l'URL dell'app per dispositivi mobili. La funzione usa questo URL per creare le operazioni REST da eseguire sull'app per dispositivi mobili. A questo scopo, è necessario creare un'impostazione nell'app per le funzioni che contenga l'URL dell'app per dispositivi mobili (simile a http://<appname>.azurewebsites.net) e quindi specificare il nome dell'impostazione dell'app nella proprietà connection dell'associazione di input.
  • È necessario specificare apiKey se si implementa una chiave API nel back-end dell'app per dispositivi mobili Node.js o se si implementa una chiave API nel back-end dell'app per dispositivi mobili .NET. A questo scopo, è necessario creare un'impostazione nell'app per le funzioni che contenga la chiave API e quindi aggiungere la proprietà apiKey nell'associazione di input con il nome dell'impostazione dell'app.

    Importante

    Questa chiave API non deve essere condivisa con i client dell'app per dispositivi mobili. Può essere distribuita in modo sicuro solo ai client sul lato servizio, come Funzioni di Azure.

    Nota

    Funzioni di Azure archivia le informazioni di connessione e le chiavi API come impostazioni dell'app in modo che non vengano controllate nel repository di controllo del codice sorgente. In questo modo viene garantita la protezione delle informazioni riservate.

Uso dell'output

In questa sezione viene illustrato come usare l'associazione di output di App per dispositivi mobili nel codice di funzione.

Nelle funzioni C# è necessario usare un parametro di output denominato di tipo out object per accedere al record di output. Nelle funzioni Node.js si accede al record di output usando context.bindings.<name>.

Esempio di output

Si supponga di avere il seguente function.json, che definisce un trigger della coda e un output di App per dispositivi mobili:

{
"bindings": [
    {
    "name": "myQueueItem",
    "queueName": "myqueue-items",
    "connection":"",
    "type": "queueTrigger",
    "direction": "in"
    },
    {
    "name": "record",
    "type": "mobileTable",
    "tableName": "MyTable",
    "connection": "My_MobileApp_Url",
    "apiKey": "My_MobileApp_Key",
    "direction": "out"
    }
],
"disabled": false
}

Vedere l'esempio specifico del linguaggio che crea un record nell'endpoint tabella di App per dispositivi mobili con il contenuto del messaggio della coda.

Esempio di output in C#

public static void Run(string myQueueItem, out object record)
{
    record = new {
        Text = $"I'm running in a C# function! {myQueueItem}"
    };
}

Esempio di output in Node.js

module.exports = function (context, myQueueItem) {

    context.bindings.record = {
        text : "I'm running in a Node function! Data: '" + myQueueItem + "'"
    }   

    context.done();
};

Passaggi successivi

Per informazioni su altre associazioni e altri trigger per Funzioni di Azure, vedere Guida di riferimento per gli sviluppatori di trigger e associazioni di Funzioni di Azure.