Mobile Apps-bindingen voor Azure Functions

Notitie

Azure Mobile Apps-bindingen zijn alleen beschikbaar voor Azure Functions 1.x. Ze worden niet ondersteund in Azure Functions 2.x en hoger.

In dit artikel wordt uitgelegd hoe u kunt werken met Azure Mobile Apps-bindingen in Azure Functions. Azure Functions ondersteunt invoer- en uitvoerbindingen voor Mobile Apps.

Met de Mobile Apps-bindingen kunt u gegevenstabellen lezen en bijwerken in mobiele apps.

Pakketten - Functions 1.x

Mobile Apps-bindingen worden geleverd in het NuGet-pakket Microsoft.Azure.WebJobs.Extensions.MobileApps , versie 1.x. De broncode voor het pakket bevindt zich in de GitHub-opslagplaats azure-webjobs-sdk-extensions .

De volgende tabel bevat informatie over het toevoegen van ondersteuning voor deze binding in elke ontwikkelomgeving.

Ontwikkelomgeving Ondersteuning toevoegen in
Functions 1.x
Lokale ontwikkeling: C#-klassebibliotheek Het pakket installeren
Lokale ontwikkeling: C#-script, JavaScript, F# Automatisch
Portal-ontwikkeling Automatisch

Invoer

Met de invoerbinding voor Mobile Apps wordt een record uit een eindpunt van een mobiele tabel geladen en doorgegeven aan uw functie. In C#- en F#-functies worden alle wijzigingen die in de record zijn aangebracht, automatisch teruggestuurd naar de tabel wanneer de functie wordt afgesloten.

Invoer - voorbeeld

Zie het taalspecifieke voorbeeld:

In het volgende voorbeeld ziet u een Mobile Apps-invoerbinding in een function.json-bestand en een C#-scriptfunctie die gebruikmaakt van de binding. De functie wordt geactiveerd door een wachtrijbericht met een record-id. De functie leest de opgegeven record en wijzigt Text de eigenschap.

Dit zijn de bindingsgegevens in het bestand 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"
    }
]
}

In de configuratiesectie worden deze eigenschappen uitgelegd.

Dit is de C# Script-code:

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

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

Invoer - kenmerken

Gebruik in C#-klassebibliotheken het kenmerk MobileTable .

Zie de volgende configuratiesectie voor informatie over kenmerkeigenschappen die u kunt configureren.

Invoer - configuratie

De volgende tabel bevat informatie over de bindingsconfiguratie-eigenschappen die u instelt in het bestand function.json en het kenmerk MobileTable.

function.json-eigenschap Kenmerkeigenschap Beschrijving
type N.v.t. Moet zijn ingesteld op 'mobileTable'
direction N.v.t. Moet zijn ingesteld op 'in'
name N.v.t. Naam van invoerparameter in functiehandtekening.
tableName TableName Naam van de gegevenstabel van de mobiele app
id Id De id van de record die moet worden opgehaald. Kan statisch zijn of op basis van de trigger die de functie aanroept. Als u bijvoorbeeld een wachtrijtrigger voor uw functie gebruikt, gebruikt "id": "{queueTrigger}" u de tekenreekswaarde van het wachtrijbericht als record-id om op te halen.
verbinding Verbinding De naam van een app-instelling met de URL van de mobiele app. De functie gebruikt deze URL om de vereiste REST-bewerkingen samen te stellen voor uw mobiele app. Maak een app-instelling in uw functie-app die de URL van de mobiele app bevat en geef vervolgens de naam op van de app-instelling in de connection eigenschap in uw invoerbinding. De URL ziet er als volgt https://<appname>.azurewebsites.netuit.
apiKey ApiKey De naam van een app-instelling met de API-sleutel van uw mobiele app. Geef de API-sleutel op als u een API-sleutel implementeert in uw Node.js mobiele app of een API-sleutel implementeert in uw mobiele .NET-app. Als u de sleutel wilt opgeven, maakt u een app-instelling in uw functie-app die de API-sleutel bevat en voegt u vervolgens de apiKey eigenschap toe aan uw invoerbinding met de naam van de app-instelling.

Wanneer u lokaal ontwikkelt, voegt u uw toepassingsinstellingen toe aan het local.settings.json-bestand in de Values verzameling.

Belangrijk

