我有一个包含分层分区键的 Cosmos DB 容器。第一个分区键是 /WaID,第二个分区键是 /Media。我在 Azure 函数中使用
container.create_item(message_item)
在容器中创建项目。下面是message_item
的结构。 message_item
中的信息是每当消息发送到 Twilio 号码时从 Twilio 在 WhatsApp 上发送的请求中获取的。
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 Function 并获取信息。然而,当
create_item
行运行时,会出现以下错误。create_item
在只有一个分区键的Cosmos DB容器中时,不会出现该错误。如果我在 Azure Cosmos DB 界面上使用从 Twilio 传递的 message_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-cosmos 4.5.2b1
进行预发布。您必须安装该版本或更高版本(供未来发布的读者使用)。有关如何使用它的信息可以在这里找到:https://github.com/Azure/azure-sdk-for-python/pull/31121