Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird erläutert, wie Textnachrichten mithilfe von Twilio-Bindungen in Azure Functions gesendet werden. Azure Functions unterstützt Ausgabebindungen für Twilio.
Dies sind Referenzinformationen für Azure Functions-Entwickler. Falls Sie mit Azure Functions noch nicht vertraut sind, beginnen Sie mit den folgenden Ressourcen:
Referenzen für C#-Entwickler:
Installieren der Erweiterung
Das NuGet-Erweiterungspaket, das Sie installieren, hängt vom C#-Modus ab, den Sie in Ihrer Funktions-App verwenden:
Funktionen werden in einem isolierten C#-Workerprozess ausgeführt. Weitere Informationen finden Sie im Leitfaden zum Ausführen von Azure Functions (C#) in einem isolierten Workerprozess.
Die Funktionalität der Erweiterung ist abhängig von der Erweiterungsversion unterschiedlich:
Twilio wird derzeit für Apps in einem isolierten Workerprozess nicht unterstützt.
Installieren des Bundles
Um diese Bindungserweiterung in Ihrer App verwenden zu können, stellen Sie sicher, dass die host.json Datei im Stammverzeichnis Ihres Projekts diesen extensionBundle Verweis enthält:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
In diesem Beispiel weist der version Wert des [4.0.0, 5.0.0) Funktionenhosts an, eine Bundleversion zu verwenden, die mindestens 4.0.0 aber kleiner ist als 5.0.0, die alle potenziellen Versionen von 4.x enthält. Diese Notation verwaltet Ihre App effektiv auf der neuesten verfügbaren Nebenversion des v4.x-Erweiterungspakets.
Wenn möglich, sollten Sie die neueste Hauptversion des Erweiterungspakets verwenden und der Laufzeit erlauben, die neueste Nebenversion automatisch zu verwalten. Sie können den Inhalt des neuesten Bundles auf der Releaseseite der Erweiterungspakete anzeigen. Weitere Informationen finden Sie unter Azure Functions-Erweiterungspakete.
Example
Sofern nicht anders angegeben, gelten diese Beispiele speziell für die Version 2.x und höhere Versionen der Functions-Runtime.
Sie können eine C#-Funktion mit einem der folgenden C#-Modi erstellen:
- Isoliertes Workermodell: Kompilierte C#-Funktion, die in einem Workerprozess ausgeführt wird, der von der Runtime isoliert ist. Ein isolierter Arbeitsprozess ist erforderlich, um C#-Funktionen zu unterstützen, die auf long-term support (LTS) und nicht-LTS-Versionen für .NET und .NET Framework ausgeführt werden.
- In-Process-Modell: Kompilierte C#-Funktion, die im gleichen Prozess wie die Azure Functions-Laufzeit ausgeführt wird.
- C#-Skript: Wird hauptsächlich verwendet, wenn Sie C#-Funktionen im Azure-Portal erstellen.
Important
Die Unterstützung für das In-Process-Modell endet am 10. November 2026. Es wird dringend empfohlen, Ihre Apps zum isolierten Workermodell zu migrieren, um den vollständigen Support zu ermöglichen.
Für Funktions-Apps, die in einem isolierten Workerprozess ausgeführt werden, wird die Twilio-Bindung derzeit nicht unterstützt.
Das folgende Beispiel zeigt eine Twilio-Ausgabebindung in einer function.json Datei und einer JavaScript-Funktion , die die Bindung verwendet.
Die Bindungsdaten in der Datei function.json:
Beispiel für „function.json“:
{
"type": "twilioSms",
"name": "message",
"accountSidSetting": "TwilioAccountSid",
"authTokenSetting": "TwilioAuthToken",
"from": "+1425XXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
Der JavaScript-Code sieht wie folgt aus:
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
};
};
Vollständige PowerShell-Beispiele sind derzeit für SendGrid-Bindungen nicht verfügbar.
Das folgende Beispiel zeigt, wie Eine SMS-Nachricht mithilfe der Ausgabebindung gesendet wird, wie in der folgenden function.jsondefiniert.
{
"type": "twilioSms",
"name": "twilioMessage",
"accountSidSetting": "TwilioAccountSID",
"authTokenSetting": "TwilioAuthToken",
"from": "+1XXXXXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
Sie können ein serialisiertes JSON-Objekt an den Parameter func.Out übergeben, um die SMS-Nachricht zu senden.
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")
Das folgende Beispiel zeigt, wie Sie die TwilioSmsOutput-Anmerkung verwenden, um eine SMS-Nachricht zu senden. In der Attributdefinition müssen Werte für to, from und body angegeben werden, auch wenn Sie sie programmgesteuert überschreiben.
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
Sowohl prozessinterne als auch isolierte Arbeitsprozess-C #-Bibliotheken verwenden Attribute zum Definieren der Ausgabebindung. Vom C#-Skript wird stattdessen die Konfigurationsdatei function.json verwendet.
Für Funktions-Apps, die in einem isolierten Workerprozess ausgeführt werden, wird die Twilio-Bindung derzeit nicht unterstützt.
Annotations
Mit der TwilioSmsOutput-Anmerkung können Sie die Twilio-Ausgabebindung deklarativ konfigurieren, indem Sie die folgenden Konfigurationswerte angeben:
+
Platzieren Sie die TwilioSmsOutput-Anmerkung auf einem OutputBinding<T> Parameter, wobei T es sich um einen systemeigenen Java-Typ wie int, , String, byte[]oder einen POJO-Typ handeln kann.
Configuration
In der folgenden Tabelle werden die Bindungskonfigurationseigenschaften erläutert, die Sie in der function.json-Datei festlegen, die sich je nach Laufzeitversion unterscheidet:
| Eigenschaft von „function.json“ | Description |
|---|---|
| type | auf twilioSms festgelegt werden muss. |
| direction | auf out festgelegt werden muss. |
| name | Variablenname, der im Funktionscode für die Twilio-SMS-Textnachricht verwendet wird |
| accountSidSetting | Dieser Wert muss auf den Namen einer App-Einstellung festgelegt werden, die Ihre Twilio-Konto-SID (TwilioAccountSid) enthält. Wenn sie nicht festgelegt wird, lautet der Standardname der App-Einstellung AzureWebJobsTwilioAccountSid. |
| authTokenSetting | Dieser Wert muss auf den Namen einer App-Einstellung festgelegt werden, die Ihr Twilio-Authentifizierungstoken (TwilioAccountAuthToken) enthält. Wenn sie nicht festgelegt wird, lautet der Standardname der App-Einstellung AzureWebJobsTwilioAuthToken. |
| from | Dieser Wert wird auf die Telefonnummer festgelegt, von der die SMS-Textnachricht gesendet wird. |
| body | Dieser Wert kann verwendet werden, um die SMS-Textnachricht als vordefinierten Code festzulegen und nicht dynamisch im Code für die Funktion. |
Legen Sie den Wert to in Version 2.x im Code fest.
Wenn Sie lokal entwickeln, fügen Sie Ihre Anwendungseinstellungen in der local.settings.json Datei in der Values Sammlung hinzu.