API Call для Cloud Security Command Center - PullRequest
0 голосов
/ 20 февраля 2020

Я использую API list_findings () для перечисления проблем безопасности, обнаруженных в командном центре Cloud Security. Я хочу перечислять результаты каждые 5 минут.

 c = (datetime.utcnow() - timedelta(minutes =5)).replace(tzinfo=pytz.UTC, microsecond =0)
 project_filter = (
     "state = \"ACTIVE\" AND create_time > \"2020-02-19T15:20:10-00:00\""
 )
 finding_result_iterator = client.list_findings(source_name, filter_ = project_filter)

Как я могу передать значение c в project_filter? Я не хочу жестко кодировать значение create_time. Он должен автоматически брать время из переменной c при каждом запуске скрипта. Я пытался разными способами передать значение create_time, но оно не работает. Может кто-нибудь, пожалуйста, помогите. Вот ссылка для do c, предоставленная google https://cloud.google.com/security-command-center/docs/how-to-api-list-findings

Я пытаюсь использовать что-то подобное, но оно дает ошибку

project_filter = (
    "state = \"ACTIVE\" AND create_time >\'c\'"
)

Ошибка -

google.api_core.exceptions.InvalidArgument: 400 Invalid Filter. Filter must be non-null and filter upon a field in the request. Example: "event_time = 123 OR event_time >= 123 OR event_time <= 123"

1 Ответ

1 голос
/ 20 февраля 2020

На самом деле project_filter является строкой, поэтому конкатенация строк работает.

project_filter = (
    "state = \"ACTIVE\" AND create_time > \"" + c + "\"" 
)
...