Ereignisse
Erstellen von KI-Apps und Agents
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
Dieser Artikel erläutert das Senden von Textnachrichten mithilfe von Twilio-Bindungen in Azure Functions. 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:
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.
Ab Functions Version 2.x ist die HTTP-Erweiterung Teil eines Erweiterungspakets, das in Ihrer Projektdatei „host.json“ angegeben wird. Weitere Informationen finden Sie unter Erweiterungspakete.
Diese Version der Erweiterung sollte bereits für Ihre Funktions-App mit dem Erweiterungspaket, Version 2.x, verfügbar sein.
Sofern nicht anders angegeben, gelten diese Beispiele speziell für die Version 2.x und höhere Versionen der Functions-Runtime.
Eine C#-Funktion kann mit einem der folgenden C#-Modi erstellt werden:
Wichtig
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 Datei function.json sowie eine 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.
Im folgenden Beispiel wird gezeigt, wie Sie eine SMS-Nachricht unter Verwendung der Ausgabebindung senden, wie im folgenden Code (function.json) definiert.
{
"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")
Im folgenden Beispiel wird gezeigt, wie Sie die Anmerkung TwilioSmsOutput 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();
}
}
Sowohl von C#-Bibliotheken des Typs In-Process als auch des Typs Isolierter Workerprozess werden Attribute verwendet, um die Ausgabebindung zu definieren. 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.
Mit der Anmerkung TwilioSmsOutput können Sie die Twilio-Ausgabebindung deklarativ konfigurieren, indem Sie die folgenden Konfigurationswerte angeben:
+
Platzieren Sie die Anmerkung TwilioSmsOutput in einem Parameter vom Typ OutputBinding<T>
. T
kann hierbei ein beliebiger nativer Java-Typ (beispielsweise int
, String
oder byte[]
) oder ein POJO-Typ sein.
Die folgende Tabelle gibt Aufschluss über die Bindungskonfigurationseigenschaften, die Sie in der Datei function.json festlegen (unterscheidet sich je nach Runtimeversion):
Eigenschaft von „function.json“ | BESCHREIBUNG |
---|---|
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 die Entwicklung lokal ausführen, fügen Sie Ihre Anwendungseinstellungen in der Datei local.settings.json in der Values
-Sammlung hinzu.
Ereignisse
Erstellen von KI-Apps und Agents
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrieren