2017-04-11 128 views
0

我有一個包含多個容器的Azure存儲帳戶。我正在使用BlobTrigger函數來檢測新的斑點。存儲帳戶上的Azure BlobTrigger功能

現在這似乎工作完美。但是BlobTrigger只能在一個容器上工作。似乎創建一個觸發器容器是個壞主意(我將複製大量代碼)。

有什麼辦法可以簡化它嗎?想法是讚賞的。 PS:我知道如果容器中有10K或更多的Blob或更多BlobTrigger是不可靠的(但這不是我的情況)。

回答

0

有什麼辦法可以簡化嗎?想法是讚賞的。

Azure存儲blob觸發器僅允許您監視一個存儲容器中是否存在新的和更新的blob。如果要監視Azure存儲帳戶中的多個容器,則需要創建多個功能。

我建議你在一個方法中編寫blob改變的處理邏輯,並在其他函數被調用時調用這個方法。

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實現?似乎不適合這個Azure函數(因爲你在綁定中設置容器值) – reachify

+0

是的,你可以實現這個作爲WebJob,我們可以在WebJob中定義多個函數。 – Amor