如何获取导出的Cloud Datastore的结果详细信息?

时间:2018-12-05 07:06:49

标签: google-app-engine google-cloud-platform google-cloud-datastore

我有一个将用户数据存储在GCP数据存储中的应用。 我做了一个cron作业,计划使用给定的here指令导出数据存储中的数据。

现在,我想获得此作业失败时的结果和完成时间。 (不是cron,而是cron搬来的工作)

如何获取导出的Cloud Datastore的结果详细信息?

1 个答案:

答案 0 :(得分:1)

计划的数据存储区导出(和导入)可以是长期运行的操作,因此它们支持asynchronous executionprogress 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字段中会显示不同的内容。