2017-04-11 8 views
0

私はいくつかのコンテナを持つAzureストレージアカウントを持っています。私は新しいブロブを検出するためにBlobTrigger Functionを使用しています。Azure BlobTriggerストレージアカウントの機能

これは完全に機能しているようです。しかし、BlobTriggerは1つのコンテナでのみ動作します。 1つのトリガーのコンテナを作成するのは悪い考えです(私はたくさんのコードを複製します)。

これを簡略化する方法はありますか?アイデアは高く評価されています。

PS:コンテナ内に10K個以上のブロブがある場合、BlobTriggerは信頼できないことが分かりましたが(これは私のケースではありません)。

答えて

0

これを簡略化する方法はありますか?アイデアは高く評価されています。

Azure Storage blobトリガーでは、新しいBlobと更新されたBlobを1つのストレージコンテナでのみ監視できます。 Azureストレージアカウントで複数のコンテナを監視する場合は、複数の機能を作成する必要があります。

ブロブ変更処理ロジックを1つのメソッドに記述し、他の関数が呼び出されたときにこのメソッドを呼び出すことをお勧めします。

public static void ProcessBlob(string containerName, string blobName, CloudBlockBlob blob) 
{ 
    //Write your logic here 
} 

public static void ProcessBlobContainer1([BlobTrigger("container1/{blobName}")] CloudBlockBlob blob, string blobName) 
{ 
    ProcessBlob("container1", blobName, blob); 
} 

public static void ProcessBlobContainer2([BlobTrigger("container2/{blobName}")] CloudBlockBlob blob, string blobName) 
{ 
    ProcessBlob("container2", blobName, blob); 
} 

GitHubには、あなたの質問に関連する未解決の問題があり、すぐに解決されることを期待しています。

Add ability to create blob triggers on a container names that match a pattern

+0

私はAzureのWebJobとしてこれを実装する必要がありますか? CantはこれをAzure関数に収めるように思われます(バインディングでコンテナ値を設定するとき) – reachify

+0

はい、これをWebJobとして実装できます.WebJobに複数の関数を定義できます。 – Amor

関連する問題