私はIoTHubからメッセージを受け取り、処理のために所定のキューに配置するAzure関数を持っています。キューは、着信メッセージデータによって、実行時に動的に決定し、私は唯一のメッセージが数秒間持続したいと短いExpirationTimeでキューに配置されています。タイプCloudQueueを使用するAzure関数からストレージアカウントの名前を指定してください
#r "Microsoft.WindowsAzure.Storage"
#r "Newtonsoft.Json"
using System;
using Microsoft.WindowsAzure.Storage.Queue;
using Newtonsoft.Json;
public static void Run(MyType myEventHubMessage, IBinder binder, TraceWriter log)
{
int TTL = 3;
var data = JsonConvert.SerializeObject(myEventHubMessage);
var msg = new CloudQueueMessage(data);
string outputQueueName = myEventHubMessage.DeviceId;
QueueAttribute queueAttribute = new QueueAttribute(outputQueueName);
CloudQueue outputQueue = binder.Bind<CloudQueue>(queueAttribute);
outputQueue.AddMessage(msg, TimeSpan.FromSeconds(TTL), 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
で接続プロパティを持っている:
{
"bindings": [
{
"type": "eventHubTrigger",
"name": "myEventHubMessage",
"direction": "in",
"path": "someiothub",
"connection": "IoTHubConnectionString"
},
{
"type": "CloudQueue",
"name": "$return",
"queueName": "{DeviceId}",
"connection": "NAME_OF_CON_STRING_I_WANT_TO_USE",
"direction": "out"
}
],
"disabled": false
}
が、その完全に無視されています。面白いことに、JSONから値またはキーと値のペアを完全に削除すると、関数が実行され、デフォルトのストレージアカウントがどこかにあるように見えます。
私は私の実行機能に[StorageAccount("NAME_OF_CON_STR_I_WANT_TO_USE")]
属性を追加しようとしたが、それも無視しているようだと私はまた、属性の配列を作成し、binder.Bind<T>(attributeArray)
にQueueAttributeとStorageAccountAttribute
の両方を渡すが、それはそれは、配列を受け入れることができないと文句を言いみました。
ストレージアカウントを取得してからストレージアカウントを取得する場所を知っていますか、さらに重要なのはストレージアカウント名を設定する方法です。
おかげ
返信いただきありがとうございます。これはどこに文書化されていますか? 2017-06-13T09:43:56.381(20,65):エラーCS1503:引数1: 'System.Attribute []'から 'System.Attribute'に変換できません – LDJ
私はドキュメントを見つけることができません...あなたは 'Binder'(' IBinder'ではなく)と 'BindAsync'(' Bind'ではなく)を使用していますか?私のために働く。 – Mikhail
申し訳ありませんが、あなたは正しいです。 IBinderをバインダーに変更するのを忘れました。今の魅力のように動作します。もう一度助けてくれてありがとう:) – LDJ