Liaisons Mobile Apps pour Azure FunctionsMobile Apps bindings for Azure Functions

Notes

Les liaisons Azure Mobile Apps sont disponibles uniquement pour Azure Functions 1.x.Azure Mobile Apps bindings are only available to Azure Functions 1.x. Elles ne sont pas prises en charge dans Azure Functions 2.x et ultérieur.They are not supported in Azure Functions 2.x and higher.

Cet article explique comment utiliser des liaisons Azure Mobile Apps dans Azure Functions.This article explains how to work with Azure Mobile Apps bindings in Azure Functions. Azure Functions prend en charge des liaisons d’entrée et de sortie pour Mobile Apps.Azure Functions supports input and output bindings for Mobile Apps.

Les liaisons Mobile Apps vous permettent de lire et mettre à jour des tables de données dans des applications mobiles.The Mobile Apps bindings let you read and update data tables in mobile apps.

Il s’agit des informations de référence pour les développeurs Azure Functions.This is reference information for Azure Functions developers. Si vous ne connaissez pas bien Azure Functions, commencez par consulter les ressources suivantes :If you're new to Azure Functions, start with the following resources:

Packages - Functions 1.xPackages - Functions 1.x

Les liaisons Mobile Apps sont fournies dans le package NuGet Microsoft.Azure.WebJobs.Extensions.MobileApps, version 1.x.Mobile Apps bindings are provided in the Microsoft.Azure.WebJobs.Extensions.MobileApps NuGet package, version 1.x. Le code source du package se trouve dans le référentiel GitHub azure-webjobs-sdk-extensions.Source code for the package is in the azure-webjobs-sdk-extensions GitHub repository.

Le tableau suivant indique comment ajouter la prise en charge de cette liaison dans chaque environnement de développement.The following table tells how to add support for this binding in each development environment.

Environnement de développementDevelopment environment Pour ajouter la prise en charge dansTo add support in
Functions 1.xFunctions 1.x
Développement local - Bibliothèque de classes C#Local development - C# class library Installer le package.Install the package
Développement local - Script C#, JavaScript, F#Local development - C# script, JavaScript, F# AutomatiqueAutomatic
Développement sur le portailPortal development AutomatiqueAutomatic

EntréeInput

La liaison d’entrée Mobile Apps charge un enregistrement à partir d’un point de terminaison de table mobile et le transmet à votre fonction.The Mobile Apps input binding loads a record from a mobile table endpoint and passes it into your function. Dans des fonctions C# et F#, toutes les modifications apportées à l’enregistrement sont automatiquement renvoyées à la table une fois que la fonction s’est correctement terminée.In C# and F# functions, any changes made to the record are automatically sent back to the table when the function exits successfully.

Entrée - exempleInput - example

Consultez l’exemple propre à un langage particulier :See the language-specific example:

Entrée - exemple de script C#Input - C# script example

L’exemple suivant montre une liaison d’entrée Mobile Apps dans un fichier function.json et une fonction de script C# qui utilise la liaison.The following example shows a Mobile Apps input binding in a function.json file and a C# script function that uses the binding. La fonction est déclenchée par un message de file d’attente qui a un identificateur d’enregistrement.The function is triggered by a queue message that has a record identifier. La fonction lit l’enregistrement spécifié et modifie sa propriété Text.The function reads the specified record and modifies its Text property.

Voici les données de liaison dans le fichier function.json :Here's the binding data in the function.json file:

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

La section configuration décrit ces propriétés.The configuration section explains these properties.

Voici le code Script C# :Here's the 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.";
    }    
}

Entrée - JavaScriptInput - JavaScript

L’exemple suivant montre une liaison d’entrée Mobile Apps dans un fichier function.json et une fonction JavaScript qui utilise la liaison.The following example shows a Mobile Apps input binding in a function.json file and a JavaScript function that uses the binding. La fonction est déclenchée par un message de file d’attente qui a un identificateur d’enregistrement.The function is triggered by a queue message that has a record identifier. La fonction lit l’enregistrement spécifié et modifie sa propriété Text.The function reads the specified record and modifies its Text property.

