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.
Bir RabbitMQ kuyruğuna ileti göndermek için RabbitMQ çıkış bağlamasını 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 çıkış bağlamasının @RabbitMQOutput ek açıklamayı kullanır. İş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 yalıtılmış çalışan işlemi hem de işlem içi C# kitaplıkları, RabbitMQ kuyruğuna yazan bir çıkış bağlaması tanımlamak için bir öznitelik kullanır.
Oluşturucu RabbitMQOutputAttribute ş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. |
| DisableCertificateValidation | Sertifika doğrulamasının devre dışı bırakılıp bırakılmayacağını belirten bir değer alır veya ayarlar. Üretim için önerilmez. SSL devre dışı bırakıldığında uygulanmaz. |
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ı. |
| 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ılıp bırakılmayacağını belirten bir değer alır veya ayarlar. Ü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 RabbitMQ. |
| yön | olarak ayarlanmalıdır out. |
| ad | İşlev kodundaki kuyruğu temsil eden değişkenin adı. |
| queueName | İleti gönderilecek 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ılıp bırakılmayacağını belirten bir değer alır veya ayarlar. Ü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ü İş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.
Çı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 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.