2017-01-17 12 views
0

Azureテーブルストレージ内のレコードの挿入または更新時にトリガーを取得したいとします。そのために、私はこの方法以下と紺碧webjobを作成している...Azureテーブルの挿入レコードまたは更新レコードのWebjobトリガー

public static async Task ReadTableEntity(
     [QueueTrigger("inputqueue")] Contact contactInQueue, 
     [Table("Contact", "ContactId", "CityId")] Contact contactInTable, TextWriter logger) 
     { 

      logger.WriteLine("triggered"); 

     } 

しかし、上記の方法は、テーブル更新または挿入された新しいレコード内のすべてのレコードの後に​​呼び出されません。

テーブルのレコードを挿入または更新するときに呼び出される上記のメソッドを取得したいと思います。

私が間違っている場所を修正してください。

+0

[documentation](https://docs.microsoft.com/en-us/azure/app-service-web/websites-dotnet-webjobs-sdk-storage-tables-how-to)を参照してください。これを行う方法? –

+0

はい、すでに読んでいます。私が間違っている場所で私を修正できますか? –

+0

2つの回答のいずれかがあなたの質問を解決しましたか? –

答えて

1

このトリガーは、期待しているように機能しません。そうであるためには、それは存在しない "テーブルトリガー"の何らかのタイプである必要があります。ドキュメントから

は、コードスニペットの一部はつまり、ないトリガー属性のいずれかを使用して、手動呼び出される関数で使用される表の属性を示しています。

laymen用語: あなたのストレージテーブルを変更することはありません。テーブルストレージレコードを挿入または更新した後、この呼び出しをトリガする必要があります。あなたのWebジョブで

、あなたはあなたの方法をトリガする(documentationから)このような何かを追加することができます。

public class Program 
    { 
     static void Main(string[] args) 
     { 
      JobHost host = new JobHost(); 
      host.Call(typeof(Program).GetMethod("CreateQueueMessage"), new { value = "Hello world!" }); 
     } 

     [NoAutomaticTrigger] 
     public static void CreateQueueMessage(
      TextWriter logger, 
      string value, 
      [Queue("outputqueue")] out string message) 
     { 
      message = value; 
      logger.WriteLine("Creating queue message: ", message); 
     } 
    } 
1

私が知られているように、アズールWebJobs表のトリガーについて同様のissueがあります。また、誰かが機能要求発行Add Trigger for Azure Table Storageを投稿しました。私はこの機能リクエストを報告したいと思いますが、このtutorialに従って独自のバインディング拡張を構築するか、Mark C.の解決方法に従ってAzure Table Storageの挿入/更新レコードを手作業でトリガーして回避することができます。

関連する問題