Azure İşlevleri için Twilio bağlaması

Bu makalede, Azure İşlevleri'de Twilio bağlamalarını kullanarak kısa mesaj gönderme işlemi açıklanmaktadır. Azure İşlevleri, Twilio için çıkış bağlamalarını destekler.

Bu, Azure İşlevleri geliştiricilerin başvuru bilgileridir. Azure İşlevleri kullanmaya yeni başladıysanız aşağıdaki kaynaklarla başlayın:

Uzantıyı yükleme

Yüklediğiniz NuGet uzantısı, işlev uygulamanızda kullandığınız C# moduna bağlıdır:

İşlevler yalıtılmış bir C# çalışan işleminde yürütülür. Daha fazla bilgi edinmek için bkz. Yalıtılmış çalışan işleminde C# Azure İşlevleri çalıştırma kılavuzu.

Uzantının işlevselliği, uzantı sürümüne bağlı olarak değişir:

Şu anda yalıtılmış bir çalışan işlemi uygulaması için Twilio desteği yoktur.

Paket yükleme

İşlevler sürüm 2.x'den başlayarak HTTP uzantısı, host.json proje dosyanızda belirtilen bir uzantı paketinin parçasıdır. Daha fazla bilgi edinmek için bkz . uzantı paketi.

Uzantının bu sürümü, işlev uygulamanız için uzantı paketi sürüm 2.x ile zaten kullanılabilir olmalıdır.

Örnek

Aksi belirtilmediği sürece, bu örnekler İşlevler çalışma zamanının 2.x ve sonraki sürümlerine özgüdür.

C# işlevi aşağıdaki C# modlarından biri kullanılarak oluşturulabilir:

  • Yalıtılmış çalışan modeli: Çalışma zamanından yalıtılmış bir çalışan işleminde çalışan derlenmiş C# işlevi. LTS ve .NET ve .NET Framework dışındaki sürümlerde çalışan C# işlevlerini desteklemek için yalıtılmış çalışan işlemi gereklidir.
  • İşlem içi model: İşlevler çalışma zamanıyla aynı işlemde çalışan derlenmiş C# işlevi.
  • C# betiği: Öncelikle Azure portalında C# işlevleri oluşturduğunuzda kullanılır.

Önemli

İşlem içi model desteği 10 Kasım 2026'da sona erecektir. Tam destek için uygulamalarınızı yalıtılmış çalışan modeline geçirmenizi kesinlikle öneririz.

Twilio bağlaması şu anda yalıtılmış çalışan işleminde çalışan bir işlev uygulaması için desteklenmiyor.

Aşağıdaki örnekte, bir function.json dosyasında Twilio çıkış bağlaması ve bağlamayı kullanan bir JavaScript işlevi gösterilmektedir.

function.json dosyasındaki bağlama verileri aşağıdadır:

Örnek function.json:

{
  "type": "twilioSms",
  "name": "message",
  "accountSidSetting": "TwilioAccountSid",
  "authTokenSetting": "TwilioAuthToken",
  "from": "+1425XXXXXXX",
  "direction": "out",
  "body": "Azure Functions Testing"
}

JavaScript kodu şu şekildedir:

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
    };
};

SendGrid bağlamaları için tam PowerShell örnekleri şu anda kullanılamıyor.

Aşağıdaki örnekte, aşağıdaki function.json tanımlandığı gibi çıkış bağlamasını kullanarak sms iletisi gönderme işlemi gösterilmektedir.

    {
      "type": "twilioSms",
      "name": "twilioMessage",
      "accountSidSetting": "TwilioAccountSID",
      "authTokenSetting": "TwilioAuthToken",
      "from": "+1XXXXXXXXXX",
      "direction": "out",
      "body": "Azure Functions Testing"
    }

SMS iletisini göndermek için parametresine func.Out serileştirilmiş bir JSON nesnesi geçirebilirsiniz.

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")

Aşağıdaki örnekte, SMS iletisi göndermek için TwilioSmsOutput ek açıklamasının nasıl kullanılacağı gösterilmektedir. , fromve body değerlerito, program aracılığıyla geçersiz kılsanız bile öznitelik tanımında gereklidir.

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();
    }
}

Özellikler

Hem işlem içi hem de yalıtılmış çalışan işlemi C# kitaplıkları çıkış bağlamasını tanımlamak için öznitelikleri kullanır. C# betiği bunun yerine bir function.json yapılandırma dosyası kullanır.

Twilio bağlaması şu anda yalıtılmış çalışan işleminde çalışan bir işlev uygulaması için desteklenmiyor.

Ek Açıklamalar

TwilioSmsOutput ek açıklaması, aşağıdaki yapılandırma değerlerini sağlayarak Twilio çıkış bağlamasını bildirimli olarak yapılandırmanıza olanak tanır:

+

TwilioSmsOutput ek açıklamasını bir OutputBinding<T> parametreye yerleştirin; burada T , String, byte[]veya POJO türü gibi intherhangi bir yerel Java türü olabilir.

Yapılandırma

Aşağıdaki tabloda, çalışma zamanı sürümüne göre farklılık gösteren function.json dosyasında ayarladığınız bağlama yapılandırma özellikleri açıklanmaktadır:

function.json özelliği Açıklama
type olarak ayarlanmalıdır twilioSms.
direction olarak ayarlanmalıdır out.
Adı Twilio SMS metin iletisi için işlev kodunda kullanılan değişken adı.
accountSidSetting Bu değer, Twilio Hesap Sid'nizi (TwilioAccountSid ) tutan bir uygulama ayarının adına ayarlanmalıdır. Ayarlanmadığında, varsayılan uygulama ayarı adı şeklindedir AzureWebJobsTwilioAccountSid.
authTokenSetting Bu değer, Twilio kimlik doğrulama belirtecinizi (TwilioAccountAuthToken) barındıran bir uygulama ayarının adına ayarlanmalıdır. Ayarlanmadığında, varsayılan uygulama ayarı adı şeklindedir AzureWebJobsTwilioAuthToken.
kaynak Bu değer, SMS metninin gönderildiği telefon numarasına ayarlanır.
gövde Bu değer, işlevinizin kodunda dinamik olarak ayarlamanız gerekmiyorsa SMS kısa iletisini sabit kodla kodlayabilirsiniz.

Sürüm 2.x'te, kodunuzda değeri ayarlarsınız to .

Yerel olarak geliştirme yaparken uygulama ayarlarınızı koleksiyondaki local.settings.json dosyasınaValues ekleyin.

Sonraki adımlar