Mobile Apps-bindningar för Azure Functions

Kommentar

Azure Mobile Apps-bindningar är endast tillgängliga för Azure Functions 1.x. De stöds inte i Azure Functions 2.x och senare.

Den här artikeln beskriver hur du arbetar med Azure Mobile Apps-bindningar i Azure Functions. Azure Functions stöder indata- och utdatabindningar för Mobile Apps.

Med Mobile Apps-bindningar kan du läsa och uppdatera datatabeller i mobilappar.

Paket – Functions 1.x

Mobile Apps-bindningar tillhandahålls i NuGet-paketet Microsoft.Azure.WebJobs.Extensions.MobileApps , version 1.x. Källkoden för paketet finns på GitHub-lagringsplatsen azure-webjobs-sdk-extensions .

I följande tabell beskrivs hur du lägger till stöd för den här bindningen i varje utvecklingsmiljö.

Utvecklingsmiljö Så här lägger du till stöd i
Functions 1.x
Lokal utveckling – C#-klassbibliotek Installera paketet
Lokal utveckling – C#-skript, JavaScript, F# Automatisk
Portalutveckling Automatisk

Indata

Mobile Apps-indatabindningen läser in en post från en mobil tabellslutpunkt och skickar den till din funktion. I funktionerna C# och F# skickas alla ändringar som görs i posten automatiskt tillbaka till tabellen när funktionen avslutas.

Input – exempel

Se det språkspecifika exemplet:

I följande exempel visas en Mobile Apps-indatabindning i en function.json-fil och en C#-skriptfunktion som använder bindningen. Funktionen utlöses av ett kömeddelande som har en postidentifierare. Funktionen läser den angivna posten och ändrar dess Text egenskap.

Här är bindningsdata i filen 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"
    }
]
}

I konfigurationsavsnittet förklaras dessa egenskaper.

Här är C#-skriptkoden:

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

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

Indata – attribut

I C#-klassbibliotek använder du attributet MobileTable .

Information om attributegenskaper som du kan konfigurera finns i följande konfigurationsavsnitt.

Indata – konfiguration

I följande tabell förklaras de bindningskonfigurationsegenskaper som du anger i function.json-filen och MobileTable attributet.

function.json egenskap Attributegenskap beskrivning
typ saknas Måste vara inställt på "mobileTable"
riktning saknas Måste anges till "in"
Namn saknas Namnet på indataparametern i funktionssignaturen.
Tablename TableName Namnet på mobilappens datatabell
id ID Identifieraren för posten som ska hämtas. Kan vara statisk eller baseras på utlösaren som anropar funktionen. Om du till exempel använder en köutlösare för din funktion använder du "id": "{queueTrigger}" strängvärdet för kömeddelandet som post-ID för att hämta.
Anslutning Anslutning Namnet på en appinställning som har mobilappens URL. Funktionen använder den här URL:en för att konstruera nödvändiga REST-åtgärder mot din mobilapp. Skapa en appinställning i funktionsappen som innehåller mobilappens URL och ange sedan namnet på appinställningen connection i egenskapen i indatabindningen. URL:en ser ut som https://<appname>.azurewebsites.net.
apiKey ApiKey Namnet på en appinställning som har din mobilapps API-nyckel. Ange API-nyckeln om du implementerar en API-nyckel i din Node.js mobilapp eller implementerar en API-nyckel i din .NET-mobilapp. Om du vill ange nyckeln skapar du en appinställning i funktionsappen som innehåller API-nyckeln och lägger sedan till apiKey egenskapen i indatabindningen med namnet på appinställningen.

När du utvecklar lokalt lägger du till dina programinställningar i den local.settings.json filen i Values samlingen.

Viktigt!

Dela inte API-nyckeln med dina mobilappklienter. Den bör endast distribueras på ett säkert sätt till klienter på tjänstsidan, till exempel Azure Functions. Azure Functions lagrar din anslutningsinformation och API-nycklar som appinställningar så att de inte checkas in på källkontrolllagringsplatsen. Detta skyddar din känsliga information.

Indata – användning

När posten med det angivna ID:t hittas i C#-funktioner skickas den till den namngivna JObject-parametern . När posten inte hittas är nullparametervärdet .

I JavaScript-funktioner skickas posten till objektet context.bindings.<name> . När posten inte hittas är nullparametervärdet .

I funktionerna C# och F# skickas alla ändringar du gör i indataposten (indataparametern) automatiskt tillbaka till tabellen när funktionen avslutas. Du kan inte ändra en post i JavaScript-funktioner.

Output

Använd mobile apps-utdatabindningen för att skriva en ny post till en Mobile Apps-tabell.

Utdata – exempel

I följande exempel visas en C#-funktion som utlöses av ett kömeddelande och skapar en post i en mobilapptabell.

[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}" };
}

Utdata – attribut

I C#-klassbibliotek använder du attributet MobileTable .

Information om attributegenskaper som du kan konfigurera finns i Utdata – konfiguration. Här är ett MobileTable attributexempel i en metodsignatur:

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

Utdata – konfiguration

I följande tabell förklaras de bindningskonfigurationsegenskaper som du anger i function.json-filen och MobileTable attributet.

function.json egenskap Attributegenskap beskrivning
typ saknas Måste vara inställt på "mobileTable"
riktning saknas Måste anges till "out"
Namn saknas Namnet på utdataparametern i funktionssignaturen.
Tablename TableName Namnet på mobilappens datatabell
Anslutning MobileAppUriSetting Namnet på en appinställning som har mobilappens URL. Funktionen använder den här URL:en för att konstruera nödvändiga REST-åtgärder mot din mobilapp. Skapa en appinställning i funktionsappen som innehåller mobilappens URL och ange sedan namnet på appinställningen connection i egenskapen i indatabindningen. URL:en ser ut som https://<appname>.azurewebsites.net.
apiKey ApiKeySetting Namnet på en appinställning som har din mobilapps API-nyckel. Ange API-nyckeln om du implementerar en API-nyckel i din Node.js mobilappsserverdel eller implementerar en API-nyckel i .NET-mobilappens serverdel. Om du vill ange nyckeln skapar du en appinställning i funktionsappen som innehåller API-nyckeln och lägger sedan till apiKey egenskapen i indatabindningen med namnet på appinställningen.

När du utvecklar lokalt lägger du till dina programinställningar i den local.settings.json filen i Values samlingen.

Viktigt!

Dela inte API-nyckeln med dina mobilappklienter. Den bör endast distribueras på ett säkert sätt till klienter på tjänstsidan, till exempel Azure Functions. Azure Functions lagrar din anslutningsinformation och API-nycklar som appinställningar så att de inte checkas in på källkontrolllagringsplatsen. Detta skyddar din känsliga information.

Utdata – användning

I C#-skriptfunktioner använder du en namngiven utdataparameter av typen out object för att komma åt utdataposten. I C#-klassbibliotek MobileTable kan attributet användas med någon av följande typer:

  • ICollector<T> eller IAsyncCollector<T>, där T är antingen JObject eller någon typ med en public string Id egenskap.
  • out JObject
  • out T eller out T[], där T är någon typ med en public string Id egenskap.

I Node.js funktioner använder du context.bindings.<name> för att komma åt utdataposten.

Nästa steg