Voici les données de liaison dans le fichier function.json :Here's the binding data in the function.json file:

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

La section configuration décrit ces propriétés.The configuration section explains these properties.

Voici le code JavaScript :Here's the JavaScript code:

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

Entrée - attributsInput - attributes

Dans les bibliothèques de classes C#, utilisez l’attribut MobileTable.In C# class libraries, use the MobileTable attribute.

Pour plus d’informations sur les propriétés d’attribut que vous pouvez configurer, consultez la section de configuration suivante.For information about attribute properties that you can configure, see the following configuration section.

Entrée - configurationInput - configuration

Le tableau suivant décrit les propriétés de configuration de liaison que vous définissez dans le fichier function.json et l’attribut MobileTable.The following table explains the binding configuration properties that you set in the function.json file and the MobileTable attribute.

Propriété function.jsonfunction.json property Propriété d’attributAttribute property DescriptionDescription
typetype Doit être défini sur « mobileTable »Must be set to "mobileTable"
directiondirection Doit être défini sur « in »Must be set to "in"
namename Nom du paramètre d’entrée dans la signature de la fonction.Name of input parameter in function signature.
tableNametableName TableNameTableName Nom de la table de données de l’application mobileName of the mobile app's data table
idid IdId Identificateur de l’enregistrement à récupérer.The identifier of the record to retrieve. Peut être statique ou basé sur le déclencheur qui appelle la fonction.Can be static or based on the trigger that invokes the function. Par exemple, si vous utilisez un déclencheur de file d’attente pour votre fonction, "id": "{queueTrigger}" utilise la valeur de chaîne du message de file d’attente en tant qu’ID de l’enregistrement à récupérer.For example, if you use a queue trigger for your function, then "id": "{queueTrigger}" uses the string value of the queue message as the record ID to retrieve.
Connexionconnection ConnectionConnection Nom d’un paramètre d’application qui a l’URL de l’application mobile.The name of an app setting that has the mobile app's URL. La fonction utilise cette URL pour construire les opérations REST requises par rapport à votre application mobile.The function uses this URL to construct the required REST operations against your mobile app. Créez un paramètre d’application dans votre application de fonction, contenant l’URL de votre application mobile, puis spécifiez le nom du paramètre d’application dans la propriété connection de votre liaison d’entrée.Create an app setting in your function app that contains the mobile app's URL, then specify the name of the app setting in the connection property in your input binding. L’URL est de type http://<appname>.azurewebsites.net.The URL looks like http://<appname>.azurewebsites.net.
apiKeyapiKey ApiKeyApiKey Nom d’un paramètre d’application qui a la clé API de votre application mobile.The name of an app setting that has your mobile app's API key. Indiquez la clé API si vous implémentez une clé API dans votre application mobile Node.js ou implémentez une clé API dans votre application mobile .NET.Provide the API key if you implement an API key in your Node.js mobile app, or implement an API key in your .NET mobile app. Pour indiquer la clé, créez un paramètre d’application dans votre application de fonction, contenant la clé API, puis ajoutez la propriété apiKey dans votre liaison d’entrée avec le nom du paramètre d’application.To provide the key, create an app setting in your function app that contains the API key, then add the apiKey property in your input binding with the name of the app setting.

Quand vous développez localement, les paramètres d’application vont dans le fichier local.settings.json.When you're developing locally, app settings go into the local.settings.json file.

Important

Ne partagez pas la clé API avec les clients de votre application mobile.Don't share the API key with your mobile app clients. Elle doit uniquement être distribuée de façon sécurisée aux clients côté service, comme Azure Functions.It should only be distributed securely to service-side clients, like Azure Functions. Azure Functions stocke vos informations de connexion et les clés API en tant que paramètres d’application, de sorte qu’elles ne soient pas vérifiées dans votre référentiel de contrôle de code source.Azure Functions stores your connection information and API keys as app settings so that they are not checked into your source control repository. Ceci protège vos informations sensibles.This safeguards your sensitive information.

