2

我對WebJobs非常陌生,而且我正在努力處理看起來微不足道的事情。我有一個名爲「mydatastorage」的存儲帳戶和一個名爲「mydatacontainer」的容器。我一直在網上搜尋網絡,試圖執行以下基本場景:Azure存儲將Blob分析到表中

我有大量的blob(已存儲在Azure中)是html文件。我寫了一些代碼,可以將html字符串轉換爲TableEntity。然後我想將TableEntity保存到表「mydatatable」中。看起來我可以使用[Table]屬性來簡化將實體保存到表的過程,或者將其手動保存到方法調用中的表中。我的問題就是讓方法簽名正確,然後如何讓blob進入該方法。我對[Blob],[BlobTrigger]等所有屬性以及類型如ICollector<T>以及使用它們的正確方法(以及何時)都有些困惑。如果有人知道一個教程,解釋類似的情況,這個我很想知道它。

回答

5

嘗試使用this page瞭解有關使用BlobTrigger的信息。我們所有關於WebJobs SDK的最新文檔都可以在這個主要的資源頁面找到(http://azure.microsoft.com/en-us/documentation/articles/websites-webjobs-resources)。

下面是一個例子,指出你在正確的方向。您可以設置BlobTrigger以在添加斑點時觸發,並使用TableAttribute綁定到輸出表。綁定將爲您添加到它的任何實例添加表實體。您可以在上述資源鏈接中的表綁定上找到更多選項。希望這可以幫助。

public static void ImportHtmlBlob(
    [BlobTrigger("input/{name}")] Stream input, 
    string name, 
    [Table("yourtable")] ICollector<YourTableType> output) 
{ 
    ... 
} 
+0

您提供的第一個鏈接非常有幫助,第二個鏈接需要一些時間才能完成。感謝偉大的鏈接!我確實有一個問題。此代碼是否會選取Blob存儲中已存在的Blob(這正是我想要的)?它看起來不是,或者我只是需要更耐心地等待它開始處理斑點?我有一個10萬個html blob,所以也許我只是沒有耐心,或者我需要做其他事情來啓動現有的blob流程? – Beaker

+0

BlobTrigger使用的掃描/觸發算法在我鏈接到上面的第一頁中詳細介紹(再次[here](https://azure.microsoft.com/zh-cn/documentation/articles/websites-dotnet-webjobs-sdk-存儲二進制大對象 - 如何做/))。對於先前存在的斑點,這些將在啓動掃描期間被拾取。你應該看到它們開始被處理,並且在處理之後它們將爲每個處理器寫一個blob收據,詳見該幫助頁面。 – mathewc