事象
Azure Functionsの統合で出力を設定し出力バインディングを作った。
コードサンプル
module.exports = async function (context, myBlob) {
context.log("JavaScript blob trigger function processed blob \n Blob:", context.bindingData.blobTrigger, "\n Blob Size:", myBlob.length, "Bytes");
const output = { "userId": 2, "message": "test" }
context.bindings.outputDocument = JSON.stringify(output);
};
遭遇したエラー
上のコードを実行すると以下のようなエラーが発生する
One of the specified inputs is invalid need id function
対策
どうやらIDは自動で設定されないらしい。Node.js SDKから実行するとIDを自動生成してくれるが、Azure Functionsから書き込む場合は設定されない。
お願い
Azureの公式情報やQ&Aの記事で上記の仕様についての記載を見つけられませんでした。もしご存じの方がいたらコメントください。
修正版コード
UUIDを取得してidにセットしています。
module.exports = async function (context, myBlob) {
context.log("JavaScript blob trigger function processed blob \n Blob:", context.bindingData.blobTrigger, "\n Blob Size:", myBlob.length, "Bytes");
const uuid = crypto.randomUUID();
context.log("insert CosmosDB ID:", uuid);
const output = { "id": uuid, "userId": 2, "message": "test" }
context.bindings.outputDocument = JSON.stringify(output);
};