テーブルに出力するAzure関数を作成しようとしています。私はAzure関数Appを使用しているので、現在理解しているように、function.jsonはSDKによって私のために生成されます。私の関数の定義は次の通りです:出力バインドとfunction.jsonの生成
public static HttpResponseMessage Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)]HttpRequestMessage req,
TraceWriter log,
[StorageAccount("table_storage")] ICollector<TableItem> outputTable)
私はTableEntityから継承するクラスとしてTableItemを定義しました。私はこれを展開し、生成されたfunction.jsonを見ると、それは、出力パラメータが結合言及していない:
{
"generatedBy": "Microsoft.NET.Sdk.Functions.Generator-1.0.7",
"configurationSource": "attributes",
"bindings": [
{
"type": "httpTrigger",
"methods": [
"post"
],
"authLevel": "function",
"name": "req"
}
],
"disabled": false,
"scriptFile": "../bin/FunctionApp5.dll",
"entryPoint": "FunctionApp5.DeliveryComplete.Run"
}
私は、Visual Studioからこれを実行する場合、私は次のエラーを取得する:
Cannot bind parameter 'outputTable' to type ICollector`1
私はこの動作に関するいくつかの質問があります:最初と主なものは、function.jsonが出力バインディングを表示しないのはなぜですか?第2に、VSから展開するときにこれを編集できない理由を理解していますが、推測なしにバインディングを管理する方法があります(私はthis postのICollectorを使用していました)が、またはそこにはいけません。
最後に、これをデスクトップから実行すると、公開された関数とどのように対話しますか:関数の公開バージョンに接続するのか、function.jsonをローカルに生成しますか?
ありがとう。私はなぜそれが混乱の一般的な原因であるかを見ることができます。あなたが共有しているリンクは、出力バインディングの例を示しています。ちょうどいいえではっきりするように。 3、あなたは、サーバー上のfunction.jsonが何であれ、(生成された?)1を使用することを意味しますか? –
@ pm_2 Azureにデプロイされているものは、ローカルで実行するものには影響しません。 – Mikhail
ありがとうございます - それはうまくいくようです(より良い)。これは別の質問かもしれませんが、TableItemはITableEntityを実装するTableEntityから継承されているため(RowKeyを実装しています)、「テーブルエンティティタイプはRowKeyプロパティを実装する必要があります」というエラーが発生しました。 –