Aracılığıyla paylaş


Azure İşlevleri genel bakış için RabbitMQ tetikleyicisi

RabbitMQ kuyruğundan gelen iletilere yanıt vermek için RabbitMQ tetikleyicisini kullanın.

Not

RabbitMQ bağlamaları yalnızca Elastik Premium ve Ayrılmış (App Service) planlarında tam olarak desteklenir. Esnek Tüketim ve Tüketim planları henüz desteklenmiyor.

RabbitMQ bağlamaları Azure İşlevleri v1.x çalışma zamanı tarafından desteklenmez.

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

Örnek

Aşağıdaki C# modlarından birini kullanarak bir C# işlevi oluşturabilirsiniz:

  • Yalıtılmış çalışan modeli: Çalışma zamanından yalıtılmış bir çalışan işleminde çalışan derlenmiş C# işlevi. .NET ve .NET Framework için uzun vadeli destek (LTS) ve LTS olmayan sürümlerde çalışan C# işlevlerini desteklemek için yalıtılmış bir çalışan işlemi gereklidir.
  • İşlem içi model: Azure İşlevleri ç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 tetikleyicisinin @RabbitMQTrigger ek açıklamayı kullanır. işlevi kuyruğa yerleştirilen iletiyi alır ve günlüklere ekler.

@FunctionName("RabbitMQTriggerExample")
public void run(
    @RabbitMQTrigger(connectionStringSetting = "rabbitMQConnectionAppSetting", queueName = "queue") String input,
    final ExecutionContext context)
{
    context.getLogger().info("Java HTTP trigger processed a request." + input);
}

Aşağıdaki örnekte, bir function.json dosyasındaki RabbitMQ tetikleyici bağlaması ve bağlamayı kullanan bir JavaScript işlevi gösterilmektedir. İşlev bir RabbitMQ iletisini okur ve günlüğe kaydeder.

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

{​​
    "bindings": [
        {​​
            "name": "myQueueItem",
            "type": "rabbitMQTrigger",
            "direction": "in",
            "queueName": "queue",
            "connectionStringSetting": "rabbitMQConnectionAppSetting"
        }​​
    ]
}​​

JavaScript betik kodu aşağıdadır:

module.exports = async function (context, myQueueItem) {​​
    context.log('JavaScript RabbitMQ trigger function processed work item', myQueueItem);
}​​;

Aşağıdaki örnekte, bir RabbitMQ kuyruk iletisinin tetikleyici aracılığıyla nasıl okunduğu gösterilmektedir.

RabbitMQ bağlaması, türün olarak ayarlandığı function.jsonRabbitMQTrigger.

{​​
    "scriptFile": "__init__.py",
    "bindings": [
        {​​
            "name": "myQueueItem",
            "type": "rabbitMQTrigger",
            "direction": "in",
            "queueName": "queue",
            "connectionStringSetting": "rabbitMQConnectionAppSetting"
        }​​
    ]
}​​
import logging
import azure.functions as func

def main(myQueueItem) -> None:
    logging.info('Python RabbitMQ trigger function processed a queue item: %s', myQueueItem)

PowerShell örnekleri şu anda kullanılamıyor.

Özellikler

Hem yalıtılmış çalışan işlemi hem de işlem içi C# kitaplıkları, özniteliğin belirli özelliklerinin uzantı sürümüne bağlı olduğu işlevi tanımlamak için kullanır RabbitMQTriggerAttribute .

Özniteliğin oluşturucu şu parametreleri kabul eder:

Parametre Açıklama
KuyrukAdı İletilerin alındığı kuyruğun adı.
Ana Bilgisayar Adı Bu parametre artık desteklenmiyor ve yoksayılıyor. Gelecekteki bir sürümde kaldırılacaktır.
ConnectionStringSetting RabbitMQ sunucunuzun bağlantı dizesini içeren uygulama ayarının adı. Bu ayar yalnızca uygulama ayarı anahtar adını alır; bağlantı dizesi değerini doğrudan ayarlayamazsınız. Daha fazla bilgi için bkz. Bağlantılar.
UserNameSetting Bu parametre artık desteklenmiyor ve yoksayılıyor. Gelecekteki bir sürümde kaldırılacaktır.
Şifre Ayarı Bu parametre artık desteklenmiyor ve yoksayılıyor. Gelecekteki bir sürümde kaldırılacaktı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.

Ek Açıklamalar

Ek RabbitMQTrigger 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 seçeneklerini destekler:

