【Azure Cosmos DB】Partition key は先頭にスラッシュを入れるのを忘れてはいけない

問題点

Azure Functions の出力バインドに Azure Cosmos DB を接続している状態で、データを書き込もうとしたらこのようなエラーが表示された。

The partition key component definition path 'Date' could not be accepted, failed near position '0'. Partition key paths must contain only valid characters and not contain a trailing slash or wildcard character.

このときの出力バインドはこんな感じ

f:id:takunology:20220201015237p:plain

関数アプリのプログラムのほうはこんな感じ

f:id:takunology:20220201015048p:plain

解決法

出力バインド Cosmos DB の設定で Partition key の先頭に / をつければ解決する。

修正前 修正後
Date /Date

これがないと、上記のようなエラーが出る。ちなみに、プログラムも同様に先頭に / を入れないと一致しないので必ず修正が必要。よくよく考えてみたら、 Partition key は "パーティションを区切るためのキーになるもの" なので、そのパスとなるような指定が必要だと気づいた。なんか勘違いして "パーティション用のキー(パスワード的な意味)" と読み取ってしまったみたい。

でもこれ、”Partition key の末尾には /ワイルドカードを入れるな” というメッセージに読めるので、誤解しそう。とりあえず気づいてよかった。