Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
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}:15672Adresine gidin ve kullanıcı adınız ve parolanızla oturum açın.