簡體   English   中英

使用HTTP觸發器將Azure Function連接到Azure Storage Blob

[英]Connecting Azure Function to Azure Storage Blob with HTTP trigger

我遇到了多種將Azure存儲Blob連接到Azure的方法( 例如,類似於此函數),但是所有這些方法都要求我在Run函數中使用BlockBlob類型參數,因此替換了我需要的HTTPRequestMessage參數。 有沒有辦法保留HTTPRequestMessage參數並連接到Azure存儲Blob?

最終,我需要從Blob獲取文件引用,以通過Azure Function發送到另一個服務。

當我嘗試向Run添加更多參數時,該函數正確編譯,但返回500錯誤。 當我將參數改回兩個時,它可以正常工作。 唯一的區別是在參數和function.json上添加了一段,從而使整個文件看起來像這樣:

{
  "bindings": [
    {
      "authLevel": "function",
      "name": "req",
      "type": "httpTrigger",
      "direction": "in",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "type": "blob",
      "name": "myBlobbo",
      "path": "mycontainer",
      "connection": "value",
      "direction": "inout"
    },
    {
      "name": "$return",
      "type": "http",
      "direction": "out"
    }
  ],
  "disabled": false
}

//好吧,現在的日志告訴我,盡管我有一個local.settings.json文件,但我沒有指定連接字符串:

{
  "ConnectionStrings": 
  {
    "xyz": "DefaultEndpointsProtocol=https;AccountName=xxx;AccountKey=yyy;EndpointSuffix=core.windows.net"
  }
}

我可能只是通過將URI傳遞給CloudBlobContainer並使用文件流或%TEMP%傳遞內容來手動連接,但是我仍然非常想知道如何使此綁定起作用。

//我正在使用Azure環境開發該功能。

以下示例顯示如何使用HttpRequest(HttpTrigger,Blob輸入,Http輸出)獲取Blob內容:

run.csx

using System.Net;

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, string inputBlob, TraceWriter log)
{
    log.Info("Blob content: " + inputBlob);
    return req.CreateResponse(HttpStatusCode.OK, inputBlob);
}

functions.json

{
  "bindings": [
    {
      "authLevel": "function",
      "name": "req",
      "type": "httpTrigger",
      "direction": "in",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "name": "$return",
      "type": "http",
      "direction": "out"
    },
    {
      "type": "blob",
      "name": "inputBlob",
      "path": "incontainer/myblob.txt",
      "connection": "AzureWebJobsDashboard",
      "direction": "in"
    }
  ],
  "disabled": false
}

存儲: 在此處輸入圖片說明

AzureWebJobsDashboard:

在此處輸入圖片說明

暫無
暫無

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

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