Associações de Aplicativos Móveis para o Azure Functions

Observação

Associações de aplicativos móveis do Azure só estão disponíveis para o Azure Functions 1.x. Eles não têm suporte no Azure Functions 2.x e superior.

Este artigo explica como trabalhar com associações dos Aplicativos Móveis do Azure no Azure Functions. O Azure Functions dá suporte a associações de entrada e saída para os Aplicativos Móveis.

As associações dos Aplicativos Móveis permitem ler e atualizar tabelas de dados em aplicativos móveis.

Pacotes - Functions 1. x

As ligações de aplicativos para dispositivos móveis são fornecidas no pacote do Microsoft.Azure.WebJobs.Extensions.MobileApps NuGet, versão 1.x. O código-fonte do pacote está no repositório GitHub azure-webjobs-sdk-extensions.

A tabela a seguir informa como adicionar suporte para essa associação em cada ambiente de desenvolvimento.

Ambiente de desenvolvimento Para adicionar suporte em
Funções 1.x
Desenvolvimento local - biblioteca de classes do C# Instalar o pacote
Desenvolvimento local - Script do C#, JavaScript, F# Automática
Desenvolvimento de portal Automática

Entrada

A associação de entrada dos Aplicativos Móveis carrega um registro de um ponto de extremidade de tabela móvel e o passa para a função. Em funções do C# ou do F#, todas as alterações feitas no registro são enviadas novamente de forma automática para a tabela quando a função é fechada com êxito.

Entrada - exemplo

Consulte o exemplo específico a um idioma:

O exemplo a seguir mostra uma associação de entrada dos Aplicativos Móveis em um arquivo function.json e uma função script C# que usa a associação. A função é disparada por uma mensagem da fila que possui um identificador de registro. A função lê o registro especificado e modifica sua propriedade Text.

Aqui estão os dados de associação no arquivo 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"
    }
]
}

A seção configuração explica essas propriedades.

Aqui está o código de script do 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

Em bibliotecas de classes do C#, use o atributo MobileTable.

Para saber informações sobre propriedades de atributo que podem ser configuradas, consulte a seção de configuração a seguir.

Entrada - configuração

A tabela a seguir explica as propriedades de configuração de associação que você define no arquivo function.json e no atributo MobileTable.

Propriedade function.json Propriedade de atributo Descrição
tipo n/d Deve ser definido como "mobileTable"
direction n/d Deve ser definido como "in"
name n/d Nome do parâmetro de entrada na assinatura de função.
tableName TableName Nome da tabela de dados do aplicativo móvel
id Id O identificador exclusivo do registro a ser recuperado. Pode ser estático ou se basear no gatilho que invoca a função. Por exemplo, se você usar um gatilho da fila para sua função, o "id": "{queueTrigger}" usará o valor de cadeia de caracteres da mensagem da fila como a ID de registro a ser recuperada.
connection Conexão O nome de uma configuração de aplicativo que tem a URL do aplicativo móvel. A função usa essa URL para construir as operações REST necessárias no aplicativo móvel. Crie uma configuração de aplicativo no aplicativo de funções que contenha a URL do aplicativo móvel e especifique o nome da configuração do aplicativo na propriedade connection na associação de entrada. A URL é semelhante a https://<appname>.azurewebsites.net.
apiKey ApiKey O nome de uma configuração de aplicativo que tem a chave de API do seu aplicativo móvel. Forneça a chave de API se você implementar uma chave de API no aplicativo móvel do Node.js ou se implementar uma chave de API no aplicativo móvel do .NET. Para fornecer a chave, crie uma configuração de aplicativo no aplicativo de funções que contém a chave de API e adicione a propriedade apiKey na associação de entrada ao nome da configuração do aplicativo.

Quando você estiver desenvolvendo localmente, adicione as configurações do aplicativo no arquivo local.settings.json na coleção Values.

Importante