Parametre Açıklama
queueName İletilerin alındığı kuyruğun adı.
connectionStringSetting RabbitMQ sunucunuzun bağlantı dizesini içeren uygulama ayarının adı. Bu ayar yalnızca uygulama ayarı anahtar adını alır; bağlantı dizesi değerini doğrudan ayarlayamazsınız. Daha fazla bilgi için bkz. Bağlantılar.
disableCertificateValidation Sertifika doğrulamasının devre dışı bırakılması gerektiğini belirten olarak true ayarlanabilen Boole değeri. Varsayılan değer false olarak belirlenmiştir. Üretim için önerilmez. SSL devre dışı bırakıldığında uygulanmaz.

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
türü olarak ayarlanmalıdır RabbitMQTrigger.
yön olarak ayarlanmalıdır in.
ad İşlev kodundaki kuyruğu temsil eden değişkenin adı.
queueName İletilerin alındığı kuyruğun adı.
connectionStringSetting RabbitMQ sunucunuzun bağlantı dizesini içeren uygulama ayarının adı. Bu ayar yalnızca uygulama ayarı anahtar adını alır; bağlantı dizesi değerini doğrudan ayarlayamazsınız. Daha fazla bilgi için bkz. Bağlantılar.
disableCertificateValidation Sertifika doğrulamasının devre dışı bırakılması gerektiğini belirten olarak true ayarlanabilen Boole değeri. Varsayılan değer false olarak belirlenmiştir. Üretim için önerilmez. SSL devre dışı bırakıldığında uygulanmaz.

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ü, kullanılan C# modalitesine bağlıdır.

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

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

Bağlantılar

Önemli

RabbitMQ bağlaması Microsoft Entra kimlik doğrulamasını ve yönetilen kimlikleri desteklemez. RabbitMQ bağlantı dizesi'lerinizi merkezi olarak yönetmek için Azure Key Vault'u kullanabilirsiniz. Daha fazla bilgi için bkz . Bağlantıları Yönetme.

Uzantının hostName2.x sürümünden başlayarak, , userNameSettingve passwordSetting artık RabbitMQ sunucusuna bağlantı tanımlamak için desteklenmez. Bunun yerine kullanmanız connectionStringSettinggerekir.

connectionStringSetting özelliği yalnızca uygulama ayarlarında anahtar-değer çiftinin adını kabul edebilir. Bağlamada bağlantı dizesi değerini doğrudan ayarlayamazsınız.

Örneğin, bağlama tanımınızda olarak ayarladığınızda connectionStringSettingrabbitMQConnection, işlev uygulamanızın veya Azure Key Vault başvurusu gibi amqp://myuser:***@contoso.rabbitmq.example.com:5672 bir bağlantı değeri döndüren adlı rabbitMQConnection bir uygulama ayarı olmalıdır.

Yerel olarak çalışırken, local.settings.json dosyanızda tanımlanan anahtar değerine connectionStringSetting de sahip olmanız gerekir. Aksi takdirde, uygulamanız yerel bilgisayarınızdan hizmete bağlanamaz ve bir hata oluşur.

Teslim edilemeyen ileti kuyrukları

Teslim edilemeyen ileti kuyrukları ve değişimleri RabbitMQ tetikleyicisinden denetlenemez veya yapılandırılamaz. Teslim edilemeyen ileti kuyruklarını kullanmak için RabbitMQ'da tetikleyici tarafından kullanılan kuyruğu önceden yapılandırın. RabbitMQ belgelerine bakın.

Çalışma Zamanı Ölçeklendirmesini Etkinleştirme

RabbitMQ tetikleyicisinin ölçeği birden çok örneğe genişletebilmesi için Çalışma Zamanı Ölçeği İzleme ayarının etkinleştirilmesi gerekir.

Portalda bu ayar, işlev uygulamanızın Yapılandırmabulunabilir.

VNETToggle

Azure CLI'da, şu komutu kullanarak Çalışma Zamanı Ölçeği İzleme'yi etkinleştirebilirsiniz:

az resource update -resource-group <RESOURCE_GROUP> -name <APP_NAME>/config/web \
    --set properties.functionsRuntimeScaleMonitoringEnabled=1 \
    --resource-type Microsoft.Web/sites

RabbitMQ uç noktasını izleme

Belirli bir RabbitMQ uç noktası için kuyruklarınızı ve değişimlerinizi izlemek için:

  • RabbitMQ yönetim eklentisini etkinleştirme
  • http://{node-hostname}:15672 Adresine gidin ve kullanıcı adınız ve parolanızla oturum açın.

İlgili makale