Учебное пособие по AWS Lambda
Сегодня мы поговорим об AWS Lambda. AWS Lambda - это вычислительный сервис, предлагаемый Amazon. Вам должно быть любопытно, поскольку AWS предлагает несколько других вычислительных сервисов, таких как AWS EC2, AWS Elastic Beanstalk, AWS Opsworks и т. Д., Тогда зачем еще один вычислительный сервис? В этом руководстве по AWS Lambda вы узнаете, что такое AWS Lambda, почему она используется и в каких случаях ее следует учитывать.
Давайте посмотрим, как Amazon определяет AWS Lambda, а затем мы глубоко погрузимся в ключевые концепции, разберемся с вариантом использования и, в конце концов, на практике.
Что такое AWS Lambda?
Amazon объясняет, что AWS Lambda (и лямбда) как «бессерверная» вычислительная служба, то есть разработчикам не нужно беспокоиться о том, какие ресурсы AWS запускать или как они будут ими управлять, они просто помещают код в лямбда, и он запускается. , это так просто! Это поможет вам сосредоточиться на основной компетенции, то есть на создании приложений или коде.
Где я буду использовать AWS Lambda?
AWS Lambda выполняет ваш серверный код, автоматически управляя ресурсами AWS. Когда мы говорим «управлять», это включает в себя запуск или завершение экземпляров, проверку работоспособности, автоматическое масштабирование, обновление или исправление новых обновлений и т. Д.
Итак, как это работает?
Код, который вы хотите запустить Lambda, известен как Лямбда-функция . Теперь, как мы знаем, функция запускается только тогда, когда она вызывается, верно? Вот, Источник события - это объект, который запускает лямбда-функцию, после чего задача выполняется.
Давайте рассмотрим пример, чтобы понять это более ясно.
Предположим, у вас есть приложение для загрузки изображений. Теперь, когда вы загружаете изображение, перед его сохранением выполняется множество задач, таких как изменение размера, применение фильтров, сжатие и т. Д.
Итак, эту задачу по загрузке изображения можно определить как Источник события или «триггер», который вызовет лямбда-функцию, и затем все эти задачи могут быть выполнены с помощью лямбда-функции.
В этом примере разработчику просто нужно определить источник события и загрузить код.
Давайте теперь разберемся в этом примере с реальными ресурсами AWS,
Рис. Пример использования Lambda с S3
Здесь мы будем загружать изображения в форме объектов в корзину S3. Эта загрузка изображения в корзину S3 станет источником события или «триггером».
Весь процесс, как вы можете видеть на схеме, разбит на 5 шагов, давайте разберемся с каждым из них.
анзибль против шеф-повара против марионетки
- Пользователь загружает изображение (объект) в сегмент источника в S3, к которому прикреплено уведомление, для Lambda.
- Уведомление читается S3, и он решает, куда отправить это уведомление.
- S3 отправляет уведомление в Lambda, это уведомление действует как вызов функции лямбда.
- Роль выполнения в Lambda может быть определена с помощью IAM (Identity and Access Management), чтобы предоставить разрешение на доступ к ресурсам AWS, для этого примера здесь это будет S3.
- Наконец, он вызывает желаемую лямбда-функцию, которая работает с объектом, который был загружен в корзину S3.
Если бы вам пришлось решать этот сценарий традиционно, наряду с разработкой, вы бы наняли людей для управления следующими задачами:
- Размер, подготовка и масштабирование группы серверов
- Управление обновлениями ОС
- Примените исправления безопасности и
- Контролируйте всю эту инфраструктуру на предмет производительности и доступности.
Это было бы дорогостоящим, утомительным и утомительным занятием, поэтому потребность в AWS Lambda оправдана.AWS Lambda совместима с Node.JS, Python и Java, поэтому вы можете загрузить свой файл в виде zip-архива, определить источник события, и все готово!
Вы можете узнать больше о S3 AWS здесь для более глубокого понимания.
Теперь мы знаем -Как работает лямбда иЧто лямбда лань s .
Nой, давай понять-
- Где использовать лямбду?
- Какой цели служит лямбда, чтодругие сервисы AWS Compute - нет?
Если бы вам нужно было разработать решение проблемы, вы бы смогли определить, где использовать Lambda, верно?
Итак, у вас как у архитектора есть следующие возможности для выполнения задачи:
- AWS EC2
- AWS Elastic Beanstalk
- AWS OpsWorks
- AWS Lambda
Давайте возьмем вышеупомянутый вариант использования в качестве примера и поймем, почему мы выбрали Lambda для его решения.
AWS OpsWorks и AWS ElasticBeanstalk используются для развертывания приложения, поэтому наш вариант использования не создать приложение , но для выполнения внутреннего кода.
Тогда почему не EC2?
Если бы вы использовали EC2, вам пришлось бы спроектировать все, например, балансировщик нагрузки, тома EBS, программные стеки и т. Д. В лямбде вам не нужно ни о чем беспокоиться, просто вставьте свой код, а AWS сделает все остальное!
Например , в EC2 вы бы устанавливали на свою виртуальную машину пакеты программного обеспечения, которые поддерживали бы ваш код, но в Lambda вам не нужно беспокоиться о какой-либо виртуальной машине, просто вставьте простой код, и Lambda выполнит его за вас.
Но если ваш код будет работать часами, и вы ожидаете непрерывного потока запросов, вам, вероятно, следует перейти на EC2, потому что архитектура Lambda предназначена для спорадического вида рабочей нагрузки, при которой будут некоторые тихие часы и некоторые всплески. в нет. запросов.
Например , регистрируя активность электронной почты для, скажем, небольшой компании, будет больше активности в течение дня, чем ночью, также могут быть дни, когда нужно обрабатывать меньше писем, и иногда весь мир может начать вам писать по электронной почте! В обоих случаях к вашим услугам Lambda.
Учитывая этот вариант использования для крупной социальной сети, где электронные письма никогда не заканчиваются из-за огромной базы пользователей, Lambda может быть не лучшим выбором.
Вы можете узнать больше о EC2 AWS здесь для более глубокого понимания.
Ограничения AWS Lambda
Некоторые ограничения зависят от оборудования, а некоторые связаны с архитектурой, давайте обсудим их все.
Аппаратные ограничения включая размер диска, который ограничен 512 МБ, объем памяти может варьироваться от 128 МБ до 1536 МБ. Затем есть и другие, например, время ожидания выполнения может быть увеличено до 5 минут, полезная нагрузка тела запроса может быть не более 6 МБ, а тело запроса - 128 КБ. Полезная нагрузка тела запроса подобна данным, которые вы отправляете с запросом «GET» или «PUT» в HTTP, где в качестве тела запроса будут использоваться тип запроса, заголовки и т. Д.
Java-программа для проверки палиндрома
На самом деле это не ограничения, а границы проектирования, которые были установлены в архитектуре Lambda, поэтому, если ваш вариант использования не подходит, вы всегда будете иметь в своем распоряжении другие вычислительные сервисы AWS.
В этом руководстве по AWS Lambda мы обсуждали, как выполнение задач в Lambda «не» утомительно и утомительно. Давайте теперь покроем и часть расходов.
Цены в AWS Lambda
Как и большинство сервисов AWS, AWS Lambda также является сервисом с оплатой по факту использования, то есть вы платите только за то, что используете, поэтому с вас взимается плата по следующим параметрам.
- Номер Запросы что вы делаете для своей лямбда-функции
- В продолжительность для которого выполняется ваш код.
Запросы
- Вы платите за количество запросов, которые вы делаете через все ваши лямбда-функции.
- AWS Lambda считает запрос каждый раз, когда он начинает выполнение в ответ на источник события или вызывает вызов, в том числе тест, вызываемый с консоли. Теперь посмотрим на цены:
- Первый миллион запросов каждый месяц - бесплатно.
- 0,20 $ за миллион запросов после этого.
Продолжительность
- Продолжительность рассчитывается с момента начала выполнения вашего кода до момента его возврата или завершения, она округляется до ближайших 100 мс.
- Цена зависит от объема памяти, который вы выделяете для своей функции, с вас взимается 0,00001667 долларов США за каждую использованную ГБ-секунду.
* Источник: официальный сайт AWS.
Если вы дошли до этого момента, вы готовы к практическому использованию лямбды. Давайте повеселимся!
Практическое занятие: AWS Lambda DIY
Давайте создадим лямбда-функцию, которая будет регистрировать «объект был добавлен» после того, как вы добавите объект в конкретную корзину в S3.
Шаг 1: В Консоли управления AWS в разделе вычислений выберите AWS Lambda.
Шаг 2: В консоли AWS Lambda нажмите «Создать функцию Lambda».
Шаг 3: На следующей странице вам нужно выбрать чертеж. Например, мы выберем пустую функцию для нашего варианта использования.
Шаг 4: На следующей странице вы (1) установите триггер, поскольку мы собираемся работать с S3, (2) выберите триггер S3 и затем (3) нажмите Next.
Шаг 5: На странице конфигурации заполните данные. Вы можете поместить свой собственный код или скопировать тот же код из этого варианта использования. После этого заполните обработчик и роль, оставьте расширенные настройки как есть, в конце нажмите «Далее».
запустить запрос куста из командной строки
Шаг 6: На следующей странице просмотрите всю информацию и нажмите «Создать функцию».
Шаг 7: Теперь, когда мы создали функцию для корзины S3, в тот момент, когда вы добавляете файл в корзину S3, вы должны получить для нее журнал в CloudWatch, который является службой мониторинга от AWS.
Поздравляю!Вы успешно выполнили лямбда-функцию.
Надеюсь, вам понравилось глубокое погружение в учебное пособие по AWS Lambda. Это одна из наиболее востребованных областей знаний в экосистеме AWS для таких должностей, как архитектор решений, инженер по облачным вычислениям, инженер DevOps. Вот коллекция чтобы помочь вам подготовиться к следующему собеседованию на вакансию AWS.
Если вы сочли это руководство по AWS Lambda релевантным, вы можете ознакомиться с живым курсом Edureka под руководством инструктора на , совместно созданный практиками отрасли.
Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев, и мы свяжемся с вами.