Não compartilhe a chave de API com seus clientes de aplicativo móvel. Ela só deve ser distribuída com segurança aos clientes do lado do serviço, como o Azure Functions. O Azure Functions armazena suas informações de conexão e as chaves de API como configurações de aplicativo, para que elas não sejam inseridas no repositório de controle do código-fonte. Isso protege as informações confidenciais.

Entrada - uso

Em funções do C#, quando o registro com a ID especificada for encontrado, ele é passado para o parâmetro chamado JObject. Quando o registro não é encontrado, o valor do parâmetro é null.

Em funções do JavaScript, o registro é passado para o objeto context.bindings.<name>. Quando o registro não é encontrado, o valor do parâmetro é null.

Nas funções do C# ou do F#, todas as alterações feitas no registro de entrada (parâmetro de entrada) são enviadas novamente de forma automática para a tabela quando a função é fechada com êxito. Não é possível modificar um registro em funções do JavaScript.

Saída

Use a associação de saída dos Aplicativos Móveis para gravar um novo registro em um ponto de extremidade da tabela dos Aplicativos Móveis.

Saída - exemplo

O exemplo a seguir mostra uma função C# que é disparada por uma mensagem da fila e cria um registro em uma tabela do aplicativo móvel.

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

Saída - atributos

Em bibliotecas de classes do C#, use o atributo MobileTable.

Para saber informações sobre propriedades de atributo que podem ser configuradas, consulte Saída - configuração. Aqui está um exemplo de atributo MobileTable em uma assinatura 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)
{
    ...
}

Saída - configuração

A tabela a seguir explica as propriedades de configuração de associação que você define no arquivo function.json e no atributo MobileTable.

Propriedade function.json Propriedade de atributo Descrição
tipo n/d Deve ser definido como "mobileTable"
direction n/d Deve ser definido como "out"
name n/d Nome do parâmetro de saída na assinatura de função.
tableName TableName Nome da tabela de dados do aplicativo móvel
connection MobileAppUriSetting O nome de uma configuração de aplicativo que tem a URL do aplicativo móvel. A função usa essa URL para construir as operações REST necessárias no aplicativo móvel. Crie uma configuração de aplicativo no aplicativo de funções que contenha a URL do aplicativo móvel e especifique o nome da configuração do aplicativo na propriedade connection na associação de entrada. A URL é semelhante a https://<appname>.azurewebsites.net.
apiKey ApiKeySetting O nome de uma configuração de aplicativo que tem a chave de API do seu aplicativo móvel. Forneça a chave de API se implementar uma chave de API no back-end do aplicativo móvel do Node.js ou se implementar uma chave de API no back-end do aplicativo móvel do .NET. Para fornecer a chave, crie uma configuração de aplicativo no aplicativo de funções que contém a chave de API e adicione a propriedade apiKey na associação de entrada ao nome da configuração do aplicativo.

Quando você estiver desenvolvendo localmente, adicione as configurações do aplicativo no arquivo local.settings.json na coleção Values.

Importante

Não compartilhe a chave de API com seus clientes de aplicativo móvel. Ela só deve ser distribuída com segurança aos clientes do lado do serviço, como o Azure Functions. O Azure Functions armazena suas informações de conexão e as chaves de API como configurações de aplicativo, para que elas não sejam inseridas no repositório de controle do código-fonte. Isso protege as informações confidenciais.

Saída - uso

Nas funções do script C#, use um parâmetro de saída nomeado do tipo out object para acessar o registro de saída. Em bibliotecas de classes C#, o atributo MobileTable pode ser usado com qualquer um dos seguintes tipos:

  • ICollector<T> ou IAsyncCollector<T>, onde T é JObject ou qualquer tipo com uma propriedade public string Id.
  • out JObject
  • out T ou out T[], onde T é qualquer Tipo com uma propriedade public string Id.

Nas funções do Node.js, use context.bindings.<name> para acessar o registro de saída.

Próximas etapas