私はthis pageから、トリガーとして使用されるときにキューメッセージのメタデータプロパティにアクセスすることができますが、その逆を実行することができます。 私は、キューにメッセージを書き込むAzure関数を持っていますが、現在のデフォルトの有効期限があり、非常に短い有効期限を設定したいので、非常に短期間しかキューに入れられません。Azureキューに書き込む関数 - メタデータを設定できますか?
メッセージをAzure関数からキューに書き込んで有効期限を設定する方法はありますか?
おかげ
EDIT 1: 1つの警告は、私は先に時間のキューの名前を知らないということです。これは受信メッセージの一部なので、出力バインディングのパラメータとしてキュー名が設定されています @Mikhailの推奨どおりに変更しました。それはスタンドとしてここでの機能は次のとおりです。
#r "Microsoft.WindowsAzure.Storage"
#r "Newtonsoft.Json"
using System;
using Microsoft.WindowsAzure.Storage.Queue;
using Newtonsoft.Json;
public static void Run(MyType myEventHubMessage, CloudQueue outputQueue, TraceWriter log)
{
var deviceId = myEventHubMessage.DeviceId;
var data = JsonConvert.SerializeObject(myEventHubMessage);
var msg = new CloudQueueMessage(data);
log.Info($"C# Event Hub trigger function processed a message: {deviceId}");
outputQueue.AddMessage(msg, TimeSpan.FromMinutes(3), null, null, null);
}
public class MyType
{
public string DeviceId { get; set; }
public double Field1{ get; set; }
public double Field2 { get; set; }
public double Field3 { get; set; }
}
そして、私のfunction.jsonに結合出力:
{
"type": "CloudQueue",
"name": "$return",
"queueName": "{DeviceId}",
"connection": "myConn",
"direction": "out"
}
感謝。十分に簡単だと思われますが、私はキューの名前を事前に知っていません。これは着信メッセージの一部なので、キュー名は出力バインディングのパラメータとして設定されます。それは重要ですか?私が今どこにいるのか私の編集を参照してください – LDJ
@LDJこれをカバーする私の答えを広げました。 – Mikhail
絶対的な魅力を働かせました。私はIBinderを読み返す必要があります - 助けてくれてありがとう – LDJ