Ligação Twilio para funções azureTwilio binding for Azure Functions

Este artigo explica como enviar mensagens de texto utilizando encadernações Twilio em Funções Azure.This article explains how to send text messages by using Twilio bindings in Azure Functions. A Azure Functions suporta encadernações de saída para o Twilio.Azure Functions supports output bindings for Twilio.

Esta é uma informação de referência para desenvolvedores de Funções Azure.This is reference information for Azure Functions developers. Se for novo nas Funções Azure, comece com os seguintes recursos:If you're new to Azure Functions, start with the following resources:

Pacotes - Funções 1.xPackages - Functions 1.x

As encadernações Twilio são fornecidas no pacote Microsoft.Azure.WebJobs.Extensions.Twilio NuGet, versão 1.x.The Twilio bindings are provided in the Microsoft.Azure.WebJobs.Extensions.Twilio NuGet package, version 1.x. O código fonte para o pacote está no repositório Azur-webjobs-sdk GitHub.Source code for the package is in the azure-webjobs-sdk GitHub repository.

A tabela que se segue diz como adicionar apoio a esta encadernação em cada ambiente de desenvolvimento.The following table tells how to add support for this binding in each development environment.

Ambiente de programaçãoDevelopment environment Para adicionar apoio emTo add support in
Funções 1.xFunctions 1.x
Desenvolvimento local - Biblioteca de classe C#Local development - C# class library Instale o pacoteInstall the package
Desenvolvimento local - C# script, JavaScript, F #Local development - C# script, JavaScript, F# AutomáticoAutomatic
Desenvolvimento do portalPortal development AutomáticoAutomatic

Pacotes - Funções 2.x e superioresPackages - Functions 2.x and higher

As encadernações Twilio são fornecidas no pacote Microsoft.Azure.WebJobs.Extensions.Twilio NuGet, versão 3.x.The Twilio bindings are provided in the Microsoft.Azure.WebJobs.Extensions.Twilio NuGet package, version 3.x. O código fonte para o pacote está no repositório Azur-webjobs-sdk GitHub.Source code for the package is in the azure-webjobs-sdk GitHub repository.

Adicione suporte no ambiente de desenvolvimento preferido usando os seguintes métodos.Add support in you preferred development environment using the following methods.

Ambiente de programaçãoDevelopment environment Tipo de aplicaçãoApplication type Para adicionar suporteTo add support
Visual StudioVisual Studio Biblioteca de classe C#C# class library Instale o pacote NuGetInstall the NuGet package
Visual Studio CodeVisual Studio Code Baseado em ferramentas nuclearesBased on core tools Registe o pacote de extensãoRegister the extension bundle

Recomenda-se a instalação da extensão Ferramentas Azure.Installing the Azure Tools extension is recommended.
Qualquer outro editor/IDEAny other editor/IDE Baseado em ferramentas nuclearesBased on core tools Registe o pacote de extensãoRegister the extension bundle
Portal do AzureAzure Portal Online apenas no portalOnline only in portal Instala ao adicionar uma ligaçãoInstalls when adding a binding

Consulte a Atualização das extensões para atualizar as extensões de ligação existentes sem ter de voltar a publicar a sua aplicação de funções.See Update your extensions to update existing binding extensions without having to republish your function app.

Exemplo - Funções 2.x e superiorExample - Functions 2.x and higher

O exemplo seguinte mostra uma função C# que envia uma mensagem de texto quando desencadeada por uma mensagem de fila.The following example shows a C# function that sends a text message when triggered by a queue message.

using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json.Linq;
using Twilio.Rest.Api.V2010.Account;
using Twilio.Types;
namespace TwilioQueueOutput
{
    public static class QueueTwilio
    {
        [FunctionName("QueueTwilio")]
        [return: TwilioSms(AccountSidSetting = "TwilioAccountSid", AuthTokenSetting = "TwilioAuthToken", From = "+1425XXXXXXX")]
        public static CreateMessageOptions Run(
        [QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] JObject order,
        ILogger log)
        {
            log.LogInformation($"C# Queue trigger function processed: {order}");

            var message = new CreateMessageOptions(new PhoneNumber(order["mobileNumber"].ToString()))
            {
                Body = $"Hello {order["name"]}, thanks for your order!"
            };

            return message;
        }
    }
}

