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ı. |
Ana Bilgisayar Adı | Kuyruğun ana bilgisayar adı, örneğin 10.26.45.210. kullanılırken ConnectStringSetting yoksayılır. |
UserNameSetting | Kuyruğa erişecek kullanıcı adını içeren uygulama ayarının adı( gibi UserNameSetting: "%< UserNameFromSettings >%" ). kullanılırken ConnectStringSetting yoksayılır. |
PasswordSetting | Kuyruğa erişmek için parolayı içeren uygulama ayarının adı( gibi PasswordSetting: "%< PasswordFromSettings >%" ). kullanılırken ConnectStringSetting yoksayı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 . |
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 ConnectStringSetting yoksayılır. |
userNameSetting | Kuyruğa erişecek kullanıcı adını içeren uygulama ayarının adı( gibi UserNameSetting: "%< UserNameFromSettings >%" ). kullanılırken ConnectStringSetting yoksayılır. |
passwordSetting | Kuyruğa erişmek için parolayı içeren uygulama ayarının adı( gibi PasswordSetting: "%< PasswordFromSettings >%" ). kullanılırken ConnectStringSetting yoksayı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 connectStringSetting yoksayılır. |
kullanıcı adı | Kuyruğa erişecek kullanıcı adını içeren uygulama ayarının adı; örneğin, UserNameSetting: "< UserNameFromSettings >". kullanılırken connectStringSetting yoksayılır. |
parola | Kuyruğa erişmek için parolayı içeren uygulama ayarının adı, örneğin UserNameSetting: "< UserNameFromSettings >". kullanılırken connectStringSetting yoksayı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ına Values
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.