在 CosmosDB 中创建项时的“不支持的路径计数”

"Unsupported Paths Count" when creating item in CosmosDB

提问人:Looi Wei En 提问时间:10/11/2023 更新时间:10/27/2023 访问量:110

问:

我有一个包含分层分区键的 Cosmos DB 容器。第一个分区键是 /WaID,第二个分区键是 /Media。我在 Azure 函数中使用在容器中创建项。下面是 的结构。每当向 Twilio 号码发送消息时,都会从 Twilio 在 WhatsApp 上发送的请求中获取信息。container.create_item(message_item)message_itemmessage_item

message_item = {
            "id": sms_message_sid,
            "WaId": wa_id,
            "Media": "false",
            "NumMedia": num_media,
            "ProfileName": profile_name,
            "SmsStatus": sms_status,
            "Body": body,
            "To": to,
            "NumSegments": num_segments,
            "ReferralNumMedia": referral_num_media,
            "AccountSid": account_sid,
            "From": sender_number,
            "ApiVersion": api_version,   
        }

当我向 Twilio WhatsApp 号码发送消息时,请求将发送到 Azure 函数并获取信息。但是,当线路运行时,会发生以下错误。
ps:当我create_item只有一个分区键的 Cosmos DB 容器中时,不会发生错误。如果我在 Azure Cosmos DB 接口上手动创建项,使用从 Twilio 传递的message_item中完全相同的值,也不会发生此错误。
create_item

ValueError: Unsupported paths count.

---

我尝试显式确定分区键,如下所示:

partition_key_values = {
    "WaId": wa_id,
    "Media": "false"
}

并像这样使用:create_item

container.create_item(message_item, partition_key=partition_key_values)

但它不起作用
---

关于如何为具有分层分区键的容器create_item正确方法的任何想法?

azure azure-cosmosdb partition database-partitioning

评论

0赞 Sajeetharan 10/11/2023
您正在使用的 SDK 是什么
0赞 Matias Quaranta 10/11/2023
如果这是 Python SDK,那么对分层分区键的支持刚刚合并,我认为它还没有发布
0赞 Looi Wei En 10/12/2023
我正在使用 python SDK,感谢您提供的信息!

答:

0赞 Cole Smith 10/27/2023 #1

此功能现已在 的预发行版中提供。您必须安装该版本或更高版本(供将来的读者使用)。有关如何使用它的信息,请访问:https://github.com/Azure/azure-sdk-for-python/pull/31121azure-cosmos 4.5.2b1