CosmosDBのデータを入力バインディングで取得して表示するAzureFunctionをjsでしようとしたらInternal500エラーでつまづいたの解決メモ
###Error内容
Can't bind CosmosDB to type 'System.String'.
Possible causes:
1) Tried binding to 'Microsoft.Azure.Documents.Client.DocumentClient, Microsoft.Azure.DocumentDB.Core, Version=2.9.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' but user type assembly was 'System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e.
###functioin.jsonから下記を削除で解決らしい
"id": "",
"sqlQuery": ""
削除して保存しても、上書きできなかったです。。
###旧UIで構築して新UIで実行
関数のトップの概要から旧UIに切り替えして入力バインディングを設定
これで一覧取得の動作確認できました。。
module.exports = async function (context, req) {
// 一覧
context.res = {
status: 200,
body: context.bindings.inputDocument.filter(elm => !elm.isDeleted).map(elm => {
return {
id: elm.id,
title: elm.title,
content: elm.content
};
})
};
};
###参考サイト
Azure Cosmos DB input binding for an Azure Function doesn't work
https://stackoverflow.com/questions/61988060/azure-cosmos-db-input-binding-for-an-azure-function-doesnt-work
Azure learning error: Can't bind CosmosDB to type 'System.String'
https://docs.microsoft.com/en-us/answers/questions/31217/azure-learning-error-cant-bind-cosmosdb-to-type-sy.html