Deel de API-sleutel niet met uw mobiele app-clients. Het mag alleen veilig worden gedistribueerd naar clients aan de servicezijde, zoals Azure Functions. Azure Functions slaat uw verbindingsgegevens en API-sleutels op als app-instellingen, zodat ze niet worden ingecheckt in uw opslagplaats voor broncodebeheer. Dit beschermt uw gevoelige informatie.

Invoer - gebruik

Wanneer in C#-functies de record met de opgegeven id wordt gevonden, wordt deze doorgegeven aan de parameter JObject . Wanneer de record niet wordt gevonden, is nullde parameterwaarde .

In JavaScript-functies wordt de record doorgegeven aan het context.bindings.<name> object. Wanneer de record niet wordt gevonden, is nullde parameterwaarde .

In C#- en F#-functies worden alle wijzigingen die u aanbrengt in de invoerrecord (invoerparameter) automatisch teruggestuurd naar de tabel wanneer de functie wordt afgesloten. U kunt een record in JavaScript-functies niet wijzigen.

Uitvoer

Gebruik de Mobile Apps-uitvoerbinding om een nieuwe record naar een Mobile Apps-tabel te schrijven.

Uitvoer - voorbeeld

In het volgende voorbeeld ziet u een C#-functie die wordt geactiveerd door een wachtrijbericht en een record maakt in een tabel met mobiele apps.

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

Uitvoer - kenmerken

Gebruik in C#-klassebibliotheken het kenmerk MobileTable .

Zie Uitvoer - configuratie voor informatie over kenmerkeigenschappen die u kunt configureren. Hier volgt een MobileTable kenmerkvoorbeeld in een methodehandtekening:

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

Uitvoer - configuratie

De volgende tabel bevat informatie over de bindingsconfiguratie-eigenschappen die u instelt in het bestand function.json en het kenmerk MobileTable.

function.json-eigenschap Kenmerkeigenschap Beschrijving
type N.v.t. Moet zijn ingesteld op 'mobileTable'
direction N.v.t. Moet worden ingesteld op 'out'
name N.v.t. Naam van uitvoerparameter in functiehandtekening.
tableName TableName Naam van de gegevenstabel van de mobiele app
verbinding MobileAppUriSetting De naam van een app-instelling met de URL van de mobiele app. De functie gebruikt deze URL om de vereiste REST-bewerkingen samen te stellen voor uw mobiele app. Maak een app-instelling in uw functie-app die de URL van de mobiele app bevat en geef vervolgens de naam op van de app-instelling in de connection eigenschap in uw invoerbinding. De URL ziet er als volgt https://<appname>.azurewebsites.netuit.
apiKey ApiKeySetting De naam van een app-instelling met de API-sleutel van uw mobiele app. Geef de API-sleutel op als u een API-sleutel implementeert in de back-end van uw Node.js mobiele app of een API-sleutel implementeert in de back-end van uw mobiele .NET-app. Als u de sleutel wilt opgeven, maakt u een app-instelling in uw functie-app die de API-sleutel bevat en voegt u vervolgens de apiKey eigenschap toe aan uw invoerbinding met de naam van de app-instelling.

Wanneer u lokaal ontwikkelt, voegt u uw toepassingsinstellingen toe aan het local.settings.json-bestand in de Values verzameling.

Belangrijk

Deel de API-sleutel niet met uw mobiele app-clients. Het mag alleen veilig worden gedistribueerd naar clients aan de servicezijde, zoals Azure Functions. Azure Functions slaat uw verbindingsgegevens en API-sleutels op als app-instellingen, zodat ze niet worden ingecheckt in uw opslagplaats voor broncodebeheer. Dit beschermt uw gevoelige informatie.

Uitvoer - gebruik

Gebruik in C#-scriptfuncties een benoemde uitvoerparameter van het type out object voor toegang tot de uitvoerrecord. In C#-klassebibliotheken kan het MobileTable kenmerk worden gebruikt met een van de volgende typen:

  • ICollector<T> of IAsyncCollector<T>, waar T is JObject of elk type met een public string Id eigenschap.
  • out JObject
  • out T of out T[], waar T is elk type met een public string Id eigenschap.

Gebruik in Node.js functies context.bindings.<name> om toegang te krijgen tot de uitvoerrecord.

Volgende stappen