自动备份到Google云端存储 - 使用cron.yaml进行Google App Engine数据存储

Ale*_* D. 5 google-app-engine

所以,我正在尝试使用cron.yaml自动化GAE数据存储区备份.此外,我想使用Google云端存储作为备份的目的地.我创建了一个存储桶并设置了ACL.手动备份可在Datastore管理控制台中运行.我甚至可以让cron工作.但是,我们将相同的代码库推送到3个不同的环境:dev,staging,production.所以,我想根据应用程序名称将备份分成不同的存储桶.

我想暂存数据存储区转到myapp_staging_bk存储桶,在myapp_dev_bk存储桶中启用dev,然后转到myapp_live_bk.

cron.yaml:

    cron:
- description: My Daily Backup
  url: /_ah/datastore_admin/backup.create?name=BackupToCloud&kind=LogTitle&kind=EventLog&filesystem=gs&gs_bucket_name=whitsend
  schedule: every 12 hours
  target: ah-builtin-python-bundle
Run Code Online (Sandbox Code Playgroud)

如果我能想出一种在上面的url中提取应用程序名称的方法,那么所有这些都非常容易.像这样的东西:

url: /_ah/datastore_admin/backup.create?name=BackupToCloud&kind=LogTitle&kind=EventLog&filesystem=gs&{myapp}_bk=whitsend
  schedule: every 12 hours
Run Code Online (Sandbox Code Playgroud)

其中{myapp}将是app.yaml中应用的名称.

https://developers.google.com/appengine/articles/scheduled_backups没有说明此类型的设置.

我知道我可以用我们的CI服务器来解决这个问题,但我想避免这种情况.

有没有人有什么建议?

Nic*_*son 3

修改 cron 处理程序以调用您自己的代码,然后根据您的 App ID 填写存储桶名称参数后,从您自己的代码中调用该代码以启动备份,或者从您自己的代码中 URLFetch 进行备份。