我们正在通过 cron 为我们的 Google Datastore 文档执行备份,具体如下:这里。数据库约 55GB(包括索引),我们每 24 小时进行一次完整备份。我们保存到的存储桶属于另一个项目。
备份成功,我们可以毫无问题地将它们恢复到我们的暂存环境中!
尽管如此,我们发现备份运行时出现了很多错误。错误来自模块ah-builtin-python-bundle
,错误消息是Request was aborted after waiting too long to attempt to service your request.
这导致我们的监控向我们发出警报(我们的阈值为 3 分钟内每秒 1.5 个错误)。
显然,我们希望消除这些错误,以避免在我们的监控中出现误报。
答案1
答案2
我知道这篇文章有点老了,但我会在这里留下一些有趣的文档,你可能会发现它们对新建议的方法有帮助使用 App Engine 在 Cloud Datastore 中安排导出。我猜你的问题仍然无法重现,所以我建议任何阅读这篇文章的人最好使用这个新的云平台功能。
请务必参考上一个链接以获取详细说明(并更新,因为截至撰写本文时,此功能处于测试版并且可能会改变),但下面我将总结使用 chron 和 App Engine 从 Cloud Datastore 安排导出的主要步骤:
- 在与 Datastore 相同的位置创建一个 Cloud Storage 存储桶。
- 分配云数据存储导入导出管理员角色到您的 App Engine 默认服务帐户(看起来应该是这样的) [电子邮件保护])。
- 将存储桶的写入权限分配给 App Engine 默认服务帐号。
- 创建一个新的本地文件夹,其中包含文件
app.yaml
(App Engine 配置)、cloud_datastore_admin.py
(App Engine 应用程序本身)和cron.yaml
(cron 作业),并使用我在一开始分享的链接中的内容填充它们,确保替换任何必需的内容以匹配资源的命名。同时编辑计划任务配置文件,以便根据您的要求设置适当的导出策略。 - 设置好应用程序的完整配置后,请部署它(包括计划任务作业),对其进行测试并在 Cloud Storage 存储桶中查看您的导出内容。