Functionの中でも CosmosClient は使用できる!

更新:2021/07/16 07:01 by なす

FunctionのJavaScript版の説明では、CosmosDBバインド拡張機能を使う例しかでてこないので、
FunctionでCosmosDBにアクセスするには、bindingに記述するしかないのかと思ってしまいました。
ドキュメントの書かれているべき場所に書かれているべきことが書かれていないのは痛いですTT
Functionでも、CosmosDB用のAzure SDK for jsは問題なく使えて、あっさり動きました;
npm install @azure/cosmos
して

 const { CosmosClient } = require("@azure/cosmos");
 const endpoint = "https://*******.documents.azure.com:443";
 const key = "hirakegoma";
 const client = new CosmosClient({ endpoint, key });
 const container = client.database("kotaro").container("messages");
 
 module.exports = async function (context, req) {
     const data = await container.items.readAll().fetchAll()
     context.res = {
         body: data
     };
 }

Functionコードにクエリー実行コードが書けるんですね。
もっとも、CosmosClientにC#のLINQのようなメソッドはなくて、queryはSQLで指定しなければならないようですが、
実行するSQLをコードで準備できるようになれば、まあ一件落着です。

親ノート

CosmosDB拡張モジュールの気がかりなこと 更新:2021/07/16 00:13 by なす