1
1

【解決】CosmosDBの「ValueError: Unsupported paths count.」について

Last updated at Posted at 2024-03-04

起きた現象

  1. 複数のパーティションキーを設定したコンテナを作成
  2. python SDKを使用してアイテムを登録する。
  3. ValueError: Unsupported paths count.が発生する。

解決策

バージョン4.5.2b1をインストールする。

pip install azure-cosmos==4.5.2b1

もう少し詳しく

複数パーティションキーの設定

コンテナ作成時に、複数のパーティションキーを設定することができます。
以下では試しに

  • id
  • email
  • address

を設定しております。

スクリーンショット 2024-02-28 112906.png

このような設定を行うことで、同じid, email, address の組み合わせのアイテムを追加することが出来なくなります。

実行したコード

このコンテナに対して、pythonを使用してアイテムを追加しようとすると、バージョン4.5.1ではエラーが発生しました。

具体的なコードは以下です。

from azure.cosmos import CosmosClient

client = CosmosClient(database_endpoint, database_key)
database_client = client.get_database_client(database_name)
container_client = database_client.get_container_client(container_name)

item = {
    "id": "test_id", 
    "email": "hoge@piyo.com", 
    "address": "kanagawa"
}

# ここでエラー
container_client.create_item(body=item, enable_automatic_id_generation=True)

まとめ

今回のエラーを解決するにあたって、以下のISSUEを参考にさせていただきました。
https://github.com/Azure/azure-sdk-for-python/issues/30670

だれかの助けになれば幸いです。

ご紹介

株式会社ジールでは、「ITリテラシーがない」「初期費用がかけられない」「親切・丁寧な支援がほしい」「ノーコード・ローコードがよい」「運用・保守の手間をかけられない」などのお客様の声を受けて、オールインワン型データ活用プラットフォーム「ZEUSCloud」を月額利用料にてご提供しております。
ご興味がある方は是非下記のリンクをご覧ください:
https://www.zdh.co.jp/products-services/cloud-data/zeuscloud/?utm_source=qiita&utm_medium=referral&utm_campaign=qiita_zeuscloud_content-area

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1