Enlaces de Mobile Apps para Azure Functions

Nota

Los enlaces de Azure Mobile Apps solo están disponibles para Azure Functions 1.x. No se admiten en Azure Functions 2.x y versiones posteriores.

En este artículo se explica cómo trabajar con enlaces de Azure Mobile Apps en Azure Functions. Azure Functions admite enlaces de entrada y salida para Mobile Apps.

Los enlaces de Mobile Apps permiten leer y actualizar las tablas de datos en las aplicaciones móviles.

Paquetes: Functions 1.x

Los enlaces de Mobile Apps se proporcionan en el paquete NuGet Microsoft.Azure.WebJobs.Extensions.MobileApps, versión 1.x. El código fuente del paquete está en el repositorio azure-webjobs-sdk-extensions de GitHub.

En la siguiente tabla se explica cómo agregar compatibilidad para este enlace en cada entorno de desarrollo.

Entorno de desarrollo Para agregar compatibilidad en
Functions 1.x
Desarrollo local: biblioteca de clases C# Instalación del paquete
Desarrollo local: script de C#, JavaScript, F# Automático
Desarrollo con Portal Automático

Entrada

El enlace de entrada de Mobile Apps carga un registro desde un punto de conexión de tabla móvil y lo pasa a la función. En funciones de C# y F#, los cambios realizados en el registro se enviarán automáticamente a la tabla una vez que la función se complete correctamente.

Ejemplo de entrada

Vea el ejemplo específico del lenguaje:

En el ejemplo siguiente se muestra un enlace de entrada de Mobile Apps en un archivo de function.json y una función de script de C# que usa el enlace. Un mensaje de cola que tiene un identificador de registro desencadena la función. La función lee el registro especificado y modifica su propiedad Text.

Estos son los datos de enlace del archivo 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"
    }
]
}

En la sección de configuración se explican estas propiedades.

Este es el código de script de C#:

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

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

Entrada: atributos

En las bibliotecas de clases de C#, use el atributo MobileTable.

Para información sobre las propiedades de atributo que puede configurar, consulte la sección de configuración siguiente.

Entrada: configuración

En la siguiente tabla se explican las propiedades de configuración de enlace que se definen en el archivo function.json y el atributo MobileTable.

Propiedad de function.json Propiedad de atributo Descripción
type N/D Se debe establecer en "mobileTable"
direction N/D Se debe establecer en "in"
name N/D Nombre del parámetro de entrada en la firma de la función.
tableName TableName Nombre de la tabla de datos de la aplicación móvil
id Id El identificador único del registro que se va a recuperar. Puede ser estático o se puede basar en el desencadenador que invoca la función. Por ejemplo, si usa un desencadenador de cola para la función, "id": "{queueTrigger}" usa el valor de cadena del mensaje de cola como el identificador de registro que se va a recuperar.
connection Connection El nombre de una configuración de aplicación que tiene la dirección URL de la aplicación móvil. La función utiliza esta dirección URL para construir las operaciones de REST necesarias en su aplicación móvil. Cree una configuración de aplicación en la aplicación de función que contiene la dirección URL de la aplicación móvil y, luego, especifique el nombre de la configuración de la aplicación en la propiedad connection del enlace de entrada. La dirección URL tiene el aspecto siguiente: https://<appname>.azurewebsites.net.
apiKey ApiKey El nombre de la configuración de una aplicación que tiene la clave de API de la aplicación móvil. Proporcione la clave de API si implementa una clave de API en la aplicación móvil Node.js o implementa una clave de API en la aplicación móvil .NET. Para proporcionar la clave, cree una configuración de la aplicación en la aplicación de la función que contiene la clave de API y, luego, agregue la propiedad apiKey en el enlace de entrada con el nombre de la configuración de la aplicación.

Cuando esté desarrollando localmente, agregue la configuración de la aplicación en el archivo local.settings.json de la colección Values.

Importante

No comparta la clave de API con los clientes de aplicación móvil. Solo se debe distribuir de forma segura a los clientes del servicio, como Azure Functions. Azure Functions almacena la información de conexión y las claves de API como configuración de la aplicación de forma que no se protegen en el repositorio de control de código fuente. Esto protege la información confidencial.

Uso de entradas

En las funciones de C#, cuando se encuentra el registro con el identificador especificado, se pasa al parámetro JObject con nombre. Si el registro no se encuentra, el valor del parámetro es null.

En las funciones de JavaScript, el registro se pasa en el objeto context.bindings.<name>. Si el registro no se encuentra, el valor del parámetro es null.

En funciones de C# y F#, los cambios realizados en el registro de entrada (parámetro de entrada) se devuelven automáticamente a la tabla cuando la función termina correctamente. No se puede modificar un registro en las funciones de JavaScript.

Output

Use el enlace de salida de Mobile Apps para escribir un registro nuevo en una tabla de Mobile Apps.

Salida: ejemplo

En el ejemplo siguiente se muestra una función de C# que se desencadena mediante un mensaje de cola y crea un registro en una tabla de aplicación móvil.

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

Salida: atributos

En las bibliotecas de clases de C#, use el atributo MobileTable.

Para información sobre las propiedades de atributo que puede configurar, consulte Salida: configuración. A continuación, se muestra un ejemplo del atributo MobileTable en una signatura de método:

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

Salida: configuración

En la siguiente tabla se explican las propiedades de configuración de enlace que se definen en el archivo function.json y el atributo MobileTable.

Propiedad de function.json Propiedad de atributo Descripción
type N/D Se debe establecer en "mobileTable"
direction N/D Debe establecerse en "out"
name N/D Nombre del parámetro de salida en la firma de la función.
tableName TableName Nombre de la tabla de datos de la aplicación móvil
connection MobileAppUriSetting El nombre de una configuración de aplicación que tiene la dirección URL de la aplicación móvil. La función utiliza esta dirección URL para construir las operaciones de REST necesarias en su aplicación móvil. Cree una configuración de aplicación en la aplicación de función que contiene la dirección URL de la aplicación móvil y, luego, especifique el nombre de la configuración de la aplicación en la propiedad connection del enlace de entrada. La dirección URL tiene el aspecto siguiente: https://<appname>.azurewebsites.net.
apiKey ApiKeySetting El nombre de la configuración de una aplicación que tiene la clave de API de la aplicación móvil. Proporcione la clave de API si implementa una clave de API en el back-end de aplicación móvil de Node.js o implementa una clave de API en el back-end de aplicación móvil de .NET. Para proporcionar la clave, cree una configuración de la aplicación en la aplicación de la función que contiene la clave de API y, luego, agregue la propiedad apiKey en el enlace de entrada con el nombre de la configuración de la aplicación.

Cuando esté desarrollando localmente, agregue la configuración de la aplicación en el archivo local.settings.json de la colección Values.

Importante

No comparta la clave de API con los clientes de aplicación móvil. Solo se debe distribuir de forma segura a los clientes del servicio, como Azure Functions. Azure Functions almacena la información de conexión y las claves de API como configuración de la aplicación de forma que no se protegen en el repositorio de control de código fuente. Esto protege la información confidencial.

Uso de salidas

En funciones de script de C#, use un parámetro de salida con nombre de tipo out object para acceder al registro de salida. En las bibliotecas de clases de C#, el atributo MobileTable se puede usar con cualquiera de los tipos siguientes:

  • ICollector<T> o IAsyncCollector<T>, donde T es JObject o cualquier tipo con una propiedad public string Id.
  • out JObject
  • out T o out T[], donde T es cualquier tipo con una propiedad public string Id.

En las funciones de Node.js, use context.bindings.<name> para acceder al registro de salida.

Pasos siguientes