Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

Azure WebJobsでTable storageにupsertをかける

$
0
0

WebJobsを使うときには、TableStorageに対してICollectorでデータを追加したり、IQueryableでデータを検索したりできて便利でしたが、より細かな制御(ここでいうupsertみたいなこと)をするにはTableStrageのAPIを直接たたく必要があります。 TableStorageのAPIを直接たたくには、CloudTableを引数に受け取るようにします。

以下のコードはキューに入れられたJSONをテーブルに突っ込むコードです。すでにデータが存在する場合は既存のデータとマージします。

using Microsoft.Azure.WebJobs;
using Microsoft.WindowsAzure.Storage.Table;

namespace HelloWorld
{
    publicclass Functions
    {
        // This function will get triggered/executed when a new message is written // on an Azure Queue called queue.publicstaticvoid ProcessQueueMessage(
            [QueueTrigger("queue")] Person message, 
            [Table("sample")] CloudTable sample)
        {
            var op = TableOperation.InsertOrMerge(message);
            sample.Execute(op);
        }
    }

    publicclass Person : TableEntity
    {
        publicstring Name { get; set; }
    }
}

queueにこんなJSONを投げ込むと

{"PartitionKey": "okazuki",
    "RowKey": "test",
    "Name": "sample taro"}

テーブルにデータが作られます

f:id:okazuki:20160206104526p:plain

次にこんなJSONを投げ込むと

{"PartitionKey": "okazuki",
    "RowKey": "test",
    "Name": "tanaka"}

データが書き換わります。

f:id:okazuki:20160206105032p:plain


Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>