Associazioni di app per dispositivi mobili per Funzioni di Azure

Nota

Le associazioni di App per dispositivi mobili di Azure sono disponibili solo per Funzioni di Azure 1.x. Non sono supportati in Funzioni di Azure 2.x e versioni successive.

Questo articolo descrive come usare le associazioni di app per dispositivi mobili in Funzioni di Azure. Funzioni di Azure supporta le associazioni di input e output per App per dispositivi mobili.

Le associazioni di app per dispositivi mobili consentono di leggere e aggiornare le tabelle di dati nelle app per dispositivi mobili.

Pacchetti: Funzioni 1.x

Le associazioni di App per dispositivi mobili sono incluse nel pacchetto NuGet Microsoft.Azure.WebJobs.Extensions.MobileApps versione 1.x. Il codice sorgente del pacchetto si trova nel repository GitHub azure-webjobs-sdk-extensions.

Nella tabella seguente viene descritto come aggiungere un supporto per questa associazione in ogni ambiente di sviluppo.

Ambiente di sviluppo Per aggiungere il supporto in
Funzioni 1.x
Sviluppo locale - Libreria di classi C# Installare il pacchetto
Sviluppo locale - Script C#, JavaScript, F# Automatico
Sviluppo con il portale Automatico

Input

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.

Input - esempio

Vedere l'esempio specifico per ciascun linguaggio:

L'esempio seguente mostra un'associazione di input dell'app per dispositivi mobili in un file function.json e una funzione script C# che usa l'associazione. La funzione viene attivata da un messaggio in coda contenente un identificatore di record. La funzione legge il record specificato e modifica la proprietà Text.

Ecco i dati di associazione nel file function.json:

{
"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"
    }
]
}

Queste proprietà sono descritte nella sezione configuration.

Ecco il codice script C#:

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

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

Input - attributi

Nelle librerie di classi C# usare l'attributo MobileTable.

Per informazioni sulle proprietà degli attributi che è possibile configurare, vedere la sezione seguente relativa alla configurazione.

Input - configurazione

Nella tabella seguente sono illustrate le proprietà di configurazione dell'associazione impostate nel file function.json e nell'attributo MobileTable.

Proprietà di function.json Proprietà dell'attributo Descrizione
type n/d Deve essere impostato su "mobileTable"
direction n/d Deve essere impostato su "in"
name n/d Nome del parametro di input nella firma della funzione.
tableName TableName Nome della tabella di dati dell'app per dispositivi mobili
id ID Identificatore del record da recuperare. Può essere statico o basato sul trigger che richiama la funzione. Se, ad esempio, si usa un trigger della coda per la funzione, "id": "{queueTrigger}" userà il valore di stringa del messaggio della coda come ID del record da recuperare.
connection Connessione Il nome di un'impostazione dell'app con l'URL dell'app per dispositivi mobili. La funzione usa questo URL per creare le operazioni REST da eseguire sull'app per dispositivi mobili. Creare un'impostazione nell'app per le funzioni che contenga l'URL dell'app per dispositivi mobili e quindi specificare il nome dell'impostazione dell'app nella proprietà connection dell'associazione di input. L'URL ha l'aspetto seguente: https://<appname>.azurewebsites.net.
apiKey ApiKey Il nome di un'impostazione dell'app con la chiave API dell'app per dispositivi mobili. Specificare la chiave API se si implementa una chiave API nell'app per dispositivi mobili Node.js oppure se si implementa una chiave API nell'app per dispositivi mobili .NET. Per specificare la chiave, 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.

Quando si sviluppa in locale, aggiungere le impostazioni dell'applicazione nel file local.settings.json nella Values raccolta.

Importante

Non condividere la chiave API con i client dell'app per dispositivi mobili. Può essere distribuita in modo sicuro solo ai client sul lato servizio, come Funzioni di Azure. 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.

Input - uso

Quando nelle funzioni C# viene trovato, il record con l'ID specificato viene passato nel parametro denominato JObject. Se il record non viene trovato, il valore del parametro è null.

Nelle funzioni JavaScript il record viene passato all'oggetto context.bindings.<name>. Se il record non viene trovato, il valore del parametro è null.

Nelle funzioni C# e F# eventuali modifiche apportate al record di input (parametro di input) vengono automaticamente inviate alla tabella quando la funzione termina correttamente. Non è possibile modificare un record nelle funzioni JavaScript.

Output

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

Output - esempio

L'esempio seguente mostra una funzione C# che viene attivata da un messaggio in coda e che crea un record in una tabella di app per dispositivi mobili.

[FunctionName("MobileAppsOutput")]        
[return: MobileTable(ApiKeySetting = "MyMobileAppKey", TableName = "MyTable", MobileAppUriSetting = "MyMobileAppUri")]
public static object Run(
    [QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] string myQueueItem,
    TraceWriter log)
{
    return new { Text = $"I'm running in a C# function! {myQueueItem}" };
}

Output - attributi

Nelle librerie di classi C# usare l'attributo MobileTable.

Per informazioni sulle proprietà degli attributi che è possibile configurare, vedere la sezione Output - configurazione. Di seguito è riportato un esempio dell'attributo MobileTable in una firma del metodo:

[FunctionName("MobileAppsOutput")]        
[return: MobileTable(ApiKeySetting = "MyMobileAppKey", TableName = "MyTable", MobileAppUriSetting = "MyMobileAppUri")]
public static object Run(
    [QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] string myQueueItem,
    TraceWriter log)
{
    ...
}

Output - configurazione

Nella tabella seguente sono illustrate le proprietà di configurazione dell'associazione impostate nel file function.json e nell'attributo MobileTable.

Proprietà di function.json Proprietà dell'attributo Descrizione
type n/d Deve essere impostato su "mobileTable"
direction n/d Deve essere impostato su "out"
name n/d Nome del parametro di output nella firma della funzione.
tableName TableName Nome della tabella di dati dell'app per dispositivi mobili
connection MobileAppUriSetting Il nome di un'impostazione dell'app con l'URL dell'app per dispositivi mobili. La funzione usa questo URL per creare le operazioni REST da eseguire sull'app per dispositivi mobili. Creare un'impostazione nell'app per le funzioni che contenga l'URL dell'app per dispositivi mobili e quindi specificare il nome dell'impostazione dell'app nella proprietà connection dell'associazione di input. L'URL ha l'aspetto seguente: https://<appname>.azurewebsites.net.
apiKey ApiKeySetting Il nome di un'impostazione dell'app con la chiave API dell'app per dispositivi mobili. Specificare la chiave API 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. Per specificare la chiave, 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.

Quando si sviluppa in locale, aggiungere le impostazioni dell'applicazione nel file local.settings.json nella Values raccolta.

Importante

Non condividere la chiave API con i client dell'app per dispositivi mobili. Può essere distribuita in modo sicuro solo ai client sul lato servizio, come Funzioni di Azure. 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.

Output - uso

Nelle funzioni script C# è necessario usare un parametro di output denominato di tipo out object per accedere al record di output. Nelle librerie di classi C#, l'attributo MobileTable può essere usato con uno qualsiasi dei tipi seguenti:

  • ICollector<T> o IAsyncCollector<T>, dove T è JObject o qualsiasi tipo con una proprietà public string Id.
  • out JObject
  • out T o out T[], dove T è un tipo qualsiasi con una proprietà public string Id.

Nelle funzioni Node.js si accede al record di output usando context.bindings.<name>.

Passaggi successivi