Azure İşlevleri genel bakış için RabbitMQ çıkış bağlaması

Not

RabbitMQ bağlamaları yalnızca Premium ve Ayrılmış planlarda tam olarak desteklenir. Tüketim desteklenmez.

Bir RabbitMQ kuyruğuna ileti göndermek için RabbitMQ çıkış bağlamasını kullanın.

Kurulum ve yapılandırma ayrıntıları hakkında bilgi için genel bakışa bakın.

Örnek

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.

[Function(nameof(RabbitMQFunction))]
[RabbitMQOutput(QueueName = "destinationQueue", ConnectionStringSetting = "RabbitMQConnection")]
public static string Run([RabbitMQTrigger("queue", ConnectionStringSetting = "RabbitMQConnection")] string item,
    FunctionContext context)
{
    var logger = context.GetLogger(nameof(RabbitMQFunction));

    logger.LogInformation(item);

    var message = $"Output message created at {DateTime.Now}";
    return message;
}

Aşağıdaki Java işlevi, Bir RabbitMQ kuyruk çıkış bağlamasının yapılandırmasını açıklamak için Java RabbitMQ türlerinden ek açıklamayı kullanır@RabbitMQOutput. İşlev, TimerTrigger tarafından her 5 dakikada bir tetiklendiğinde RabbitMQ kuyruğuna bir ileti gönderir.

@FunctionName("RabbitMQOutputExample")
public void run(
@TimerTrigger(name = "keepAliveTrigger", schedule = "0 */5 * * * *") String timerInfo,
@RabbitMQOutput(connectionStringSetting = "rabbitMQConnectionAppSetting", queueName = "hello") OutputBinding<String> output,
final ExecutionContext context) {
    output.setValue("Some string");
}

Aşağıdaki örnekte, bir function.json dosyasındaki RabbitMQ çıkış bağlaması ve bağlamayı kullanan bir JavaScript işlevi gösterilmektedir. İşlev, bir HTTP tetikleyicisinden iletide okur ve bunu RabbitMQ kuyruğuna gönderir.

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

{
    "bindings": [
        {
            "type": "httpTrigger",
            "direction": "in",
            "authLevel": "function",
            "name": "input",
            "methods": [
                "get",
                "post"
            ]
        },
        {
            "type": "rabbitMQ",
            "name": "outputMessage",
            "queueName": "outputQueue",
            "connectionStringSetting": "rabbitMQConnectionAppSetting",
            "direction": "out"
        }
    ]
}

JavaScript kodu şu şekildedir:

module.exports = async function (context, input) {
    context.bindings.outputMessage = input.body;
};

Aşağıdaki örnekte, bir function.json dosyasındaki RabbitMQ çıkış bağlaması ve bağlamayı kullanan bir Python işlevi gösterilmektedir. İşlev, bir HTTP tetikleyicisinden iletide okur ve bunu RabbitMQ kuyruğuna gönderir.

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

{
    "scriptFile": "__init__.py",
    "bindings": [
        {
            "authLevel": "function",
            "type": "httpTrigger",
            "direction": "in",
            "name": "req",
            "methods": [
                "get",
                "post"
            ]
        },
        {
            "type": "http",
            "direction": "out",
            "name": "$return"
        },​​
        {
            "type": "rabbitMQ",
            "name": "outputMessage",
            "queueName": "outputQueue",
            "connectionStringSetting": "rabbitMQConnectionAppSetting",
            "direction": "out"
        }
    ]
}

_init_.py:

import azure.functions as func

def main(req: func.HttpRequest, outputMessage: func.Out[str]) -> func.HttpResponse:
    input_msg = req.params.get('message')
    outputMessage.set(input_msg)
    return 'OK'

Özellikler

hem işlem içi hem de yalıtılmış çalışan işlemi C# kitaplıkları işlevi tanımlamak için özniteliğini kullanır. C# betiği bunun yerine bir function.json yapılandırma dosyası kullanır.

Özniteliğin oluşturucu aşağıdaki parametreleri alır:

Parametre Açıklama
KuyrukAdı İletilerin alındığı kuyruğun adı.
Hostname Kuyruğun ana bilgisayar adı, örneğin 10.26.45.210. kullanılırken ConnectStringSettingyoksayılır.
UserNameSetting Kuyruğa erişecek kullanıcı adını içeren uygulama ayarının adı( gibi UserNameSetting: "%< UserNameFromSettings >%"). kullanılırken ConnectStringSettingyoksayılır.
PasswordSetting Kuyruğa erişmek için parolayı içeren uygulama ayarının adı( gibi PasswordSetting: "%< PasswordFromSettings >%"). kullanılırken ConnectStringSettingyoksayılır.
Bağlan ionStringSetting RabbitMQ ileti kuyruğu bağlantı dizesi içeren uygulama ayarının adı. Tetikleyici, uygulama ayarı yerine doğrudan bağlantı dizesi belirttiğinizde çalışmaz. Örneğin, öğesini ayarladığınızda ConnectionStringSetting: "rabbitMQConnection"hem local.settings.json hem de işlev uygulamanızda gibi "RabbitMQConnection" : "< ActualConnectionstring >"bir ayara ihtiyacınız vardır.
Bağlantı noktası Kullanılan bağlantı noktasını alır veya ayarlar. Varsayılan değer 0'dır; bu, RabbitMQ istemcisinin varsayılan bağlantı noktası ayarı olan öğesine işaret eder 5672.

