设置
在遵循问题AppEngine datastore - backup programatically的未接受答案之后,我遇到了404问题
正如我所建议的,由一个数据存储提供程序启用的答案。我可以在googleappengine控制台手动触发一个数据存储备份,备份运行时不会出现任何故障。在
此问题中的代码位于名为“app”的模块中。默认为“非”。在
404问题
这是在克罗恩·亚姆. 在
cron:
- description: Regular backup
url: /_backup/fullbackup
schedule: every 24 hours
url的处理程序将把备份任务放入队列中,队列反过来调用
^{pr2}$(我在这里用“test”替换了我的应用程序id)
这将在日志中显示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'
)
}
)
问题:
taskqueue.add
部分是否需要队列名称?在ah-builtin-python-bundle
?在编辑
数据存储管理内置功能已启用,如此屏幕截图所示。在
没有调度.yaml在
它与队列配置问题有关。在
中存在“default”队列定义应用程序yaml在实施定期备份之前。因此,备份任务没有达到目标“ah-builtinpython bundle”
如果我定义一个新队列
然后使用此代码插入任务
^{pr2}$然后googleappengine就可以创建备份集了
你有没有enabled the Datastore Admin?您需要这样做才能允许模块
ah-builtin-python-bundle
存在,这是当您激活Datastore admin时“部署”到您的应用程序中的一个特殊模块,它真正负责响应对/_ah/datastore_admin
的请求,并生成从数据存储读取的MapReduce作业,并在云存储中生成备份文件(或发送到其他任何位置)他们去了)。在另外,另一种可能是您已经在应用程序中使用了
test.appspot.com
硬编码。你有那个应用程序id“test”吗?从您在浏览器中看到的错误的屏幕截图来看,您似乎在尝试备份bucket“test.appspot.com
”,这将是app id为“test”的应用程序的默认bucket。但是,在您显示的日志屏幕截图中,它还尝试备份到“example.appspot.com
”bucket。确保你的应用程序拥有这些存储桶。在另一种可能是处理请求的模块不是
ah-builtin-python-bundle
,而是另一个模块。即使在task add方法中指定了不同的目标,如果有一个正在重新路由请求的dispatch rule,也可能发生这种情况。在相关问题 更多 >
编程相关推荐