[英]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.