Mobile Apps-kötések az Azure Functionshez

Feljegyzés

Az Azure Mobile Apps-kötések csak az Azure Functions 1.x-hez érhetők el. Az Azure Functions 2.x és újabb verziói nem támogatják őket.

Ez a cikk bemutatja, hogyan használható az Azure Mobile Apps-kötések az Azure Functionsben. Az Azure Functions támogatja a Mobile Apps bemeneti és kimeneti kötéseit.

A Mobile Apps-kötések lehetővé teszik az adattáblák olvasását és frissítését a mobilalkalmazásokban.

Csomagok – Functions 1.x

A Mobile Apps-kötések a Microsoft.Azure.WebJobs.Extensions.MobileApps NuGet csomag 1.x-es verziójában érhetők el. A csomag forráskódja az azure-webjobs-sdk-extensions GitHub-adattárban található.

Az alábbi táblázat bemutatja, hogyan adhat támogatást ehhez a kötéshez az egyes fejlesztési környezetekben.

Fejlesztői környezet Támogatás hozzáadása a következőben:
Functions 1.x
Helyi fejlesztés – C#-osztálytár A csomag telepítése
Helyi fejlesztés – C# szkript, JavaScript, F# Automatikus
Portál fejlesztése Automatikus

Bevitel

A Mobile Apps bemeneti kötés betölt egy rekordot egy mobiltábla-végpontról, és átadja azt a függvénynek. A C# és az F# függvényben a rekordon végrehajtott módosítások automatikusan vissza lesznek küldve a táblába, amikor a függvény sikeresen kilép.

Bemenet – példa

Lásd a nyelvspecifikus példát:

Az alábbi példa egy Mobile Apps bemeneti kötést mutat be egy function.json fájlban és egy C# szkriptfüggvényben , amely a kötést használja. A függvényt egy rekordazonosítóval rendelkező üzenetsor aktiválja. A függvény beolvassa a megadott rekordot, és módosítja annak tulajdonságát Text .

A kötési adatok a function.json fájlban:

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

A konfigurációs szakasz ezeket a tulajdonságokat ismerteti.

A C# szkriptkódja a következő:

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

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

Bemenet – attribútumok

A C#-osztálytárakban használja a MobileTable attribútumot.

A konfigurálható attribútumtulajdonságokról az alábbi konfigurációs szakaszban olvashat bővebben.

Bemenet – konfiguráció

Az alábbi táblázat a function.json fájlban és az MobileTable attribútumban beállított kötéskonfigurációs tulajdonságokat ismerteti.

function.json tulajdonság Attribútumtulajdonság Leírás
type n.a. A "mobileTable" értéket kell beállítani
direction n.a. "in" értékre kell állítani
név n.a. A bemeneti paraméter neve a függvény-aláírásban.
tableName TableName A mobilalkalmazás adattáblájának neve
id Azonosító A lekérendő rekord azonosítója. Lehet statikus vagy a függvényt meghívó eseményindító alapján. Ha például egy üzenetsor-eseményindítót használ a függvényhez, akkor "id": "{queueTrigger}" az üzenetsor-üzenet sztringértékét használja rekordazonosítóként a lekéréshez.
Kapcsolat Kapcsolat A mobilalkalmazás URL-címével rendelkező alkalmazásbeállítás neve. A függvény ezzel az URL-címmel hozza létre a szükséges REST-műveleteket a mobilalkalmazáson. Hozzon létre egy alkalmazásbeállítást a függvényalkalmazásban, amely tartalmazza a mobilalkalmazás URL-címét, majd adja meg az alkalmazásbeállítás nevét a connection bemeneti kötés tulajdonságában. Az URL-cím így néz https://<appname>.azurewebsites.netki.
apiKey ApiKey A mobilalkalmazás API-kulcsával rendelkező alkalmazásbeállítás neve. Adja meg az API-kulcsot, ha egy API-kulcsot implementál a Node.js mobilalkalmazásban, vagy implementál egy API-kulcsot a .NET-mobilalkalmazásban. A kulcs megadásához hozzon létre egy alkalmazásbeállítást a függvényalkalmazásban, amely tartalmazza az API-kulcsot, majd adja hozzá a tulajdonságot a apiKey bemeneti kötésben az alkalmazásbeállítás nevével.

Helyi fejlesztéskor adja hozzá az alkalmazásbeállításokat a gyűjtemény local.settings.json fájljáhozValues.

Fontos

Ne ossza meg az API-kulcsot a mobilalkalmazás-ügyfelekkel. Csak olyan szolgáltatásoldali ügyfeleknek szabad biztonságosan elosztani, mint az Azure Functions. Az Azure Functions alkalmazásbeállításokként tárolja a kapcsolati adatokat és az API-kulcsokat, hogy azok ne legyenek bejelentkezve a forrásvezérlő adattárába. Ez védi a bizalmas adatokat.

Bemenet – használat

A C# függvényekben a megadott azonosítóval rendelkező rekordot a rendszer átadja a névvel ellátott JObject paraméternek . Ha a rekord nem található, a paraméter értéke .null

A JavaScript-függvényekben a rekord át lesz adva az context.bindings.<name> objektumba. Ha a rekord nem található, a paraméter értéke .null

A C# és az F# függvényekben a bemeneti rekord (bemeneti paraméter) módosításai automatikusan vissza lesznek küldve a táblába, amikor a függvény sikeresen kilép. A JavaScript-függvényekben nem módosíthatja a rekordokat.

Hozam

A Mobile Apps kimeneti kötésével új rekordot írhat egy Mobile Apps-táblába.

Kimenet – példa

Az alábbi példa egy üzenetsor-üzenet által aktivált C# függvényt mutat be, és létrehoz egy rekordot egy mobilalkalmazás-táblában.

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

Kimenet – attribútumok

A C#-osztálytárakban használja a MobileTable attribútumot.

A konfigurálható attribútumtulajdonságokról további információt a Kimenet – konfiguráció című témakörben talál. Íme egy MobileTable attribútum- példa egy metódus-aláírásban:

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

Kimenet – konfiguráció

Az alábbi táblázat a function.json fájlban és az MobileTable attribútumban beállított kötéskonfigurációs tulajdonságokat ismerteti.

function.json tulajdonság Attribútumtulajdonság Leírás
type n.a. A "mobileTable" értéket kell beállítani
direction n.a. "Out" értékre kell állítani
név n.a. A kimeneti paraméter neve a függvény-aláírásban.
tableName TableName A mobilalkalmazás adattáblájának neve
Kapcsolat MobileAppUriSetting A mobilalkalmazás URL-címével rendelkező alkalmazásbeállítás neve. A függvény ezzel az URL-címmel hozza létre a szükséges REST-műveleteket a mobilalkalmazáson. Hozzon létre egy alkalmazásbeállítást a függvényalkalmazásban, amely tartalmazza a mobilalkalmazás URL-címét, majd adja meg az alkalmazásbeállítás nevét a connection bemeneti kötés tulajdonságában. Az URL-cím így néz https://<appname>.azurewebsites.netki.
apiKey ApiKeySetting A mobilalkalmazás API-kulcsával rendelkező alkalmazásbeállítás neve. Adja meg az API-kulcsot, ha a Node.js mobilalkalmazás háttérrendszerében implementál egy API-kulcsot, vagy implementál egy API-kulcsot a .NET mobilalkalmazás háttérrendszerében. A kulcs megadásához hozzon létre egy alkalmazásbeállítást a függvényalkalmazásban, amely tartalmazza az API-kulcsot, majd adja hozzá a tulajdonságot a apiKey bemeneti kötésben az alkalmazásbeállítás nevével.

Helyi fejlesztéskor adja hozzá az alkalmazásbeállításokat a gyűjtemény local.settings.json fájljáhozValues.

Fontos

Ne ossza meg az API-kulcsot a mobilalkalmazás-ügyfelekkel. Csak olyan szolgáltatásoldali ügyfeleknek szabad biztonságosan elosztani, mint az Azure Functions. Az Azure Functions alkalmazásbeállításokként tárolja a kapcsolati adatokat és az API-kulcsokat, hogy azok ne legyenek bejelentkezve a forrásvezérlő adattárába. Ez védi a bizalmas adatokat.

Kimenet – használat

A C#-szkriptfüggvényekben a kimeneti rekord eléréséhez használjon egy elnevezett kimeneti paramétert out object . A C#-osztálykódtárakban az attribútum az MobileTable alábbi típusok bármelyikével használható:

  • ICollector<T> vagy IAsyncCollector<T>, ahol T vagy JObject bármilyen típusú tulajdonsággal rendelkezik public string Id .
  • out JObject
  • out T vagy out T[]hol T található bármilyen tulajdonsággal public string Id rendelkező típus.

A Node.js függvényekben használja context.bindings.<name> a kimeneti rekord elérését.

Következő lépések