Vazba Twilio pro Azure Functions
Tento článek vysvětluje, jak odesílat textové zprávy pomocí vazeb Twilio ve službě Azure Functions. Azure Functions podporuje výstupní vazby pro Twilio.
Toto jsou referenční informace pro vývojáře Azure Functions. Pokud s Azure Functions začínáte, začněte s následujícími prostředky:
Referenční informace pro vývojáře jazyka C#:
Instalace rozšíření
Balíček NuGet rozšíření, který nainstalujete, závisí na režimu jazyka C#, který používáte ve své aplikaci funkcí:
Funkce se spouštějí v izolovaném pracovním procesu C#. Další informace najdete v průvodci spuštěním služby Azure Functions v jazyce C# v izolovaném pracovním procesu.
Funkce rozšíření se liší v závislosti na verzi rozšíření:
V současné době pro aplikaci izolovaného pracovního procesu neexistuje žádná podpora pro Twilio.
Instalace sady
Počínaje funkcí verze 2.x je rozšíření HTTP součástí sady rozšíření, která je zadaná v souboru projektu host.json. Další informace najdete v sadě rozšíření.
Tato verze rozšíření by už měla být dostupná pro vaši aplikaci funkcí s sadou rozšíření verze 2.x.
Příklad
Pokud není uvedeno jinak, jsou tyto příklady specifické pro verzi 2.x a novější verzi modulu runtime Functions.
Funkci jazyka C# je možné vytvořit pomocí jednoho z následujících režimů jazyka C#:
- Izolovaný model pracovního procesu: Kompilovaná funkce jazyka C#, která běží v pracovním procesu, který je izolovaný od modulu runtime. Izolovaný pracovní proces je nutný pro podporu funkcí C# spuštěných na LTS a jiných verzích než LTS .NET a rozhraní .NET Framework.
- Model v procesu: Zkompilovaná funkce jazyka C#, která běží ve stejném procesu jako modul runtime služby Functions.
- Skript jazyka C#: Používá se především při vytváření funkcí jazyka C# na webu Azure Portal.
Důležité
Podpora modelu v procesu skončí 10. listopadu 2026. Důrazně doporučujeme migrovat aplikace do izolovaného modelu pracovního procesu pro plnou podporu.
Vazba Twilio se v současné době nepodporuje pro aplikaci funkcí spuštěnou v izolovaném pracovním procesu.
Následující příklad ukazuje výstupní vazbu Twilio v souboru function.json a funkci JavaScriptu, která používá vazbu.
Tady jsou data vazby v souboru function.json :
Příklad function.json:
{
"type": "twilioSms",
"name": "message",
"accountSidSetting": "TwilioAccountSid",
"authTokenSetting": "TwilioAuthToken",
"from": "+1425XXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
Tady je javascriptový kód:
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
};
};
Kompletní příklady PowerShellu nejsou aktuálně k dispozici pro vazby SendGrid.
Následující příklad ukazuje, jak odeslat zprávu SMS pomocí výstupní vazby definované v následujícím function.json.
{
"type": "twilioSms",
"name": "twilioMessage",
"accountSidSetting": "TwilioAccountSID",
"authTokenSetting": "TwilioAuthToken",
"from": "+1XXXXXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
Serializovaný objekt JSON můžete předat parametru func.Out
pro odeslání zprávy 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")
Následující příklad ukazuje, jak pomocí poznámky TwilioSmsOutput odeslat zprávu SMS. Hodnoty pro to
, from
a body
jsou požadovány v definici atributu, i když je přepíšete programově.
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();
}
}
Atributy
Knihovny C# v procesu i izolovaného pracovního procesu používají atributy k definování výstupní vazby. Skript jazyka C# místo toho používá konfigurační soubor function.json.
Vazba Twilio se v současné době nepodporuje pro aplikaci funkcí spuštěnou v izolovaném pracovním procesu.
Poznámky
Poznámka TwilioSmsOutput umožňuje deklarativní konfiguraci výstupní vazby Twilio zadáním následujících hodnot konfigurace:
+
Umístěte poznámku TwilioSmsOutput na OutputBinding<T>
parametr, kde T
může být jakýkoli nativní typ Javy, například int
, String
, byte[]
nebo typ POJO.
Konfigurace
Následující tabulka vysvětluje vlastnosti konfigurace vazby, které jste nastavili v souboru function.json , které se liší podle verze modulu runtime:
vlastnost function.json | Popis |
---|---|
type | musí být nastavena na twilioSms hodnotu . |
direction | musí být nastavena na out hodnotu . |
Jméno | Název proměnné použitý v kódu funkce pro textovou zprávu Twilio SMS. |
accountSidSetting | Tato hodnota musí být nastavena na název nastavení aplikace, které obsahuje sid účtu Twilio (TwilioAccountSid ). Pokud není nastavená, výchozí název nastavení aplikace je AzureWebJobsTwilioAccountSid . |
authTokenSetting | Tato hodnota musí být nastavená na název nastavení aplikace, které obsahuje ověřovací token Twilio (TwilioAccountAuthToken ). Pokud není nastavená, výchozí název nastavení aplikace je AzureWebJobsTwilioAuthToken . |
od | Tato hodnota je nastavená na telefonní číslo, ze kterého se posílá text SMS. |
tělo | Tuto hodnotu můžete použít k pevnému kódování textové zprávy SMS, pokud ji nepotřebujete dynamicky nastavovat v kódu pro vaši funkci. |
Ve verzi 2.x nastavíte to
hodnotu v kódu.
Při místním vývoji přidejte nastavení aplikace do souboru local.settings.json v kolekci Values
.