せっかくAzureでCosmosDBの無料枠ができたので、使わない手はないなと思って基本的な挙動確認用のプロジェクトを作成してみました。
CosmosDBのデータベース、コンテナ作成から登録更新検索削除の一通りの基本処理をAzure Functionsのv3環境で実装しています。
学習がてらDI実装。Azure CosmosDB Emulator をインストールすればローカル実行可能です(というよりはまだAzure上で確認してない)。
あくまでサンプルなので異常系の対応とかは特に入ってません。
余談
当初せっかくv3環境なのでNewtonsoft.Jsonを用いず、System.Text.Jsonを利用しようと考えていたのですが、うまくいかず断念しました。
プロパティ名は頭を大文字にするため、Newtonsoft.Jsonだと JsonProperty
を用いて別名を指定するわけですが、同じ挙動をするはずのSystem.Text.Jsonの JsonPropertyName
だと
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の指定も不要ですね。
参考サイト
Microsoft Azure Cosmos DB .NET SDK Version 3 のクライアントオプション