Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Run appengine backup from task queue

In the 1.8.4 release of Google App Engine it states:

A Datastore Admin fix in this release improves security by ensuring that scheduled backups can now only be started by a cron or task queue task. Administrators can still start a backup by going to the Datastore Admin in the Admin Console.

The way to run scheduled backups with cron is documented, but how can we initiate backups from a task queue task?

Are there any other ways to programmatically run backup tasks?

like image 627
husayt Avatar asked Aug 29 '26 17:08

husayt


1 Answers

You can create a task queue task with method GET and URL "/_ah/datastore_admin/backup.create" with your parameters specified as arguments to the URL and target the task to run on the 'ah-builtin-python-bundle' version. Example:

url = '/_ah/datastore_admin/backup.create?filesystem=blobstore&name=MyBackup&kind=Kind1&kind=Kind2'
taskqueue.add(
        url=url,
        target='ah-builtin-python-bundle',
        method='GET',
        )

I have cron jobs that trigger my own handlers that then look up a config and create a task queue backup based on that config. This lets me change backup settings without having to update cron jobs and lets me have a lot more control.

The options you can specify in the URL are the same as the documentation describes for CRON job backups so you can specify namespace and gs-bucket-name as well.

I believe to do this in Java you have to create a queue with a target in the queue definition and add your tasks to that queue.

like image 97
Bryce Cutt Avatar answered Sep 01 '26 05:09

Bryce Cutt