javascript - Firestore 导出 Cron 作业未运行:错误代码 204
问题描述
预期的
当部署的 Cron 作业在 GCP 上运行时,定义的 Firebase Cloud Storage 目录gs://my-project-name.appspot.com/
将填充my-project-name
's Firestore 数据库中的所有集合,实施后跟调度数据导出文档。
观察到的
Cron 作业部署成功,但运行失败。日志显示Error code 204
。
日志
2019-01-24 11:19:47.818 PST GET 500 0 B 998 ms AppEngine-Google; (+http://code.google.com/appengine) /cloud-firestore-export?outputUriPrefix=gs://[my-project-name].appspot.com/backups/ 0.1.0.1 - - [24/Jan/2019:11:19:47 -0800] "GET /cloud-firestore-export?outputUriPrefix=gs://[my-project-name].appspot.com/backups/ HTTP/1.1" 500 - - "AppEngine-Google; (+http://code.google.com/appengine)" "cloud-firestore-admin.[my-project-name].appspot.com" ms=998 cpu_ms=482 cpm_usd=0 loading_request=1 instance=00c61b117c5fba456c9edcc5f075ccacb339b96d0bc7a8e35beb60cd3fd50a149d4c2f296b app_engine_release=1.9.71 trace_id=65811179272fc9c721d10e6cab7cdf70
{
httpRequest: {
status: 500
}
insertId: "5c4a0fd4000c78b4e510bd7a"
labels: {
clone_id: "00c61b117c5fba456c9edcc5f075ccacb339b96d0bc7a8e35beb60cd3fd50a149d4c2f296b"
}
logName: "projects/[my-project-name]/logs/appengine.googleapis.com%2Frequest_log"
operation: {
first: true
id: "5c4a0fd300ff0c7e86eb62e71c0001737e636f696e76657273652d6d656469612d73746167696e670001323031393031323474313130333331000100"
last: true
producer: "appengine.googleapis.com/request_id"
}
protoPayload: {
@type: "type.googleapis.com/google.appengine.logging.v1.RequestLog"
appEngineRelease: "1.9.71"
appId: "s~[my-project-name]"
endTime: "2019-01-24T19:19:48.816961Z"
finished: true
first: true
host: "cloud-firestore-admin.[my-project-name].appspot.com"
httpVersion: "HTTP/1.1"
instanceId: "00c61b117c5fba456c9edcc5f075ccacb339b96d0bc7a8e35beb60cd3fd50a149d4c2f296b"
instanceIndex: -1
ip: "0.1.0.1"
latency: "0.998139s"
line: [
0: {
logMessage: "This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application."
severity: "INFO"
time: "2019-01-24T19:19:48.816504Z"
}
1: {
logMessage: "A problem was encountered with the process that handled this request, causing it to exit. This is likely to cause a new process to be used for the next request to your application. (Error code 204)"
severity: "ERROR"
time: "2019-01-24T19:19:48.816507Z"
}
]
megaCycles: "482"
method: "GET"
pendingTime: "0.010711670s"
requestId: "5c4a0fd300ff0c7e86eb62e71c0001737e636f696e76657273652d6d656469612d73746167696e670001323031393031323474313130333331000100"
resource: "/cloud-firestore-export?outputUriPrefix=gs://[my-project-name].appspot.com/backups/"
startTime: "2019-01-24T19:19:47.818822Z"
status: 500
taskName: "6c799fe7c1a404ec22117967738fcca9"
taskQueueName: "__cron"
traceId: "65811179272fc9c721d10e6cab7cdf70"
traceSampled: true
urlMapEntry: "auto"
userAgent: "AppEngine-Google; (+http://code.google.com/appengine)"
versionId: "20190124t110331"
wasLoadingRequest: true
}
receiveTimestamp: "2019-01-24T19:19:48.824360342Z"
resource: {
labels: {
module_id: "default"
project_id: "my-project-name"
version_id: "20190124t110331"
zone: "us17"
}
type: "gae_app"
}
severity: "ERROR"
timestamp: "2019-01-24T19:19:47.818822Z"
trace: "projects/[my-project-name]/traces/65811179272fc9c721d10e6cab7cdf70"
traceSampled: true
}
2019-01-24 11:19:48.816 PST
This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application.
2019-01-24 11:19:48.816 PST
A problem was encountered with the process that handled this request, causing it to exit. This is likely to cause a new process to be used for the next request to your application. (Error code 204)
配置
- GCP 和 Firebase 项目均启用了结算功能。
- Firebase 存储桶当前已创建并用于在名为content的目录下存储mp3和txt文件,并创建了一个名为backups的新空目录以存储导出 Cron 作业的结果。
- 已按照配置访问权限部分中的建议启用了以下权限。
GCP 项目被定义为default。
对于package.json,
name
、version
和description
属性已针对项目进行了更改。在cron.yaml中
description
和url
属性是自定义的。url
已尝试以下操作以导出所有集合:/cloud-firestore-export?outputUriPrefix=gs://[my-project-name].appspot.com/backups
尝试的解决方案
- 版本代码:在后续部署中增加版本代码。
cron.yaml
网址:- 在目录之后添加
/
:/cloud-firestore-export?outputUriPrefix=gs://[my-project-name].appspot.com/backups/
- 添加
collections
查询但将其留空:/cloud-firestore-export?outputUriPrefix=gs://[my-project-name].appspot.com/backups&collections
- 在目录之后添加
- IAM 权限:将Cloud Datastore Import Export Admin权限添加到我的用户帐户my-name@domain.com,因为这是与 下的项目关联的电子邮件帐户
gcloud config configurations list
。
解决方案
问题是package.json版本不能低于1.0.0
. 我试图使用0.16.0
. 我正在向文档团队发送一条说明,并且这应该包含在文档中以节省人们的时间。
推荐阅读
- elasticsearch - 弹性搜索查询 - 在对象数组中
- postgresql - 连接表在另一个表中更新后触发
- python - 我打算在 django 的正整数字段中免除 0 作为有效值
- javascript - onClick 和 href 之间的 WebView 竞争条件
- android - 如何使用 appium 为具有嵌入式 Flutter 视图的现有原生应用程序运行集成测试?
- r - 从列表中查找每行的最小值及其对应的列号
- c# - 依赖于 File 类和其他方法的测试方法
- javascript - 如何在summernote编辑器中上传多张图片
- android - 更改材质下拉菜单上的选定项目
- javascript - 在 Stimulus 框架中使用 DataTables 的问题