Entrée - utilisationInput - usage

Dans les fonctions C#, quand l’enregistrement portant l’ID spécifié est trouvé, il est passé au paramètre JObject nommé.In C# functions, when the record with the specified ID is found, it is passed into the named JObject parameter. Si l’enregistrement est introuvable, la valeur du paramètre est null.When the record is not found, the parameter value is null.

Dans les fonctions JavaScript, l’enregistrement est passé à l’objet context.bindings.<name>.In JavaScript functions, the record is passed into the context.bindings.<name> object. Si l’enregistrement est introuvable, la valeur du paramètre est null.When the record is not found, the parameter value is null.

Dans les fonctions C# et F#, toutes les modifications apportées à l’enregistrement d’entrée (paramètre d’entrée) sont automatiquement renvoyées à la table une fois que la fonction s’est correctement terminée.In C# and F# functions, any changes you make to the input record (input parameter) are automatically sent back to the table when the function exits successfully. Vous ne pouvez pas modifier un enregistrement dans les fonctions JavaScript.You can't modify a record in JavaScript functions.

OutputOutput

Utilisez la liaison de sortie Mobile Apps pour écrire un nouvel enregistrement dans une table Mobile Apps.Use the Mobile Apps output binding to write a new record to a Mobile Apps table.

Sortie - exempleOutput - example

Consultez l’exemple propre à un langage particulier :See the language-specific example:

Sortie - exemple C#Output - C# example

L’exemple suivant montre une fonction C# qui est déclenchée par un message de file d’attente et crée un enregistrement dans une table d’application mobile.The following example shows a C# function that is triggered by a queue message and creates a record in a mobile app table.

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

Sortie - exemple Script C#Output - C# script example

L’exemple suivant montre une liaison de sortie Mobile Apps dans un fichier function.json et une fonction de script C# qui utilise la liaison.The following example shows a Mobile Apps output binding in a function.json file and a C# script function that uses the binding. La fonction est déclenchée par un message de file d’attente et crée un enregistrement avec une valeur codée en dur pour la propriété Text.The function is triggered by a queue message and creates a new record with hard-coded value for the Text property.

Voici les données de liaison dans le fichier function.json :Here's the binding data in the function.json file:

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

La section configuration décrit ces propriétés.The configuration section explains these properties.

Voici le code Script C# :Here's the C# script code:

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

Sortie - exemple JavaScriptOutput - JavaScript example

L’exemple suivant montre une liaison de sortie Mobile Apps dans un fichier function.json et une fonction JavaScript qui utilise la liaison.The following example shows a Mobile Apps output binding in a function.json file and a JavaScript function that uses the binding. La fonction est déclenchée par un message de file d’attente et crée un enregistrement avec une valeur codée en dur pour la propriété Text.The function is triggered by a queue message and creates a new record with hard-coded value for the Text property.

Voici les données de liaison dans le fichier function.json :Here's the binding data in the function.json file:

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

La section configuration décrit ces propriétés.The configuration section explains these properties.

Voici le code JavaScript :Here's the JavaScript code:

module.exports = function (context, myQueueItem) {

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

    context.done();
};

Sortie - attributsOutput - attributes

Dans les bibliothèques de classes C#, utilisez l’attribut MobileTable.In C# class libraries, use the MobileTable attribute.

Pour plus d’informations sur les propriétés d’attribut que vous pouvez configurer, consultez Sortie - configuration.For information about attribute properties that you can configure, see Output - configuration. Voici un exemple d’attribut MobileTable dans une signature de méthode :Here's a MobileTable attribute example in a method signature:

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

Pour obtenir un exemple complet, consultez Sortie - exemple C#.For a complete example, see Output - C# example.

