簡體   English   中英

Azure Functions Blob觸發器動態綁定

[英]Azure Functions Blob Trigger Dynamic Binding

我需要一個Azure Functions Blob觸發器來觸發運行時由應用程序設置提供的存儲桶。 我讀到有可能這樣做:

[FunctionName("Process")]
public static async Task Process([BlobTrigger("%BucketName%/{name}", Connection = "AzureWebJobsStorage")] Stream avroBlobStream, string name, TraceWriter log)
{
}

如果我在BucketName的“ Values字段中只有BucketName ,則此操作在本地可用。

{
  "IsEncrypted": false,
  "Values": {
    "BucketName": "capture-bucket",
  }
}

如果它不在“值”字段中,則為錯誤:

[6/24/2019 5:52:15 PM] Function 'SomeClass.Process' failed indexing and will be disabled.
[6/24/2019 5:52:15 PM] No job functions found. Try making your job classes and methods public. If you're using binding extensions (e.g. ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. config.UseServiceBus(), config.UseTimers(), etc.).

我將僅BucketName的設置放入Azure App函數中,但這給了我同樣的錯誤。 當在實際的Azure環境中時,您能否建議應該調用該設置或我做錯了什么? 應該是Values:BucketName嗎? 但是我從未在Microsoft網站上看​​到以Values:作為前綴的示例。

對於您的錯誤,我進行了測試,一種情況是未安裝Microsoft.Azure.WebJobs.Extensions.Storage程序包。 安裝后,它將正常工作。 你可以試試看。

至於動態綁定,官方教程中有一個描述: 綁定表達式-app settings 當您在本地測試時,應用設置值來自local.settings.json文件。 我不知道您為什么使用appsettings.json。 格式就是您粘貼的格式。

在Azure上,由於local.settings.json的設置不會隨VS一起部署,因此您必須轉到Azure Function Configuration,然后設置綁定名稱。

在此處輸入圖片說明

在此處輸入圖片說明

我已經測試過,這種方式可以正常工作,可以處理我的Blob文件。

在此處輸入圖片說明

希望這對您有所幫助,如果我誤解了您的要求,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM