Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule wyjaśniono, jak wysyłać wiadomości tekstowe przy użyciu powiązań usługi Twilio w usłudze Azure Functions. Usługa Azure Functions obsługuje powiązania wyjściowe dla usługi Twilio.
Są to informacje referencyjne dla deweloperów usługi Azure Functions. Jeśli dopiero zaczynasz korzystać z usługi Azure Functions, zacznij od następujących zasobów:
Dokumentacja dla deweloperów języka C#:
Instalowanie rozszerzenia
Instalowany pakiet NuGet rozszerzenia zależy od trybu języka C#, którego używasz w aplikacji funkcji:
Funkcje są wykonywane w izolowanym procesie roboczym języka C#. Aby dowiedzieć się więcej, zobacz Przewodnik dotyczący uruchamiania usługi Azure Functions w języku C# w izolowanym procesie roboczym.
Obecnie nie ma obsługi usługi Twilio dla izolowanej aplikacji procesu roboczego.
Instalowanie pakietu
Aby móc używać tego rozszerzenia powiązania w aplikacji, upewnij się, że plik host.json w katalogu głównym projektu zawiera następujące extensionBundle odwołanie:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
W tym przykładzie version[4.0.0, 5.0.0) wartość polecenia nakazuje hostowi usługi Functions użycie wersji pakietu, która jest co najmniej 4.0.0 mniejsza niż 5.0.0, która zawiera wszystkie potencjalne wersje 4.x. Ta notacja skutecznie utrzymuje aplikację w najnowszej dostępnej wersji pomocniczej pakietu rozszerzenia v4.x.
Jeśli to możliwe, należy użyć najnowszej wersji głównej pakietu rozszerzeń i zezwolić środowisku uruchomieniowemu na automatyczne utrzymywanie najnowszej wersji pomocniczej. Zawartość najnowszego pakietu można wyświetlić na stronie wydania pakietów rozszerzeń. Aby uzyskać więcej informacji, zobacz Pakiety rozszerzeń usługi Azure Functions.
Przykład
Wsparcie Go nie jest obecnie dostępne dla tego przypisania.
Funkcję języka C# można utworzyć przy użyciu jednego z następujących trybów języka C#:
- Model izolowanego procesu roboczego: skompilowana funkcja języka C#, która jest uruchamiana w procesie roboczym izolowanym od środowiska uruchomieniowego. Proces izolowanego procesu roboczego jest wymagany do obsługi funkcji języka C# działających w długoterminowych wersjach pomocy technicznej (LTS) i innych niż LTS dla platformy .NET i programu .NET Framework.
- Model przetwarzania: skompilowana funkcja języka C#, która działa w tym samym procesie co środowisko uruchomieniowe usługi Azure Functions.
- Skrypt języka C#: używany głównie podczas tworzenia funkcji języka C# w witrynie Azure Portal.
Ważne
Wsparcie zostanie zakończone dla modelu procesu 10 listopada 2026 r. Zdecydowanie zalecamy przeprowadzenie migracji aplikacji do izolowanego modelu procesu roboczego w celu uzyskania pełnej obsługi.
Powiązanie usługi Twilio nie jest obecnie obsługiwane dla aplikacji funkcji działającej w izolowanym procesie roboczym.
W poniższym przykładzie przedstawiono powiązanie wyjściowe usługi Twilio w pliku function.json i funkcję Języka JavaScript, która używa powiązania.
Oto dane powiązania w pliku function.json :
Przykład function.json:
{
"type": "twilioSms",
"name": "message",
"accountSidSetting": "TwilioAccountSid",
"authTokenSetting": "TwilioAuthToken",
"from": "+1425XXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
Oto kod 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
};
};
Kompletne przykłady programu PowerShell nie są obecnie dostępne dla powiązań usługi SendGrid.
W poniższym przykładzie pokazano, jak wysłać wiadomość SMS przy użyciu powiązania wyjściowego zgodnie z definicją w poniższej function.json.
{
"type": "twilioSms",
"name": "twilioMessage",
"accountSidSetting": "TwilioAccountSID",
"authTokenSetting": "TwilioAuthToken",
"from": "+1XXXXXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
Można przekazać serializowany obiekt JSON do parametru w func.Out celu wysłania wiadomości 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")
W poniższym przykładzie pokazano, jak wysłać wiadomość SMS przy użyciu adnotacji TwilioSmsOutput . Wartości , tofromi body są wymagane w definicji atrybutu, nawet jeśli zastąpisz je programowo.
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();
}
}
Atrybuty
Zarówno w procesie przetwarzania, jak i izolowanym procesie roboczym biblioteki języka C# używają atrybutów do zdefiniowania powiązania wyjściowego. Zamiast tego skrypt języka C# używa pliku konfiguracji function.json.
Powiązanie usługi Twilio nie jest obecnie obsługiwane dla aplikacji funkcji działającej w izolowanym procesie roboczym.
Adnotacje
Adnotacja TwilioSmsOutput umożliwia deklaratywne konfigurowanie powiązania wyjściowego usługi Twilio przez podanie następujących wartości konfiguracji:
+
Umieść adnotację TwilioSmsOutput na parametrze, gdzie OutputBinding<T> może być dowolnym natywnym typem T języka Java, takim jak int, String, byte[]lub typ POJO.
Konfigurowanie
W poniższej tabeli opisano właściwości konfiguracji powiązania ustawione w pliku function.json , które różnią się wersją środowiska uruchomieniowego:
| właściwość function.json | opis |
|---|---|
| typ | musi być ustawiona na twilioSms. |
| kierunek | musi być ustawiona na out. |
| nazwa | Nazwa zmiennej używana w kodzie funkcji dla wiadomości SMS usługi Twilio. |
| accountSidSetting | Ta wartość musi być ustawiona na nazwę ustawienia aplikacji, które przechowuje identyfikator SID konta usługi Twilio (TwilioAccountSid). Jeśli nie zostanie ustawiona, domyślna nazwa ustawienia aplikacji to AzureWebJobsTwilioAccountSid. |
| authTokenSetting | Ta wartość musi być ustawiona na nazwę ustawienia aplikacji, które przechowuje token uwierzytelniania usługi Twilio (TwilioAccountAuthToken). Jeśli nie zostanie ustawiona, domyślna nazwa ustawienia aplikacji to AzureWebJobsTwilioAuthToken. |
| z | Ta wartość jest ustawiona na numer telefonu, z którego jest wysyłany tekst SMS. |
| treść | Ta wartość może służyć do kodowania wiadomości SMS sms, jeśli nie musisz ustawiać jej dynamicznie w kodzie funkcji. |
W wersji 2.x należy ustawić to wartość w kodzie.
Podczas tworzenia aplikacji lokalnie dodaj ustawienia aplikacji w pliku local.settings.json w kolekcji Values .