我有一个将用户数据存储在GCP数据存储中的应用。 我做了一个cron作业,计划使用给定的here指令导出数据存储中的数据。
现在,我想获得此作业失败时的结果和完成时间。 (不是cron,而是cron搬来的工作)
如何获取导出的Cloud Datastore的结果详细信息?
答案 0 :(得分:1)
计划的数据存储区导出(和导入)可以是长期运行的操作,因此它们支持asynchronous execution和progress monitoring。
基本上,当您启动操作时,您会获得一个操作ID:
例如,当您开始导出时,Cloud Datastore服务 创建长时间运行的操作以跟踪导出状态。这是 导出开始时的输出:
{ "name": "projects/[YOUR_PROJECT_ID]/operations/ASAyMDAwOTEzBxp0bHVhZmVkBxJsYXJ0bmVjc3Utc2Jvai1uaW1kYRQKKhI", "metadata": { "@type": "type.googleapis.com/google.datastore.admin.v1.ExportEntitiesMetadata", "common": { "startTime": "2017-05-25T23:54:39.583780Z", "operationType": "EXPORT_ENTITIES" }, "progressEntities": {}, "progressBytes": {}, "entityFilter": { "namespaceIds": [ "" ] }, "outputUrlPrefix": "gs://[YOUR_BUCKET_NAME]" } }
名称字段的值是长时间运行的操作的ID。
然后,您可以将操作ID与projects.operations.get
中的operation Admin API一起使用,以获取其完成时间和结果URL:
此示例输出显示了最近完成的导出操作。 完成后几天,即可进行操作:
{ "operations": [ { "name": "projects/[YOUR_PROJECT_ID]/operations/ASAyMDAwOTEzBxp0bHVhZmVkBxJsYXJ0bmVjc3Utc2Jvai1uaW1kYRQKKhI", "metadata": { "@type": "type.googleapis.com/google.datastore.admin.v1.ExportEntitiesMetadata", "common": { "startTime": "2017-12-05T23:01:39.583780Z", "endTime": "2017-12-05T23:54:58.474750Z", "operationType": "EXPORT_ENTITIES" }, "progressEntities": { "workCompleted": "21933027", "workEstimated": "21898182" }, "progressBytes": { "workCompleted": "12421451292", "workEstimated": "9759724245" }, "entityFilter": { "namespaceIds": [ "" ] }, "outputUrlPrefix": "gs://[YOUR_BUCKET_NAME]" }, "done": true, "response": { "@type": "type.googleapis.com/google.datastore.admin.v1.ExportEntitiesResponse", "outputUrl": "gs://[YOUR_BUCKET_NAME]/2017-05-25T23:54:39_76544/2017-05-25T23:54:39_76544.overall_export_metadata" } } ] }
不过,我不确定response
字段中会显示不同的内容。