webjob SDK(https://github.com/Sarmaad/WebJobs.Extensions.RabbitMQ)にrabbitMQ拡張機能を使用して、何かがキューに置かれたときにトリガさせようとしています。WebJob SDKファンクションに入るときにTriggeredFunctionData nullが返される
トリガーは正常に機能しますが、コンテンツは自分の機能に渡されません。
拡張機能のソースをダウンロードしてその中でデバッグできるようになりました。キューの内容が正常に配信され、拡張機能がTriggeredFunctionDataオブジェクトに再パッケージ化されていることがわかりました。オブジェクトはWebjobエグゼキュータを介して関数に渡されます。 しかし、私はこのオブジェクトがnullです。延長LIBから
リスナー方法:
_consumer.Received += (sender, args) =>
{
var triggerValue = new RabbitQueueTriggerValue {MessageBytes = args.Body};
if (args.BasicProperties != null)
{
triggerValue.MessageId = args.BasicProperties.MessageId;
triggerValue.ApplicationId = args.BasicProperties.AppId;
triggerValue.ContentType = args.BasicProperties.ContentType;
triggerValue.CorrelationId = args.BasicProperties.CorrelationId;
triggerValue.Headers = args.BasicProperties.Headers;
}
var result = _executor.TryExecuteAsync(new TriggeredFunctionData{TriggerValue = triggerValue}, CancellationToken.None).Result;
デバッグするとき、私はTriggervalueが私のメッセージデータが含まれていることを見ることができます。
public static async Task ProcessRabbitMqTopicStatusMessage([RabbitQueueTrigger("tempq")]
[RabbitQueueBinder("myexchange", "myroutingkey", "myerrorq",autoDelete:true,durable:true, execlusive:false)]
TriggeredFunctionData message,
TextWriter logger)
{
if (message != null)
{
}
}
このメソッドが正常にトリガされますが、メッセージは常にnullです:
私の関数が実行されています。
提案がありますか?