Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan küldhet szöveges üzeneteket Twilio-kötések használatával az Azure Functionsben. Az Azure Functions támogatja a Twilio kimeneti kötéseit.
Ezek az Azure Functions-fejlesztők referenciaadatai. Ha még nem használja az Azure Functionst, kezdje a következő erőforrásokkal:
C# fejlesztői hivatkozások:
A bővítmény telepítése
A telepített NuGet-csomag a függvényalkalmazásban használt C# módtól függ:
A függvények izolált C# feldolgozói folyamatban futnak. További információ: Útmutató a C# Azure Functions izolált feldolgozói folyamatban való futtatásához.
A bővítmény funkciói a bővítmény verziójától függően változnak:
A Twilio jelenleg nem támogatott egy izolált feldolgozói folyamatalkalmazáshoz.
Csomag telepítése
Ha használni szeretné ezt a kötéskiterjesztést az alkalmazásban, győződjön meg arról, hogy a projekt gyökerében található host.json fájl tartalmazza a extensionBundle következő hivatkozást:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Ebben a példában az version érték [4.0.0, 5.0.0) arra utasítja a Functions-gazdagépet, hogy 4.0.0 legalább, de annál kisebb 5.0.0csomagverziót használjon, amely tartalmazza a 4.x összes lehetséges verzióját. Ez a jelölés hatékonyan fenntartja az alkalmazást a v4.x bővítménycsomag legújabb elérhető alverzióján.
Ha lehetséges, a legújabb bővítménycsomag főverziót kell használnia, és engedélyeznie kell, hogy a futtatókörnyezet automatikusan fenntartsa a legújabb alverziót. A legújabb csomag tartalmát a bővítménykötegek kiadási oldalán tekintheti meg. További információ: Azure Functions-bővítménykötegek.
Example
Ha másként nem jelenik meg, ezek a példák a Functions-futtatókörnyezet 2.x és újabb verziójára vonatkoznak.
C# függvényt az alábbi C# módok egyikével hozhat létre:
- Izolált feldolgozómodell: Lefordított C# függvény, amely a futtatókörnyezettől elkülönített feldolgozói folyamatban fut. Izolált feldolgozói folyamat szükséges a hosszú távú támogatáson (LTS) futó C# függvények támogatásához, valamint a .NET és a .NET-keretrendszer nem LTS-verzióihoz.
- Folyamatban lévő modell: Lefordított C# függvény, amely ugyanabban a folyamatban fut, mint az Azure Functions futtatókörnyezete.
- C#-szkript: Elsősorban C#-függvények Azure Portalon való létrehozásakor használatos.
Important
A folyamaton belüli modell támogatása 2026. november 10-én megszűnik. Erősen javasoljuk, hogy az alkalmazásokat az elkülönített feldolgozói modellbe migrálja a teljes támogatás érdekében.
A Twilio-kötés jelenleg nem támogatott izolált feldolgozói folyamatban futó függvényalkalmazások esetében.
Az alábbi példa egy Twilio kimeneti kötést mutat be egy function.json fájlban, és egy JavaScript-függvényt , amely a kötést használja.
Az alábbi kötési adatok a function.json fájlban:
Példa function.json:
{
"type": "twilioSms",
"name": "message",
"accountSidSetting": "TwilioAccountSid",
"authTokenSetting": "TwilioAuthToken",
"from": "+1425XXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
A JavaScript-kód a következő:
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
};
};
A Teljes PowerShell-példák jelenleg nem érhetők el a SendGrid-kötésekhez.
Az alábbi példa bemutatja, hogyan küldhet SMS-üzenetet az alábbi function.jsondefiniált kimeneti kötéssel.
{
"type": "twilioSms",
"name": "twilioMessage",
"accountSidSetting": "TwilioAccountSID",
"authTokenSetting": "TwilioAuthToken",
"from": "+1XXXXXXXXXX",
"direction": "out",
"body": "Azure Functions Testing"
}
Az SMS-üzenet elküldéséhez átadhat egy szerializált JSON-objektumot a func.Out paraméternek.
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")
Az alábbi példa bemutatja, hogyan használható a TwilioSmsOutput széljegyzet sms-üzenetek küldésére. A , tofrom értékeket bodyaz attribútumdefinícióban kell megadni, még akkor is, ha programozott módon felülbírálja őket.
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
A folyamaton belüli és az izolált feldolgozói folyamat C#-kódtárai attribútumokkal határozzák meg a kimeneti kötést. A C#-szkript ehelyett function.json konfigurációs fájlt használ.
A Twilio-kötés jelenleg nem támogatott izolált feldolgozói folyamatban futó függvényalkalmazások esetében.
Annotations
A TwilioSmsOutput megjegyzés lehetővé teszi a Twilio kimeneti kötés deklaratív konfigurálását a következő konfigurációs értékek megadásával:
+
Helyezze a TwilioSmsOutput megjegyzést egy OutputBinding<T> paraméterre, ahol T bármilyen natív Java-típus lehet, például int, String, byte[]vagy POJO-típus.
Configuration
Az alábbi táblázat a function.json fájlban beállított kötéskonfigurációs tulajdonságokat ismerteti, amelyek futásidejű verziónként eltérnek:
| function.json tulajdonság | Description |
|---|---|
| type | beállításnak a következőre kell állítania: twilioSms. |
| direction | beállításnak a következőre kell állítania: out. |
| name | A Twilio SMS szöveges üzenet függvénykódjában használt változónév. |
| accountSidSetting | Ezt az értéket egy olyan alkalmazásbeállítás nevére kell állítani, amely a Twilio-fiók sid (TwilioAccountSid) azonosítóját tartalmazza. Ha nincs beállítva, az alapértelmezett alkalmazásbeállítás neve .AzureWebJobsTwilioAccountSid |
| authTokenSetting | Ezt az értéket a Twilio-hitelesítési jogkivonatot (TwilioAccountAuthToken) tartalmazó alkalmazásbeállítás nevére kell állítani. Ha nincs beállítva, az alapértelmezett alkalmazásbeállítás neve .AzureWebJobsTwilioAuthToken |
| from | Ez az érték arra a telefonszámra van állítva, amelyről az SMS-szöveget küldi. |
| body | Ez az érték használható az SMS szöveges üzenet kódolásához, ha nem kell dinamikusan beállítania a függvény kódjában. |
A 2.x verzióban a kódban adja meg az to értéket.
Helyi fejlesztéskor adja hozzá az alkalmazásbeállításokat a gyűjtemény local.settings.json fájljáhozValues.