Amazon Web Services (AWS) создаём проверку доступности сайта с отправкой на email
Разработка

Amazon Web Services (AWS) создаём проверку доступности сайта с отправкой на email

Этот пост написан для себя, чтобы не забыть. В этой статье я расскажу о том, как можно автоматизировать процессы отправки электронной почты с помощью сервисов AWS. Для этого мы будем использовать AWS Lambda, EventBridge (CloudWatch services) и Simple Email Service. Прежде чем приступить к настройкам, кратко расскажем о том, что они из себя представляют.

 

Identity and Access Management (IAM)

Веб-сервис IAM позволяет нам безопасно контролировать доступ к ресурсам AWS. Здесь мы можем проверить, какие пользователи аутентифицированы и какие разрешения у них есть для использования ресурсов. IAM не требует выбора региона.

Сначала мы должны настроить роли IAM для безопасности. Откройте консоль AWS и напишите IAM в область поиска. На открывшемся экране нажмите «Роли» и создайте роль.

Identity and Access Management (IAM)


Выберите AWS service и Lambda:

Identity and Access Management (IAM)

 

Добавьте разрешения:

  • CloudWatchFullAccess
  • AmazonSESFullAccess

Identity and Access Management (IAM)


Укажите имя для использования этой роли в других службах:

Identity and Access Management (IAM)



AWS Simple E-mail Service

Amazon SES — это простая, надежная, недорогая облачная служба электронной почты с оплатой по факту использования, которая помогает разработчикам отправлять уведомления по электронной почте. Все новые учетные записи SES запускаются в изолированной программной среде, где вы можете протестировать возможности Amazon SES.

Для начала надо добавить новый email для пользователя.

На странице выберите «Email address» и укажите требуемый адрес электронной почты, на который вы хотите отправлять почту, и нажмите «Create Identity».

Вы получите письмо с подтверждением. После проверки ваш адрес электронной почты будет верифицирован.


AWS Lambda

AWS Lambda — один из бессерверных сервисов. В этих сервисах мы только пишем код, который хотим запустить, и делаем необходимые настройки ресурсов. Нам не нужно решать такие вопросы, как, на каком сервере работает код, администрирование, обслуживание и безопасность сервера. Лямбда-коды работают в контейнерах. Таким образом, его можно легко масштабировать.

На консоли Amazon введите Lambda в область поиска и нажмите кнопку «Create Function». Введите имя, описывающее назначение вашей функции, и выберите язык, который будет использоваться для написания вашей функции. В этом руководстве мы будем использовать Node.js 16.x.

AWS Lambda

В нижней части страницы в разделе «Change default execution role» мы нажимаем «Existing role» и выбираем имя ранее созданной роли и создаем службу Lambda.

AWS Lambda code

В открывшемся окне пишем код:

const AWS = require('aws-sdk');
AWS.config.update({
region: "YOUR_REGION"
});
const ses = new AWS.SES();exports.handler = async (event) => {
const params = {
Destination: {
ToAddresses: ["one@email.com", "two@email.com"]
},
Message: {
Subject: {Data: "WebSite Alert"},
Body: {
Text: {Data: "Hello!\n\nTimeoutError: Response timeout from WebSite exceeded."}
}
},
Source: 'three@email.com'
};
await ses.sendEmail(params).promise().then(response => {
console.log("Successfully sent.");
}, error => {
console.log("Error!!!!!!!!!!");
});
};

Не забудьте исправить YOUR_REGION на Ваш регион, а также указать верифицированные email адреса!

Затем нажмите кнопку «Deploy», чтобы развернуть код. Затем нажмите Test. Откроется всплывающее окно:

AWS Lambda - test event

Напишите название теста, удалите примеры значений ключей (Event JSON) и нажмите «Save».

После этого снова нажмите кнопку тестирования, чтобы запустить тест. Вы должны увидеть сообщение «Successfully sent» на странице результатов выполнения. Если вы проверите почтовый ящик, вы должны увидеть тестовое письмо.

AWS Lambda Successfully sent


CloudWatch

CloudWatch собирает данные мониторинга и операционные данные в виде журналов, метрик и событий, предоставляя единое представление о ресурсах, приложениях и сервисах AWS, работающих на AWS и на локальных серверах. Используя CloudWatch, вы можете обнаруживать аномальное поведение в своей среде, настраивать сигналы тревоги, визуализировать изображения и метрики одновременно, выполнять автоматические действия, устранять неполадки и находить ценные сведения для обеспечения бесперебойной работы ваших приложений.

Создадим "синтетическую канарейку", которая каждые n минут будет проверять доступность сайта.

CloudWatch - Create a canary

Откроется окно, в котором надо указать имя, URL, расписание запуска и выбрать существующую роль.

CloudWatch Synthetics Canaries


AWS EventBridge

AWS EventBridge — это бессерверный мост событий, который позволяет легко предоставлять доступ в режиме реального времени к изменениям данных в сервисах AWS и приложениях SaaS без написания кода. CloudWatch Events строится и расширяет базу Amazon EventBridge.
Теперь мы свяжем скрипт и событие проверки доступности вебсайта.

Дя этого создаём новое правило:

Amazon EventBridge

Шаг 1. Выбираем события:

Amazon EventBridge

Шаг 2:

Amazon EventBridge

Шаг 3:

Amazon EventBridge

Шаг 4:

Amazon EventBridge

Шаг 5:

Amazon EventBridge



Полезняшки

Как сделать скрипт для разных типов окружения:




Добавить комментарий