Este exemplo TwilioSms utiliza o atributo com o valor de retorno do método.This example uses the TwilioSms attribute with the method return value. Uma alternativa é usar o out CreateMessageOptions atributo com ICollector<CreateMessageOptions> IAsyncCollector<CreateMessageOptions> um parâmetro ou um parâmetro.An alternative is to use the attribute with an out CreateMessageOptions parameter or an ICollector<CreateMessageOptions> or IAsyncCollector<CreateMessageOptions> parameter.

Atributos e anotaçõesAttributes and annotations

Nas bibliotecas da classe C#,use o atributo TwilioSms.In C# class libraries, use the TwilioSms attribute.

Para obter informações sobre propriedades de atributo que possa configurar, consulte Configuração.For information about attribute properties that you can configure, see Configuration. Aqui está TwilioSms um exemplo de atributo numa assinatura de método:Here's a TwilioSms attribute example in a method signature:

[FunctionName("QueueTwilio")]
[return: TwilioSms(AccountSidSetting = "TwilioAccountSid", AuthTokenSetting = "TwilioAuthToken", From = "+1425XXXXXXX")]
public static CreateMessageOptions Run(
[QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] JObject order, ILogger log)
{
    ...
}

Para um exemplo completo, consulte c# exemplo.For a complete example, see C# example.

ConfiguraçãoConfiguration

A tabela a seguir explica as propriedades de configuração de ligação que definiu no ficheiro função.json e no TwilioSms atributo.The following table explains the binding configuration properties that you set in the function.json file and the TwilioSms attribute.

v1 função.json propriedadev1 function.json property v2 fun.json propriedadev2 function.json property Propriedade de atributoAttribute property DescriçãoDescription
tipotype tipotype deve ser twilioSmsdefinido para .must be set to twilioSms.
direçãodirection direçãodirection deve ser outdefinido para .must be set to out.
nomename nomename Nome variável utilizado no código de função para a mensagem de texto SMS Twilio.Variable name used in function code for the Twilio SMS text message.
contaSidaccountSid contaSidSettingaccountSidSetting AccountSidSettingAccountSidSetting Este valor deve ser definido para o nome de uma definiçãoTwilioAccountSidde aplicação que detenha o seu Sid de Conta Twilio ().This value must be set to the name of an app setting that holds your Twilio Account Sid (TwilioAccountSid). Se não for definido, o nome de definição de aplicação padrão é "AzureWebJobsTwilioAccountSid".If not set, the default app setting name is "AzureWebJobsTwilioAccountSid".
authTokenauthToken authTokenSettingauthTokenSetting AuthTokenSettingAuthTokenSetting Este valor deve ser definido para o nome de uma definição deTwilioAccountAuthTokenaplicação que detenha o seu símbolo de autenticação Twilio ( ).This value must be set to the name of an app setting that holds your Twilio authentication token (TwilioAccountAuthToken). Se não for definido, o nome de definição de aplicação padrão é "AzureWebJobsTwilioAuthToken".If not set, the default app setting name is "AzureWebJobsTwilioAuthToken".
parato N/A - especificar em códigoN/A - specify in code ParaTo Este valor é definido para o número de telefone para o que o texto SMS é enviado.This value is set to the phone number that the SMS text is sent to.
Defrom Defrom FromFrom Este valor é definido para o número de telefone de que o texto SMS é enviado.This value is set to the phone number that the SMS text is sent from.
corpobody corpobody CorpoBody Este valor pode ser usado para codificar duramente a mensagem de texto SMS se não precisar de o definir de forma dinâmica no código para a sua função.This value can be used to hard code the SMS text message if you don't need to set it dynamically in the code for your function.

Quando está a desenvolver-se localmente, as definições de aplicativos vão para o ficheiro local.settings.json.When you're developing locally, app settings go into the local.settings.json file.

Passos seguintesNext steps