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