Политика оповещений Google вызывает проблемы, основанные на количестве объектов корзины облачного хранилища. - PullRequest
1 голос
/ 01 марта 2020

Я пытался настроить политики предупреждений (через драйвер стека) для получения уведомлений по электронной почте, когда в корзине облачного хранилища появляется новый объект.

Но проблема здесь в том, что иногда он работает через некоторое время, а в большинстве других случаев - нет.

Как сделать так, чтобы оповещения срабатывали немедленно, как при появлении нового файла в корзине (несколько раз в день).

Ниже приведен код:

resource "google_monitoring_alert_policy" "alert_policy" {
  display_name = "File notification"
  combiner     = "OR"
  notification_channels = ["${google_monitoring_notification_channel.email.name}"]

  conditions {
    display_name = "File Notification"

    condition_threshold {
      comparison        = "COMPARISON_LT"
      duration          = "60s" 
      filter            = "metric.type=\"storage.googleapis.com/storage/object_count\" resource.type=\"gcs_bucket\" resource.label.\"bucket_name\"=\"realbucketname\""
      threshold_value   = 1

      aggregations {
        alignment_period        = "60s"
        per_series_aligner      = "ALIGN_COUNT"
      }

      trigger {
        count = 1
      }
    }
  }
  documentation {
    content = "There is a new file"
  }
}

Ценю ваш вклад!

Спасибо

Ответы [ 2 ]

1 голос
/ 02 марта 2020

Спасибо. Я исправил это, удалив агрегаты в моих скриптах,

Теперь это работает как ожидалось !!!

    condition_threshold {   
      comparison        = "COMPARISON_GT"
      duration          = "60s" 
      filter            = "metric.type=\"storage.googleapis.com/storage/object_count\" resource.type=\"gcs_bucket\" resource.label.\"bucket_name\"=\"realbucketname\""
      threshold_value   = 1

1 голос
/ 02 марта 2020

Количество объектов metri c измеряется один раз в день, поэтому возможно, что условие будет срабатывать только один раз в день. Это наиболее вероятно, почему ваши оповещения не согласованы.

Если возможно, рекомендуемое решение для просмотра изменений объектов в вашей корзине - pub / sub уведомлений . С помощью паб / суб-уведомлений вы можете получать уведомления, когда в вашем ведре происходит много различных событий .

Вот пример команды gsutil, которую вы будете использовать, чтобы получать уведомления при создании объекта в вашей корзине. -E указывает, что я хочу, чтобы уведомление происходило только тогда, когда происходит указанное событие c, в данном случае это когда файл загружается в корзину.

gsutil notification create -t [TOPIC_NAME] -f json gs://[BUCKET_NAME] -e OBJECT_FINALIZE

Затем вы создадите подписчика для получения уведомления.

Вот учебник по управлению уведомлениями в корзинах через App Engine.

Вы также можете изучить использование облачных функций , которые используют автономные функции в ответ на события (добавление файлов в корзину). Для отправки электронных писем с помощью функций вы можете использовать сторонние сервисы, такие как Mailgun . Вы также можете следовать этому стороннему учебнику по использованию SMTP и nodemailer для отправки электронных писем.

...