在google云控制台中,我可以使用 "Datastore > Entities "来一次更新一个实体,或者是让 SELECT
使用GQL进行查询。
我需要更新几个实体,一个一个地更新是不现实的。当我在本地GAE服务器中运行项目时,有没有一种方法可以进行更新查询或类似于 "管理服务器 "中存在的 "交互式控制台"?
EDIT:为了澄清一下,我想在不需要在我的生产服务器中部署新代码的情况下做到这一点。
我看了一下文档,看起来执行更新查询的唯一方法是通过使用任何一个 Java或Python我回顾了通过以下方式来管理Datastore的选项 gcloud 而没有运行GQL查询的选项。
因此,要实现你的目标,可以选择在Cloud Functions上创建一个简单的应用程序,执行参数中给出的GQL查询。
正如sergio franco所指出的,可以使用Cloud Functions访问数据存储并更新实体。依然需要部署函数,但由于这一切都可以从控制台完成,所以比起在项目中添加新代码并部署整个项目要简单快捷得多。
重要的是要记住,无论函数的大小,每次执行函数都会有价格。更多详情 此处
# Function dependencies, for example:
# package>=version
google-cloud-datastore==1.8.0
from io import StringIO
from google.cloud import datastore
datastore_client = datastore.Client()
def update_books(request):
buffer = StringIO()
query = datastore_client.query(kind='Book')
query.add_filter('author', '=', 'Terry Pratchett')
data = query.fetch()
for book in data:
book['rating'] = '5 stars'
client.put(book)
buffer.write('Updated book {}'.format(book['title']))
return buffer.getvalue()
函数返回的任何内容,都将被打印在页面的 "输出 "部分。
任何用 print
将被发送到日志
你可以像访问一个dict一样访问所有实体的属性。
来源:云函数