C# sınıf kitaplıklarında RabbitMQTrigger özniteliğini kullanın.

Yalıtılmış bir RabbitMQTrigger çalışan işlem kitaplığı için yöntem imzasında bir öznitelik aşağıdadır:

[Function(nameof(RabbitMQFunction))]
[RabbitMQOutput(QueueName = "destinationQueue", ConnectionStringSetting = "RabbitMQConnection")]
public static string Run([RabbitMQTrigger("queue", ConnectionStringSetting = "RabbitMQConnection")] string item,
    FunctionContext context)
{

Ek Açıklamalar

Ek RabbitMQOutput açıklama, RabbitMQ iletisi oluşturulduğunda çalışan bir işlev oluşturmanıza olanak tanır.

Ek açıklama aşağıdaki yapılandırma ayarlarını destekler:

Ayar Açıklama
queueName İletilerin alındığı kuyruğun adı.
Hostname Kuyruğun ana bilgisayar adı, örneğin 10.26.45.210. kullanılırken ConnectStringSettingyoksayılır.
userNameSetting Kuyruğa erişecek kullanıcı adını içeren uygulama ayarının adı( gibi UserNameSetting: "%< UserNameFromSettings >%"). kullanılırken ConnectStringSettingyoksayılır.
passwordSetting Kuyruğa erişmek için parolayı içeren uygulama ayarının adı( gibi PasswordSetting: "%< PasswordFromSettings >%"). kullanılırken ConnectStringSettingyoksayılır.
connectionStringSetting RabbitMQ ileti kuyruğu bağlantı dizesi içeren uygulama ayarının adı. Tetikleyici, uygulama ayarı yerine doğrudan bağlantı dizesi belirttiğinizde çalışmaz. Örneğin, öğesini ayarladığınızda ConnectionStringSetting: "rabbitMQConnection"hem local.settings.json hem de işlev uygulamanızda gibi "RabbitMQConnection" : "< ActualConnectionstring >"bir ayara ihtiyacınız vardır.
bağlantı noktası Kullanılan bağlantı noktasını alır veya ayarlar. Varsayılan değer 0'dır; bu, RabbitMQ istemcisinin varsayılan bağlantı noktası ayarı olan öğesine işaret eder 5672.

Daha fazla ayrıntı için çıkış bağlama örneğine bakın.

Yapılandırma

Aşağıdaki tabloda, 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 RabbitMQ.
direction olarak ayarlanmalıdır out.
Adı İşlev kodundaki kuyruğu temsil eden değişkenin adı.
queueName İleti gönderilecek kuyruğun adı.
Hostname Kuyruğun ana bilgisayar adı, örneğin 10.26.45.210. kullanılırken connectStringSettingyoksayılır.
Username Kuyruğa erişecek kullanıcı adını içeren uygulama ayarının adı; örneğin, UserNameSetting: "< UserNameFrom Ayarlar >". kullanılırken connectStringSettingyoksayılır.
Parola Kuyruğa erişmek için parolayı içeren uygulama ayarının adı, örneğin UserNameSetting: "< UserNameFrom Ayarlar >". kullanılırken connectStringSettingyoksayılır.
connectionStringSetting RabbitMQ ileti kuyruğu bağlantı dizesi içeren uygulama ayarının adı. tetikleyici, içindeki bir uygulama ayarı yerine doğrudan bağlantı dizesi belirttiğinizde local.settings.jsonçalışmaz. Örneğin, hem local.settings.json hem de işlev uygulamanızda ayarladıysanız connectionStringSetting: "rabbitMQConnection" gibi "rabbitMQConnection" : "< ActualConnectionstring >"bir ayara ihtiyacınız vardır.
bağlantı noktası Kullanılan Bağlantı Noktasını alır veya ayarlar. Varsayılan değer 0'dır; bu, RabbitMQ istemcisinin varsayılan bağlantı noktası ayarı olan öğesine işaret eder 5672.

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

Tam örnekler için Örnek bölümüne bakın.

Kullanım

RabbitMQ tetikleyicisi tarafından desteklenen parametre türü İşlevler çalışma zamanı sürümüne, uzantı paketi sürümüne ve kullanılan C# modalitesine bağlıdır.

RabbitMQ bağlamaları şu anda yalıtılmış bir çalışan işleminde çalıştırılırken yalnızca dize ve serileştirilebilir nesne türlerini destekler.

Tam bir örnek için bkz. C# örneği.

Çıkış bağlaması için aşağıdaki parametre türlerini kullanın:

  • byte[] - İşlev çıktığında parametre değeri null olduğunda İşlevler ileti oluşturmaz.
  • string - İşlev çıktığında parametre değeri null olduğunda İşlevler ileti oluşturmaz.
  • POJO - Parametre değeri Java nesnesi olarak biçimlendirilmemişse bir hata alınır.

Kuyruk iletisi, function.json'de tanımlanan adla eşleşen konum <NAME> aracılığıyla context.bindings.<NAME> kullanılabilir. Yük JSON ise, değer bir nesnede seri durumdan çıkarılır.

Python örneğine bakın.

Sonraki adımlar