1. 程式人生 > 其它 >使用VS Code將Azure Functions連線到儲存

使用VS Code將Azure Functions連線到儲存

技術標籤:VS CodeC#vs codeazure functionstorage accountqueue

使用VS Code將Azure Functions連線到儲存

配置本地環境

下載函式應用設定

下載儲存在Azure中的應用設定中的儲存賬戶連線字串到local.settings.json檔案中,使在本地執行函式時連線到該儲存賬戶,並將訊息寫入該儲存賬戶的佇列中。

  • 同時按下Shift+Command+P,開啟命令面板,鍵入 Azure Functions:Download Remote Settings…。
  • 選擇在上一個示例中建立的函式應用,選擇"全是"覆蓋現有本地設定。
  • 屬性值AzureWebJobsStorage即為用於訪問該儲存賬戶連線字串值的鍵。

註冊繫結擴充套件

在終端中輸入以下命令並執行,將儲存擴充套件包新增到專案中。

dotnet add package Microsoft.Azure.WebJobs.Extensions.Storage

現在,你可以將儲存輸出繫結新增到專案。

新增輸出繫結

在C#類庫專案中,繫結被定義為函式方法上的繫結屬性。然後,基於這些屬性自動生成Functions所需的function.json檔案。
開啟HttpExamples.cs專案檔案,並將以下引數新增到Run方法定義中:

[Queue("outqueue"),StorageAccount("AzureWebJobsStorage")] ICollector<string> msg,

msg 引數為ICollector型別,表示函式完成時寫入輸出繫結的訊息集合。在這種情況下,輸出是名為outqueue儲存佇列。儲存賬戶的連線字串由StorageAccountAttribute設定。此屬性指示包含儲存賬戶連線字串的設定,可以在類、方法或引數級別應用。在當前情況下,可以省略StorageAccountAttribute,因為你已使用預設儲存賬戶。

Run方法定義如下所示:

        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
            [Queue("outqueue"), StorageAccount("AzureWebJobsStorage")] ICollector<string> msg, 
            ILogger log)

使用輸出繫結時,無需使用Azure儲存SDK程式碼進行身份驗證、獲取佇列引用或寫入資料。Functions執行時和佇列輸出繫結將為你執行這些任務。
使用msg輸出繫結物件來建立佇列訊息,如下所示:

if (!string.IsNullOrEmpty(name))
{
    // Add a message to the output collection.
    msg.Add(string.Format("Name passed to the function: {0}", name));
}

在本地執行函式

成功執行後,在瀏覽器中開啟Uri,如http://localhost:7071/api/HttpExample?name=test,會在瀏覽愛視窗中顯示內容。

檢查輸出佇列

  1. 在VS Code中,開啟命令面板,搜尋並執行命令 Azure Storage:Open in Storage Explorer,選擇你的儲存賬戶名稱。隨即將在Azure儲存資源管理器中開啟你的儲存賬戶。
  2. 展開"佇列"節點,然後選擇名為outqueue的佇列。
    此佇列包含在執行HTTP觸發的函式時佇列輸出繫結建立的訊息。

重新部署並驗證更新的應用

  1. 在VS Code中開啟命令面板,搜尋並執行命令 Azure Functions: Deploy to function app…。
  2. 選擇你之前建立的函式應用。
  3. 部署完成後,可以使用curl或瀏覽器測試重新部署的函式。與前面一樣,將查詢字串 ?name= 追加到url,如: https://testcreatefunctionbyvscode.azurewebsites.net/api/HttpExample?code=1234567890?name=test

內容摘自官方文件