Гид по технологиям

Создание правила CloudWatch Events с целью SNS Topic

• 5 min read • AWS • Обновлено 19 Nov 2025
Правило CloudWatch Events → SNS Topic
Правило CloudWatch Events → SNS Topic

Обложка: поток событий CloudWatch и целевые сервисы

О чём этот документ

CloudWatch Events (теперь часть Amazon EventBridge) поставляет почти реальное время поток системных событий, описывающих изменения ресурсов AWS. Правила позволяют сопоставлять события и направлять их на одну или несколько целей: EC2, Lambda, Kinesis, ECS, Batch, SNS, SQS и др. Кроме реактивных правил, CloudWatch Events поддерживает планировщик: выражения rate() и cron() для регулярных действий.

В этой инструкции мы создадим правило, которое по расписанию будет публиковать сообщение в SNS Topic каждые 5 минут. Также рассмотрим проверку работы, отладку и рекомендации по безопасности.

Предварительные требования

  1. Аккаунт AWS (создайте, если ещё нет).
  2. SNS Topic — тема, которая будет целью правила. Тему можно создать заранее в сервисе Amazon SNS.
  3. Права IAM: пользователь/роль должен иметь действия events:PutRule, events:PutTargets, events:DeleteRule, events:RemoveTargets и sns:Publish (или эквивалентные managed/policy права).

Что мы сделаем

  1. Зайдём в консоль AWS.
  2. Откроем CloudWatch (EventBridge) и создадим правило с типом «Schedule».
  3. Добавим цель — SNS Topic.
  4. Проверим получение сообщений и при необходимости удалим правило.

Вход в AWS

Перейдите на страницу входа в AWS.

Когда вы откроете ссылку, появится страница входа, где требуется ввести креденшалы.

Страница входа AWS

После успешного входа вы увидите главную панель. Нажмите на “Service” в левом верхнем углу консоли, чтобы открыть меню сервисов.

Главная консоль AWS с выделением Service

Создание правила в CloudWatch (EventBridge)

  1. Нажмите “Service” и в строке поиска введите “CloudWatch” — выберите CloudWatch из списка.

Поиск CloudWatch в консоли

  1. В левой панели под разделом “Events” выберите “Rules”.

Панель CloudWatch: Rules в Events

  1. Нажмите “Create rule”.

Дашборд правил: кнопка Create rule

  1. Выберите тип триггера: отметьте радиокнопку “Schedule” и укажите выражение. Пример: “Fixed rate of 5 minutes” соответствует выражению rate(5 minutes). Вместо rate можно использовать cron: cron(0/5 ? ) — пример для каждых 5 минут.

  2. В разделе Targets выберите цель “SNS Topic” и укажите нужную тему.

В примере мы выбрали SNS Topic — тема будет получать сообщение каждые 5 минут.

  1. Нажмите “Configure details”.

Выбор Schedule и Target

  1. Дайте правилу имя и описание, затем нажмите “Create rule”.

Форма конфигурации правил: имя и описание

  1. После создания правило появится в списке правил CloudWatch.

Список правил CloudWatch с созданным правилом

  1. Если правило больше не нужно, его можно отключить или удалить: выберите правило, затем “Actions” → “Delete” и подтвердите удаление.

Подтверждение удаления правила

Важно: удалённое правило восстановить нельзя — оно будет удалено навсегда.

Как проверить, что всё работает

  1. Подпишитесь на SNS Topic тестовым Email/SMS/HTTP — подтвердите подписку.
  2. После создания правила дождитесь ближайшего срабатывания (или временно уменьшите период для теста).
  3. Проверьте, пришло ли сообщение в подписки (email, SMS) или в целевой endpoint (HTTP, Lambda). Для отладки можно временно сделать цель — Lambda, которая логирует входящие события.
  4. В CloudWatch Logs (если цель — Lambda) или в журнале подписки SNS ищите записи о публикации.

Критерии приёмки

  • Правило создано и активно.
  • SNS Topic получил публикации согласно расписанию минимум дважды подряд.
  • Сообщения доставляются подписчикам/endpoint’ам.
  • Правило можно отключить и удалить без ошибок.

Частые ошибки и когда это не работает

  • Регион: правило и SNS Topic должны быть в одной области (region), иначе цель не сработает.
  • Права IAM: у пользователя/роли нет разрешений events:PutTargets или sns:Publish. Проверьте политики.
  • Тема SNS не имеет подписчиков или подписки не подтверждены — сообщения не дойдут до конечного получателя.
  • Неправильное cron/rate выражение — правило не будет создано или будет неправильно срабатывать.
  • Правило отключено (Disabled) — не будет выполнять публикации.

Альтернативные подходы

  • Если нужна обработка сообщений перед отправкой — используйте Lambda как промежуточную цель: правило вызывает Lambda, она формирует сообщение и публикует в SNS (или в другие сервисы).
  • Для распределённой доставки в очереди используйте SQS в качестве цели, затем потребители читают сообщения асинхронно.
  • Event pattern (вместо Schedule) — используйте, если требуется реагировать на конкретные изменения ресурсов (например, запуск EC2, изменения в S3).

Мини-методология (шаблон действий)

  1. Подготовить SNS Topic и подписки.
  2. Проверить IAM-права для пользователя/роли.
  3. Создать правило в CloudWatch: Schedule → Target: SNS Topic.
  4. Проверить доставку и логи.
  5. Задокументировать правило (имя, цель, частота, ответственные).

Роль‑ориентированные чек‑листы

  • Администратор безопасности:
    • Проверить IAM-политику для создания/удаления правил.
    • Убедиться в шифровании и настройках KMS (если используется).
  • Инженер DevOps:
    • Создать правило, настроить мониторинг и алерты.
    • Протестировать доставку сообщений.
  • Разработчик приложения:
    • Проверить обработку сообщений в подписанных сервисах (Lambda/SQS).

Советы по безопасности и приватности

  • Минимизируйте права: выдавайте только необходимые действия (least privilege).
  • Если сообщения содержат чувствительные данные — используйте шифрование (AWS KMS) и защищённые каналы доставки.
  • Контролируйте аудит: включите CloudTrail для событий EventBridge/CloudWatch Actions.

Примеры выражений расписания

  • rate(5 minutes) — каждые 5 минут.
  • rate(1 hour) — каждый час.
  • cron(0 8 ? MON-FRI ) — каждый будний день в 08:00 (UTC).

Заключение

Мы прошли шаги по созданию правила CloudWatch Events (EventBridge) с целью SNS Topic, рассмотрели проверку работы, распространённые ошибки, альтернативные варианты и рекомендации по безопасности. Правила по расписанию — простой и гибкий способ автоматизировать публикации и интеграции в AWS.

Короткий чек: наличие темы SNS и подписок, права IAM, совпадающая область, корректное cron/rate выражение и активное правило.

Сводка:

  • Создать тему SNS заранее.
  • В CloudWatch → Rules создать правило с типом “Schedule”.
  • Выбрать Target: SNS Topic и создать правило.
  • Протестировать получение сообщений и управлять правилом (Disable/Delete) при необходимости.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро