大家晚上好
我正在编写小项目,想要添加到 Azure 存储(静态)访问计数器中托管的网站。 我想用 python 编写简短的脚本,当在 Azure Functions 中调用时,它会将记录的值更新为 +=1 我创建文档的方式:
## Create a container entry for amount of visits
try:
item = {
'id': 'visits',
'value': 0,
'description': 'amount of visits'
}
container.create_item(body=item)
print('Successfully added to DB')
except exceptions.CosmosHttpResponseError:
print('Cant do it')
我想将每次调用函数时现在访问值修改为一。 这两天试图解决这个问题,但我不明白。 我在这方面绝对是初学者,一生中从未做过类似的事情,因此,如果我能寻求建议或指出我去哪里寻找,那就太棒了。
跑步时:
item = container.read_item('visits', partition_key='/value')
item += 1
updated_item = container.upsert_item(item)
*我得到: 回溯(最近一次调用最后一次): 文件“c:\Users\DellWS\Desktop\The Cloud Resume Challenge\The-Cloud-Resume-Challenge unction_app.py”,第 69 行,位于 item = container.read_item('访问',partition_key='/value') 。 。 。 azure.cosmos.exceptions.CosmosResourceNotFoundError:(NotFound) 系统中不存在具有指定 ID 的实体。更多信息:https://aka.ms/cosmosdb-tsg-not-found, RequestStartTime:2024-02-27T19:21:44.4403736Z,RequestEndTime:2024-02-27T19:21:44.4554468Z,尝试的区域数量:1 *
尝试了不同的方式:
## Increment visit value
item_id = 'visits'
item = container.read_item(item=item_id, partition_key='/value')
print(item)
if item:
## increment a value by one
item['value'] += 1
container.replace_item(item=item, body=item)
print('Successfully incremented')
else:
print('Item not found, or couldnt update')
并且也收到上述错误代码。
我认为您遇到的问题是您使用 /value 作为主键,您还需要查找您要使用的项目。我会尝试以下方法:
不要犹豫,在评论中跟进,我最近一直在使用 Cosmos DB 在 Python 中做一些工作,所以如果需要的话,我不介意提供更大程度的帮助。