Как получить подробный результат экспорта Cloud Datastore? - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть приложение, которое хранит пользовательские данные в GCP Datastore.Я выполнил задание cron, которое планируется экспортировать в хранилище данных, используя инструкции, приведенные здесь .

Теперь я хочу получить результаты и время завершения, когда это задание не выполняется.(Не cron, а задание перенесено cron)

Как получить подробные данные об экспорте Cloud Datastore?

1 Ответ

0 голосов
/ 05 декабря 2018

Запланированные экспорты (и импорт) хранилищ данных могут быть длительными операциями, поэтому они поддерживают асинхронное выполнение и мониторинг хода выполнения .

В основном, когда вызапустите операцию, вы получите идентификатор операции:

Например, при запуске экспорта служба облачного хранилища данных создает длительную операцию для отслеживания состояния экспорта.Вот вывод из начала экспорта:

{
  "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]"
  }
}

Значением поля имени является идентификатор длительной операции.

Затем можно использовать операциюИдентификатор с projects.operations.get в операции 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"
      }
    }
  ]
}

Я не совсем уверен, как бы вы различали только невыполненные задания, хотя я представляю, что в * 1028 будет что-то другое* поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...