Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du skickar textmeddelanden med hjälp av Twilio-bindningar i Azure Functions. Azure Functions stöder utdatabindningar för Twilio.
Det här är referensinformation för Azure Functions-utvecklare. Om du inte har använt Azure Functions tidigare börjar du med följande resurser:
C#-utvecklarreferenser:
Installera tillägget
Vilket NuGet-tilläggspaket du installerar beror på vilket C#-läge du använder i funktionsappen:
Funktioner körs i en isolerad C#-arbetsprocess. Mer information finns i Guide för att köra C# Azure Functions i en isolerad arbetsprocess.
Funktionerna i tillägget varierar beroende på tilläggsversionen:
Det finns för närvarande inget stöd för Twilio för en isolerad arbetsprocessapp.
Installera paket
För att kunna använda det här bindningstillägget i din app kontrollerar du att denhost.json filen i projektets rot innehåller den här extensionBundle referensen:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
I det här exemplet version instruerar värdet [4.0.0, 5.0.0) för Functions-värden att använda en paketversion som är minst 4.0.0 men mindre än 5.0.0, som innehåller alla potentiella versioner av 4.x. Den här notationen underhåller appen på den senaste tillgängliga delversionen av v4.x-tilläggspaketet.
När det är möjligt bör du använda den senaste huvudversionen av tilläggspaketet och låta körningen automatiskt behålla den senaste delversionen. Du kan visa innehållet i det senaste paketet på versionssidan för tilläggspaket. Mer information finns i Azure Functions-tilläggspaket.
Exempel
Om inget annat anges är dessa exempel specifika för version 2.x och senare version av Functions-körningen.
Du kan skapa en C#-funktion med något av följande C#-lägen:
- Isolerad arbetsmodell: Kompilerad C#-funktion som körs i en arbetsprocess som är isolerad från körningen. En isolerad arbetsprocess krävs för att stödja C#-funktioner som körs på långsiktig support (LTS) och icke-LTS-versioner för .NET och .NET Framework.
- Processmodell: Kompilerad C#-funktion som körs i samma process som Azure Functions-körningen.
- C#-skript: Används främst när du skapar C#-funktioner i Azure Portal.
Viktigt!
Supporten upphör för den pågående modellen den 10 november 2026. Vi rekommenderar starkt att du migrerar dina appar till den isolerade arbetsmodellen för fullt stöd.
Twilio-bindningen stöds för närvarande inte för en funktionsapp som körs i en isolerad arbetsprocess.
I följande exempel visas en Twilio-utdatabindning i en function.json-fil och en JavaScript-funktion som använder bindningen.
Här är bindningsdata i filen function.json :
Exempel function.json:
{
"type": "twilioSms",
"name": "message",
"accountSidSetting": "TwilioAccountSid",
"authTokenSetting": "TwilioAuthToken",
"from": "+1425XXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
Här är JavaScript-koden:
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
};
};
Fullständiga PowerShell-exempel är för närvarande inte tillgängliga för SendGrid-bindningar.
I följande exempel visas hur du skickar ett SMS med hjälp av utdatabindningen enligt definitionen i följande function.json.
{
"type": "twilioSms",
"name": "twilioMessage",
"accountSidSetting": "TwilioAccountSID",
"authTokenSetting": "TwilioAuthToken",
"from": "+1XXXXXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
Du kan skicka ett serialiserat JSON-objekt till parametern func.Out för att skicka SMS-meddelandet.
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")
I följande exempel visas hur du använder TwilioSmsOutput-kommentaren för att skicka ett SMS. Värden för to, fromoch body krävs i attributdefinitionen även om du åsidosätter dem programmatiskt.
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();
}
}
Attribut
C#-bibliotek i både processprocess och isolerad arbetsprocess använder attribut för att definiera utdatabindningen. C#-skriptet använder i stället en function.json konfigurationsfil.
Twilio-bindningen stöds för närvarande inte för en funktionsapp som körs i en isolerad arbetsprocess.
Kommentarer
Med TwilioSmsOutput-kommentaren kan du deklarativt konfigurera Twilio-utdatabindningen genom att ange följande konfigurationsvärden:
+
Placera TwilioSmsOutput-kommentaren på en OutputBinding<T> parameter, där T kan vara valfri inbyggd Java-typ, till exempel int, String, byte[]eller en POJO-typ.
Konfiguration
I följande tabell förklaras de bindningskonfigurationsegenskaper som du anger i function.json-filen, som skiljer sig beroende på körningsversion:
| function.json egenskap | beskrivning |
|---|---|
| typ | måste anges till twilioSms. |
| riktning | måste anges till out. |
| Namn | Variabelnamn som används i funktionskoden för SMS-meddelandet Twilio. |
| accountSidSetting | Det här värdet måste anges till namnet på en appinställning som innehåller ditt Twilio-konto-sid (TwilioAccountSid). När den inte har angetts är AzureWebJobsTwilioAccountSidstandardnamnet för appinställningen . |
| authTokenSetting | Det här värdet måste anges till namnet på en appinställning som innehåller din Twilio-autentiseringstoken (TwilioAccountAuthToken). När den inte har angetts är AzureWebJobsTwilioAuthTokenstandardnamnet för appinställningen . |
| från | Det här värdet är inställt på det telefonnummer som SMS-texten skickas från. |
| brödtext | Det här värdet kan användas för att hårdkoda SMS-meddelandet om du inte behöver ange det dynamiskt i koden för din funktion. |
I version 2.x anger to du värdet i koden.
När du utvecklar lokalt lägger du till dina programinställningar i den local.settings.json filen i Values samlingen.