Pandora Pocket

IT系と日常系の備忘録。三日坊主。

Azure Functions v3でCosmosDBの基本処理を実行するためのサンプルプロジェクト

せっかくAzureでCosmosDBの無料枠ができたので、使わない手はないなと思って基本的な挙動確認用のプロジェクトを作成してみました。

CosmosDBのデータベース、コンテナ作成から登録更新検索削除の一通りの基本処理をAzure Functionsのv3環境で実装しています。

学習がてらDI実装。Azure CosmosDB Emulator をインストールすればローカル実行可能です(というよりはまだAzure上で確認してない)。

あくまでサンプルなので異常系の対応とかは特に入ってません。

余談

当初せっかくv3環境なのでNewtonsoft.Jsonを用いず、System.Text.Jsonを利用しようと考えていたのですが、うまくいかず断念しました。
プロパティ名は頭を大文字にするため、Newtonsoft.Jsonだと JsonProperty を用いて別名を指定するわけですが、同じ挙動をするはずのSystem.Text.JsonJsonPropertyName だと

The input content is invalid because the required properties - 'id; ' - are missing

というエラーが出てしまい実行に失敗してしまいます。
どうもCosmosDBのv3SDKはまだNewtonSoft.Jsonにがっつり依存しているため、System.Text.Jsonを使いたいならv4までまて、ということのようです。

余談の追記

Version 3.1.2からSerializerOptionsでcamelCase指定ができるようになってたようです。
これを設定しておけばそもそもJsonPropertyの指定も不要ですね。

参考サイト