Несколько действий, предоставляемых из API для DLP in GCP, не работают

#google-cloud-platform #google-cloud-dlp

#google-cloud-platform #google-cloud-dlp

Вопрос:

Цель: прочитать CSV-файл из корзины облачного хранилища и опубликовать результаты в Pub / Sub и записать результаты в BigQuery

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

 'actions': [{
          'pub_sub': {
              'topic':
                  'projects/{project_id}/topics/{topic_id}'.format(
                      project_id=PROJECT_ID, topic_id=PUB_SUB_TOPIC)
          },
          
        'save_findings': {
            "output_config": {
                "table": {
                    "project_id": PROJECT_ID,
                    "dataset_id": DATASET_ID,
                    "table_id": TABLE_ID
               
                }
            }
        }
      }]
  

В приведенном выше коде будет работать только опция публикации в BigQuery, как написано позже. Я наткнулся на документацию, приведенную по этой ссылке, в которой говорится, что «Действие поля объединения может быть только одним из следующих»

Вопросы: Правильно ли я понимаю, что с использованием API возможно только одно из действий (запись в базу данных или публикация в pub / sub и т.д.)?

Если да, будет ли поддержка нескольких действий с использованием API, аналогичных консоли?

Приложение: Скриншот PFA конфигурации задания DLP с использованием консоли, содержащей несколько действийвведите описание изображения здесь

Комментарии:

1. Это недопустимый JSON — используете ли вы фреймворк шаблонов для его создания? Было бы полезно включить это в качестве тега, если это так.

Ответ №1:

Ваши объекты вложены не совсем правильно.

 "actions": [
  {
    "pubSub": {
      "topic": "mytopic"
    }
  },
  {
    "saveFindings": {
      "outputConfig": {
        "outputSchema": "BIG_QUERY_COLUMNS",
        "table": {
          "datasetId": "",
          "tableId": "",
          "projectId": ""
        }
      }
    }
  }
]
  

Ответ №2:

Согласно документации, это документированное ограничение для REST API. В нем упоминается. Кроме того, это ограничение также находится на стороне RPC Rest API, здесь. Оба состояния:

действие может быть только одним из следующих

Однако я бы посоветовал вам изменить свой скрипт, чтобы выполнить два вызова метода create_dlp_job(), каждый из которых содержит по одному действию за раз в переменной с ОСТАЛЬНЫМИ.

Наконец, вы также можете открыть запрос функции по следующей ссылке.