Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Cet article explique comment envoyer des messages texte à l’aide de liaisons Twilio dans Azure Functions. Azure Functions prend en charge les liaisons de sortie pour Twilio.
Il s’agit des informations de référence pour les développeurs Azure Functions. Si vous ne connaissez pas bien Azure Functions, commencez par consulter les ressources suivantes :
Références pour les développeurs C# :
Installer l’extension
Le package NuGet de l’extension que vous installez dépend du mode C# que vous utilisez dans votre application de fonction :
Les fonctions s’exécutent dans un processus de travail C# isolé. Pour en savoir plus, consultez Guide pour l’exécution d’Azure Functions C# dans un processus Worker isolé.
La fonctionnalité de l’extension varie en fonction de la version de l’extension :
Il n’existe actuellement aucune prise en charge de Twilio pour une application de processus Worker isolé.
Installer l’offre groupée
Pour pouvoir utiliser cette extension de liaison dans votre application, assurez-vous que le fichier host.json à la racine de votre projet contient cette extensionBundle référence :
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Dans cet exemple, la version valeur de [4.0.0, 5.0.0) l’hôte Functions indique à l’hôte Functions d’utiliser une version groupée qui est au moins 4.0.0 mais inférieure à , qui inclut toutes les versions potentielles 5.0.0de 4.x. Cette notation gère efficacement votre application sur la dernière version mineure disponible de l’offre groupée d’extensions v4.x.
Si possible, vous devez utiliser la dernière version principale de l’offre groupée d’extensions et autoriser le runtime à gérer automatiquement la dernière version mineure. Vous pouvez afficher le contenu de la dernière offre groupée sur la page de publication des offres groupées d’extensions. Pour plus d’informations, consultez les bundles d’extensions Azure Functions.
Example
Sauf indication contraire, ces exemples sont spécifiques à la version 2.x et aux versions ultérieures du runtime Functions.
Vous pouvez créer une fonction C# à l’aide de l’un des modes C# suivants :
- Modèle worker isolé : fonction C# compilée exécutée dans un processus worker isolé du runtime. Un processus de travail isolé est nécessaire pour prendre en charge les fonctions C# s’exécutant sur la prise en charge à long terme (LTS) et les versions non LTS pour .NET et .NET Framework.
- Modèle in-process : fonction C# compilée qui s’exécute dans le même processus que le runtime Azure Functions.
- Script C# : utilisé principalement lorsque vous créez des fonctions C# dans le portail Azure.
Important
La prise en charge du modèle in-process prendra fin le 10 novembre 2026. Pour continuer à bénéficier d’une prise en charge complète, nous vous recommandons vivement de migrer vos applications vers le modèle worker isolé.
La liaison Twilio n’est actuellement pas prise en charge pour une application de fonction qui s’exécute dans un processus Worker isolé.
L’exemple suivant montre une liaison de sortie Twilio dans un fichier function.json et une fonction JavaScript qui utilise la liaison.
Voici les données de liaison dans le fichier function.json :
Exemple function.json:
{
"type": "twilioSms",
"name": "message",
"accountSidSetting": "TwilioAccountSid",
"authTokenSetting": "TwilioAuthToken",
"from": "+1425XXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
Voici le code JavaScript :
module.exports = async function (context, myQueueItem) {
context.log('Node.js queue trigger function processed work item', myQueueItem);
// In this example the queue item is a JSON string representing an order that contains the name of a
// customer and a mobile number to send text updates to.
var msg = "Hello " + myQueueItem.name + ", thank you for your order.";
// Even if you want to use a hard coded message in the binding, you must at least
// initialize the message binding.
context.bindings.message = {};
// A dynamic message can be set instead of the body in the output binding. The "To" number
// must be specified in code.
context.bindings.message = {
body : msg,
to : myQueueItem.mobileNumber
};
};
Aucun exemple PowerShell complet n'est actuellement disponible pour les liaisons SendGrid.
L’exemple suivant montre comment envoyer un sms à l’aide de la liaison de sortie telle que définie dans la function.jsonsuivante.
{
"type": "twilioSms",
"name": "twilioMessage",
"accountSidSetting": "TwilioAccountSID",
"authTokenSetting": "TwilioAuthToken",
"from": "+1XXXXXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
Vous pouvez transmettre un objet JSON sérialisé au paramètre func.Out pour envoyer le SMS.
import logging
import json
import azure.functions as func
def main(req: func.HttpRequest, twilioMessage: func.Out[str]) -> func.HttpResponse:
message = req.params.get('message')
to = req.params.get('to')
value = {
"body": message,
"to": to
}
twilioMessage.set(json.dumps(value))
return func.HttpResponse(f"Message sent")
L’exemple suivant montre comment utiliser l’annotation TwilioSmsOutput pour envoyer un sms. Les valeurs de to, from et body sont requises dans la définition de l’attribut même si vous les remplacez par programmation.
package com.function;
import java.util.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;
public class TwilioOutput {
@FunctionName("TwilioOutput")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = { HttpMethod.GET, HttpMethod.POST },
authLevel = AuthorizationLevel.FUNCTION) HttpRequestMessage<Optional<String>> request,
@TwilioSmsOutput(
name = "twilioMessage",
accountSid = "AzureWebJobsTwilioAccountSID",
authToken = "AzureWebJobsTwilioAuthToken",
to = "+1XXXXXXXXXX",
body = "From Azure Functions",
from = "+1XXXXXXXXXX") OutputBinding<String> twilioMessage,
final ExecutionContext context) {
String message = request.getQueryParameters().get("message");
String to = request.getQueryParameters().get("to");
StringBuilder builder = new StringBuilder()
.append("{")
.append("\"body\": \"%s\",")
.append("\"to\": \"%s\"")
.append("}");
final String body = String.format(builder.toString(), message, to);
twilioMessage.setValue(body);
return request.createResponseBuilder(HttpStatus.OK).body("Message sent").build();
}
}
Attributes
Les bibliothèques C# de processus in-process et isolé utilisent des attributs pour définir la liaison de sortie. Le script C# utilise à la place un fichier config function.json.
La liaison Twilio n’est actuellement pas prise en charge pour une application de fonction qui s’exécute dans un processus Worker isolé.
Annotations
L’annotation TwilioSmsOutput vous permet de configurer de manière déclarative la liaison de sortie Twilio en fournissant les valeurs de configuration suivantes :
+
Placez l’annotation TwilioSmsOutput sur un OutputBinding<T> paramètre, où T peut être n’importe quel type Java natif tel que int, String, byte[]ou un type POJO.
Configuration
Le tableau suivant décrit les propriétés de configuration de liaison que vous définissez dans le fichier function.json , qui diffèrent par version du runtime :
| propriété function.json | Description |
|---|---|
| type | Cette propriété doit être définie sur twilioSms. |
| direction | Cette propriété doit être définie sur out. |
| name | Nom de la variable utilisée dans le code de fonction pour le SMS Twilio. |
| accountSidSetting | Cette valeur doit être définie sur le nom d’un paramètre d’application hébergeant le SID de votre compte Twilio (TwilioAccountSid). S’il n’est pas défini, le nom par défaut de l’application est AzureWebJobsTwilioAccountSid. |
| authTokenSetting | Cette valeur doit être définie sur le nom d’un paramètre d’application hébergeant votre jeton d’authentification Twilio (TwilioAccountAuthToken). S’il n’est pas défini, le nom par défaut de l’application est AzureWebJobsTwilioAuthToken. |
| from | Cette valeur est définie sur le numéro de téléphone à partir duquel est envoyé le SMS. |
| body | Cette valeur peut être utilisée pour coder en dur le SMS, si vous n’avez pas besoin de procéder à une définition dynamique dans le code associé à votre fonction. |
Dans la version 2.x, vous définissez la valeur to dans votre code.
Lorsque vous développez localement, ajoutez les paramètres de votre application dans le fichierlocal.settings.json de la Values collection.