安装
我在遵循问题AppEngine datastore - backup programatically的未被接受答案后遇到了404问题。
如问题提供者所建议的那样,我已经启用了Datastore Admin。我可以在Google App Engine控制台中手动触发数据存储备份,备份运行没有任何故障。
此问题中的代码位于名为“app”的模块中,而非“default”模块。
404问题
这是cron.yaml中的计划任务。
cron:
- description: Regular backup
url: /_backup/fullbackup
schedule: every 24 hours
URL处理程序会将备份任务放入队列中,并随后调用。
_ah/datastore_admin/backup.create?
gs_bucket_name=%2Fgs%2Ftest.appspot.com%2F21-06-2015&kind=Test&kind=TestContent
&kind=TestDocument&filesystem=gs
我在这里将我的应用程序ID替换为“test”。
日志中显示了404错误。
如果我在浏览器中使用上述URL及我的应用程序主机名(即https://test.appspot.com/_ah/datastore_admin/backup.create?gs_bucket_name=%2Fgs%2Ftest.appspot.com%2F21-06-2015&kind=Test&kind=TestContent&kind=TestDocument&filesystem=gs
),我也会得到404错误。
这是路由处理程序中与/_backup/fullbackup
相关的代码:
task = taskqueue.add(
url='/_ah/datastore_admin/backup.create',
method='GET',
target='ah-builtin-python-bundle',
params={
'filesystem': 'gs',
'gs_bucket_name': self.get_bucket_name(),
'kind': (
'Test',
'TestContent',
'TestDocument'
)
}
)
问题:
- 这个问题的原因是什么?
- 在python代码的
taskqueue.add
部分,我需要一个队列名吗? - 在我的cron.yaml中,我需要将目标设置为
ah-builtin-python-bundle
吗?
编辑
数据存储管理员内置已启用,如此屏幕截图所示。
没有dispatch.yaml文件
xxx.appspot.com
主机名,但仍然是相同的 404。 - Anthony Kong