2017-06-07 117 views
2

我是Azure函數的新手,試圖將它們與Blob存儲結合使用。Visual Studio Azure函數發佈function.json

我已經下載的Visual Studio 2017年預覽它給了我進入創建Azure的功能項目模板(https://marketplace.visualstudio.com/items?itemName=AndrewBHall-MSFT.AzureFunctionToolsforVisualStudio2017

那麼下面這個例子https://blogs.msdn.microsoft.com/webdev/2017/05/10/azure-function-tools-for-visual-studio-2017/我能夠創造VS新功能,然後發佈到Azure的。

當我再看看Azure時,可以看到我的新函數,但它只顯示function.json文件中的json。

enter image description here

所以,當我的功能代碼只是

public static void Run([BlobTrigger("images/{name}", 
    Connection = "fakename_STORAGE")]Stream myBlob, string name, TraceWriter log) 

然而,當我要開始輸出玩弄,我改變我的代碼,以將此工作正常out string myOutputBlob

public static void Run([BlobTrigger("images/{name}", 
    Connection = "fakename_STORAGE")]Stream myBlob, string name, out string myOutputBlob, TraceWriter log) 

然後發佈到Azure,我看到一個錯誤:

Microsoft.Azure.WebJobs.Host: Cannot bind parameter 'myOutputBlob' to type String&. Make sure the parameter Type is supported by the binding.

我可以避開這買更新Azure上的function.json文件中的其他信息,

enter image description here

但我每次發佈到Azure的時候,這個文件將被覆蓋。

我已經嘗試添加一個function.json文件到我的項目匹配所需的配置,但這是行不通的。我錯過了什麼嗎?

如何確保function.json文件不被每次覆蓋?我是否需要配置我的項目以允許我管理文件?

回答

6

你必須裝飾與屬性的輸出參數配置,你需要什麼樣的輸出的結合:

public static void Run(
    [BlobTrigger("images/{name}", Connection = "fakename_STORAGE")]Stream myBlob, 
    string name, 
    [Blob("images/copy-{name}", Connection = "fakename_STORAGE")]out string myOutputBlob, 
    TraceWriter log) 

它會根據您在function.json添加所需的線發佈。

+0

工程就像一個魅力。非常感謝! –