AzureFunctionsでCosmosDBの入力バインディングでInternal500エラー解消


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