Table属性にテーブル名を指定してICollectorインターフェースを引数に渡してやればOKです。 ICollectorインターフェースの型引数はTableEntityあたりを拡張した型であればOKです。(自前でRowKeyとかPartitionKeyとか定義した型でもOK)
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Azure.WebJobs; using System.Configuration; using Microsoft.WindowsAzure.Storage.Table; namespace HelloWorld { public class Functions { // This function will get triggered/executed when a new message is written // on an Azure Queue called queue. public static void ProcessQueueMessage([QueueTrigger("queue")] string message, [Table("sample")] ICollector<Person> sample) { for (int i = 0; i < 100000; i++) { sample.Add(new Person { PartitionKey = message, RowKey = $"{DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ")}-{i}" , Name = $"okazuki {i}" }); } } } public class Person : TableEntity { public string Name { get; set; } } }
これでキューにメッセージが追加されたら延々と10万件データを作る処理が出来ます。
こんな感じでキューにメッセージを追加すると
こんな感じにテーブルにデータが追加されます。