Sortie - configurationOutput - configuration

Le tableau suivant décrit les propriétés de configuration de liaison que vous définissez dans le fichier function.json et l’attribut MobileTable.The following table explains the binding configuration properties that you set in the function.json file and the MobileTable attribute.

Propriété function.jsonfunction.json property Propriété d’attributAttribute property DescriptionDescription
typetype Doit être défini sur « mobileTable »Must be set to "mobileTable"
directiondirection Doit être défini sur « out »Must be set to "out"
namename Nom du paramètre de sortie dans la signature de la fonction.Name of output parameter in function signature.
tableNametableName TableNameTableName Nom de la table de données de l’application mobileName of the mobile app's data table
Connexionconnection MobileAppUriSettingMobileAppUriSetting Nom d’un paramètre d’application qui a l’URL de l’application mobile.The name of an app setting that has the mobile app's URL. La fonction utilise cette URL pour construire les opérations REST requises par rapport à votre application mobile.The function uses this URL to construct the required REST operations against your mobile app. Créez un paramètre d’application dans votre application de fonction, contenant l’URL de votre application mobile, puis spécifiez le nom du paramètre d’application dans la propriété connection de votre liaison d’entrée.Create an app setting in your function app that contains the mobile app's URL, then specify the name of the app setting in the connection property in your input binding. L’URL est de type http://<appname>.azurewebsites.net.The URL looks like http://<appname>.azurewebsites.net.
apiKeyapiKey ApiKeySettingApiKeySetting Nom d’un paramètre d’application qui a la clé API de votre application mobile.The name of an app setting that has your mobile app's API key. Indiquez la clé API si vous implémentez une clé API dans le backend de votre application mobile Node.js ou si vous implémentez une clé API dans le backend de votre application mobile .NET.Provide the API key if you implement an API key in your Node.js mobile app backend, or implement an API key in your .NET mobile app backend. Pour indiquer la clé, créez un paramètre d’application dans votre application de fonction contenant la clé API, puis ajoutez la propriété apiKey dans votre liaison d’entrée avec le nom du paramètre d’application.To provide the key, create an app setting in your function app that contains the API key, then add the apiKey property in your input binding with the name of the app setting.

Quand vous développez localement, les paramètres d’application vont dans le fichier local.settings.json.When you're developing locally, app settings go into the local.settings.json file.

Important

Ne partagez pas la clé API avec les clients de votre application mobile.Don't share the API key with your mobile app clients. Elle doit uniquement être distribuée de façon sécurisée aux clients côté service, comme Azure Functions.It should only be distributed securely to service-side clients, like Azure Functions. Azure Functions stocke vos informations de connexion et les clés API en tant que paramètres d’application, de sorte qu’elles ne soient pas vérifiées dans votre référentiel de contrôle de code source.Azure Functions stores your connection information and API keys as app settings so that they are not checked into your source control repository. Ceci protège vos informations sensibles.This safeguards your sensitive information.

Sortie - utilisationOutput - usage

Dans les fonctions de script C#, utilisez un paramètre de sortie nommé de type out object pour accéder à l’enregistrement de sortie.In C# script functions, use a named output parameter of type out object to access the output record. Dans les bibliothèques de classes C#, l’attribut MobileTable est utilisable avec les types suivants :In C# class libraries, the MobileTable attribute can be used with any of the following types:

  • ICollector<T> ou IAsyncCollector<T>, où T est JObject ou tout type avec une propriété public string Id.ICollector<T> or IAsyncCollector<T>, where T is either JObject or any type with a public string Id property.
  • out JObject
  • out T ou out T[], où T est tout type avec une propriété public string Id.out T or out T[], where T is any Type with a public string Id property.

Dans les fonctions Node.js, utilisez context.bindings.<name> pour accéder à l’enregistrement de sortie.In Node.js functions, use context.bindings.<name> to access the output record.

Étapes suivantesNext steps