有幾種不同的方法可以完成此操作。首先,如果需要輸出的斑點數量爲固定爲,則可以使用多個輸出綁定。
using System;
public class Input
{
public string Container { get; set; }
public string First { get; set; }
public string Second { get; set; }
}
public static void Run(Input input, out string first, out string second, TraceWriter log)
{
log.Info($"Writing 2 blobs to container {input.Container}");
first = "Azure";
second = "Functions";
}
以及相應function.json:
{
"bindings": [
{
"type": "manualTrigger",
"direction": "in",
"name": "input"
},
{
"type": "blob",
"name": "first",
"path": "{Container}/{First}",
"connection": "functionfun_STORAGE",
"direction": "out"
},
{
"type": "blob",
"name": "second",
"path": "{Container}/{Second}",
"connection": "functionfun_STORAGE",
"direction": "out"
}
]
}
爲了測試上面的,我發送測試JSON有效載荷的功能,和斑點產生:
{
Container: "test",
First: "test1",
Second: "test2"
}
的上面的示例演示瞭如何從輸入中綁定Blob容器/名稱值(通過{Container}/{First}
{Container}/{Second}
路徑表達式)。你只需要定義一個POCO來捕獲你想要綁定的值。我在這裏使用ManualTrigger是爲了簡單起見,但它也適用於其他觸發器類型。此外,雖然我選擇了綁定到out string
類型,可以綁定到任何其他支持的類型:TextWriter
,Stream
,CloudBlockBlob
等
如果需要輸出斑點的數量是變量,那麼你可以使用Binder來強制綁定和寫入功能代碼中的斑點。有關更多詳細信息,請參見here。要綁定到多個輸出,您只需使用該技術執行多個命令式綁定。
FYI:我們的文檔是不正確的,所以我記錄一個錯誤here得到固定,:)
我想的是勢在必行的模式。我得到一個編譯錯誤 - 見下文。 –
//命令式綁定到存儲 blobPath = $「json/{fileNamePart} _ {dateString}」; var attributes = new Attribute [] { new BlobAttribute(blobPath), new StorageAccountAttribute(storageAccount) }; using(var writer = binder.Bind(attributes)){ writer.Write(jsonString.ToString()); } –
錯誤: 2017-02-12T00:43:43.243功能開始(ID = 6d48c79d-5af3-4c9a-b4ab-242d186e7c33) 2017-02-12T00:43:43.243功能編譯錯誤 2017-02- 12T00:43:43.243(225,73):error CS1026:)expected 2017-02-12T00:43:43.243(225,61):error CS1503:Argument 2:無法從'System.Attribute []'轉換爲' System.Attribute' 2017-02-12T00:43:43.243(161,13):警告CS0162:檢測到無法檢測到的代碼 2017-02-12T00:43:43。243(191,17):警告CS0162:檢測到無法檢測到的代碼 2017-02-12T00:43:43.243功能已完成(失敗,Id = 6d48c79d-5af3-4c9a-b4ab-242d186e7c33) –