Уведомление Pub/Sub для GCS - фильтр событий не работает

Я хотел, чтобы каждый раз (и только когда) файл создавался в GCS, моя подписка на публикацию / подписку может получать уведомление.

Итак, я сделал это:

gsutil notification create -t projects/[my-project-id]/topics/new-raw-file -f none -m eventType:OBJECT_FINALIZE gs://[the-target-bucket]

Я думаю, что этот конфиг настроен успешно, потому что, когда я запустил gsutil notification list, это показывает:

projects/_/buckets/[the-target-bucket]/notificationConfigs/7
Cloud Pub/Sub topic: projects/[my-project-id]/topics/new-raw-file
Custom attributes:
    eventType: OBJECT_FINALIZE

Это единственный конфиг.

Однако, кроме создания файла, я также получаю уведомление об удалении файла:

Received 1 messages.
* 118758642722910: message - , attributes - {u'resource': u'projects/_/buckets/[the-target-bucket]/objects/2466870.3.txt#1493038968423735', u'objectId': u'2466870.3.txt', u'bucketId': u'[the-target-bucket]', u'notificationConfig': u'projects/_/buckets/[the-target-bucket]/notificationConfigs/7', u'payloadFormat': u'NONE', u'eventType': u'OBJECT_DELETE', u'objectGeneration': u'1493038968423735'}

не понял, что пошло не так.

1 ответ

Оказывается, я неправильно использовал одну опцию команды. Согласно этой странице, "-m" на самом деле просто добавляет атрибут key:value к уведомлению, это не имеет ничего общего с фильтром событий, который я хотел. Правильный вариант для использования должен быть "-e". Итак, следующая команда config на самом деле работает правильно:enter code here

gsutil notification create -t [TOPIC_NAME] -f json  -e OBJECT_FINALIZE gs://[BUCKET_NAME]
Другие вопросы по тегам