Программные резервное хранилище данных на основе среды
Это происходит в дополнении к ответу Джейми. Мне нужно было создать резервную копию хранилища данных в облачном хранилище на основе среды (промежуточной сборки/производства). К сожалению, этого больше не может быть достигнуто с помощью cronjob, поэтому мне нужно было сделать это программно и создать cron для моего скрипта. Я могу подтвердить, что работает ниже, поскольку я видел, что некоторые люди жаловались, что они получают 404. Однако он работает только в живой среде, а не на локальном сервере разработки.
from datetime import datetime
from flask.views import MethodView
from google.appengine.api import taskqueue
from google.appengine.api.app_identity import app_identity
class BackupDatastoreView(MethodView):
BUCKETS = {
'app-id-staging': 'datastore-backup-staging',
'app-id-production': 'datastore-backup-production'
}
def get(self):
environment = app_identity.get_application_id()
task = taskqueue.add(
url='/_ah/datastore_admin/backup.create',
method='GET',
target='ah-builtin-python-bundle',
queue_name='backup',
params={
'filesystem': 'gs',
'gs_bucket_name': self.get_bucket_name(environment),
'kind': (
'Kind1',
'Kind2',
'Kind3'
)
}
)
if task:
return 'Started backing up %s' % environment
def get_bucket_name(self, environment):
return "{bucket}/{date}".format(
bucket=self.BUCKETS.get(environment, 'datastore-backup'),
date=datetime.now().strftime("%d-%m-%Y %H:%M")
)
Пытаюсь сделать так, получая 404 , есть идеи?? – Gilad
Включили ли вы datastore_admin для своего приложения? См. Https://developers.google.com/appengine/docs/adminconsole/datastoreadmin#Enable_datastore_admin –
Удалось ли вам это сделать? –