F#でhttpトリガAzure関数を作成していますが、DocumentClient
のパラメータをバインドして、Cosmos DBで実行されるクエリをより詳細に制御したいとします。これは私がこれまで持っているものです。Azure関数のパラメータ内のDocumentClientバインディング
Function.fs
namespace Functions
open System
open System.Net
open System.Net.Http
open Newtonsoft.Json
open Microsoft.Azure.Documents
open Microsoft.Azure.Documents.Client
open Microsoft.Azure.WebJobs
open Microsoft.Azure.WebJobs.Host
open Microsoft.Azure.WebJobs.Extensions
open Microsoft.Azure.WebJobs.Extensions.DocumentDB
module Function =
let Run(req: HttpRequestMessage, [<DocumentDB>] client: DocumentClient, log: TraceWriter) =
log.Info(sprintf "F# HTTP trigger function processed a request.")
req.CreateResponse(HttpStatusCode.OK)
function.json
{
"disabled": false,
"scriptFile": "..\\..\\..\\build\\Debug\\Functions\\Functions.dll",
"entryPoint": "Functions.Function.Run",
"bindings": [
{
"direction": "in",
"type": "httpTrigger",
"authLevel": "anonymous",
"name": "req",
"methods": [ "get" ],
"route": "users"
},
{
"direction": "in",
"type": "documentDB",
"name": "client",
"connection": "COSMOSDB_CONNECTION_STRING"
},
{
"direction": "out",
"type": "http",
"name": "res"
}
]
}
host.json
{
"frameworks": {
"net46":{
"dependencies": {
"Dynamitey": "1.0.2",
"FSharp.Interop.Dynamic": "3.0.0",
"Microsoft.Azure.DocumentDB": "1.17.0",
"Microsoft.Azure.WebJobs.Extensions.DocumentDB": "1.0.0"
}
}
}
}
local.settings.json
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsDashboard": "",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"COSMOSDB_CONNECTION_STRING": "AccountEndpoint=https://localhost:8081;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;"
}
}
開発ストレージとCosmos DBエミュレータを使用して、この機能をローカルで実行しています。私はF#に翻訳されようとしましたが、C#の場合はhereと記載されています。そしてそれはまた、言及されているものとほとんど同じですhere。しかし、私はエラーMicrosoft.Azure.WebJobs.Extensions.DocumentDB: 'Id' is required when binding to a DocumentClient property
だけを取得します。
はい、これが動作します。おめでとうございます! Microsoft.Azure.DocumentDB v.1.17をインストールしたので、v.1.13にダウングレードする必要がありました。 –
回避策をお寄せいただき、ありがとうございます。 –
Hm。私たちがPortal上の関数IDEでこのエラーを表示している場合、私たちが何をすべきか考えてみてください... – bc3tech