Прежде чем использовать AWS Lambda, давайте разберемся:
Что такое бессерверный?
Бессерверные - это термин, который обычно относится к бессерверным приложениям. Бессерверные приложения - это приложения, которые не нуждаются в выделении сервера и не требуют управления серверами.
Что такое AWS Lambda?
AWS Lambda - это управляемая событиями платформа бессерверных вычислений, предоставляемая Amazon как часть Amazon Web Services. Поэтому вам не нужно беспокоиться о том, какие ресурсы AWS запускать или как вы ими будете управлять. Вместо этого вам нужно поместить код в Lambda, и он запустится.
В AWS Lambda код выполняется на основе реакции на события в сервисах AWS, такие как добавление / удаление файлов в корзине S3, HTTP-запрос от шлюза Amazon API и т. Д. Однако Amazon Lambda можно использовать только для выполнения фоновых задач.
Функция AWS Lambda помогает сосредоточиться на основном продукте и бизнес-логике вместо управления контролем доступа к операционной системе (ОС), исправлением ОС, правильным размером, инициализацией, масштабированием и т. Д.
В этом руководстве по AWS Lambda для начинающих вы узнаете:
- Как работает AWS Lambda?
- События, запускающие AWS Lambda
- Концепции AWS Lambda
- AWS Lambda против AWS EC2
- AWS Lambda против AWS Elastic Beanstalk
- Примеры использования AWS Lambda
- Лучшие практики лямбда-функции
- Когда не использовать AWS Lambda
- Преимущества использования AWS Lambda
- Ограничения AWS Lambda
Как работает AWS Lambda?
Следующий пример AWS Lambda с блок-схемой объясняет работу AWS Lambda в несколько простых шагов:
Шаг 1. Сначала загрузите код AWS Lambda на любом языке, поддерживаемом AWS Lambda. Java, Python, Go и C # - это некоторые из языков, которые поддерживаются функцией AWS Lambda.
Шаг 2. Это некоторые сервисы AWS, которые позволяют запускать AWS Lambda.
Шаг 3. AWS Lambda поможет вам загрузить код и сведения о событии, по которым он должен запускаться.
Шаг 4. Выполняет AWS Lambda Code, когда он запускается сервисами AWS:
Шаг 5. AWS взимает плату только при выполнении лямбда-кода AWS, а не иначе.
Это произойдет в следующих случаях:
- Загрузите файлы в корзину S3
- При попадании в URL-адрес конечной точки HTTP-запроса
- Для добавления / изменения и удаления таблиц Dynamo DB
- В процессе сбора потоков данных
- Отправить уведомление
- Хостинг сайта
- Отправка электронной почты
Примечание. Следует помнить, что вы будете взимать плату за услуги AWS только при выполнении кода AWS Lambda, иначе вам не нужно ничего платить.
События, запускающие AWS Lambda
Вот события, которые будут запускаться при использовании AWS Lambda.
- Вставка, обновление и удаление данных таблицы Dynamo DB
- Чтобы включить push-уведомления в соцсети
- Для поиска журнала в CloudTrail
- Вход в объект S3
- DynamoDB может запускать AWS Lambda всякий раз, когда в таблице добавляются, изменяются и удаляются данные.
- Помогает вам запланировать мероприятие для выполнения задачи в обычном режиме времени.
- Модификации объектов в ведрах S3
- Уведомления, отправленные из Amazon SNS.
- AWS Lambda можно использовать для обработки журналов CloudTrail.
- API Gateway позволяет запускать AWS Lambda для методов GET / POST.
Концепции AWS Lambda
Функция:
Функция - это программа или сценарий, выполняемый в AWS Lambda. Lambda передает события вызова в вашу функцию, которая обрабатывает событие и возвращает ответ.
Время выполнения:
Среда выполнения позволяет выполнять функции на разных языках в одной и той же базовой среде выполнения. Это поможет вам настроить вашу функцию во время выполнения. Он также соответствует выбранному вами языку программирования.
Источник события:
Источником события является сервис AWS, например Amazon SNS, или специальный сервис. Эта функция триггеров помогает вам выполнять свою логику.
Лямбда-слои:
Слои лямбда являются важным механизмом распространения для библиотек, пользовательских сред выполнения и других важных зависимостей функций. Этот компонент AWS также помогает управлять кодом функции разработки отдельно от неизменного кода и ресурсов, которые он использует.
Потоки журналов:
Поток журнала позволяет аннотировать код функции с помощью настраиваемых операторов ведения журнала, которые помогают анализировать поток выполнения и производительность функций AWS Lambda.
Как использовать AWS Lambda
Теперь мы узнаем, как использовать AWS Lambda с примером AWS Lambda:
Шаг 1 ) Перейдите на https://aws.amazon.com/lambda/ и приступайте к работе.
Шаг 2 ) Создайте учетную запись или войдите в свою существующую учетную запись.
Шаг 3 ) На следующей странице лямбда-выражений
- Отредактируйте код
- Нажмите "Выполнить".
Шаг 4 ) Вы увидите результат
AWS Lambda против AWS EC2
Вот некоторые основные различия между AWS Lambda и EC2.
Параметры | AWS Lambda | AWS EC2 |
Определение | AWS Lambda - это платформа как услуга (PaaS). Это помогает вам запускать и выполнять ваш бэкэнд-код. | AWS EC2 - это инфраструктура как услуга (laaS). Он предоставляет виртуализированные вычислительные ресурсы. |
Гибкость | Не предлагает гибкости для входа в вычислительные экземпляры. Это позволяет вам выбрать индивидуальную операционную систему или языковую среду выполнения. | Предлагает гибкость для выбора множества экземпляров, индивидуальных операционных систем, исправлений безопасности, сети и т. Д. |
Процесс установки | Вам нужно выбрать среду, в которой вы хотите запустить код, и отправить код в AWS Lambda. | Впервые в EC2 вам нужно выбрать ОС и установить все необходимое программное обеспечение, а затем ввести свой код в EC2. |
Ограничения по окружающей среде | Он ограничен несколькими языками. | Без ограничений по окружающей среде. |
AWS Lambda против AWS Elastic Beanstalk
Вот несколько основных различий между AWS Lambda и Elastic Beanstalk.
Параметры | AWS Elastic Beanstalk | AWS Lambda |
Основная задача | Развертывайте приложения в облаке AWS и управляйте ими, не беспокоясь об инфраструктуре, в которой работают эти приложения. | AWS Lambda используется для запуска и выполнения вашего внутреннего кода. Вы не можете использовать его для развертывания приложения. |
Выбор ресурсов AWS | Это дает вам свободу выбора ресурсов AWS; Например, вы можете выбрать экземпляр EC2, который оптимален для вашего приложения. | Вы не можете выбрать ресурсы AWS, например, тип инстанса EC2, Lambda предлагает ресурсы в зависимости от вашей рабочей нагрузки. |
Тип системы | Это система с отслеживанием состояния. | Это система без гражданства. |
Примеры использования AWS Lambda
AWS Lambda используется для широкого спектра приложений, таких как:
- Помогает вам в процессе ETL
- Позволяет выполнять обработку файлов в реальном времени и потоковую обработку в реальном времени
- Используйте для создания веб-приложений
- Использование в таких продуктах Amazon, как Alexa Chatbots и Amazon Echo / Alexa.
- Обработка данных (потоковая аналитика в реальном времени)
- Автоматическое резервное копирование повседневных задач
- Масштабируемые серверные части (мобильные приложения, устройства loT)
- Помогает вам выполнять логику серверной части
- Позволяет фильтровать и преобразовывать данные
Лучшие практики лямбда-функции
Вот несколько рекомендаций по использованию функций AWS Lambda:
- Используйте правильный «тайм-аут».
- Воспользуйтесь функциями локального хранилища размером 500 МБ в папке / temp
- Сведение к минимуму использования кода запуска, который напрямую не связан с обработкой текущего события.
- Вам следует использовать встроенный CloudWatch мониторинг ваших функций Lambda для просмотра и оптимизации задержек запросов.
Когда не использовать AWS Lambda
Ниже приведены ситуации, когда Lambda, безусловно, не идеальный вариант:
- Нецелесообразно использовать программные пакеты или приложения AWS Lambda, которые полагаются на вызов базовых RPC Windows.
- If используется для пользовательских программных приложений с лицензионными соглашениями, таких как обработка документов MS-Office, базы данных Oracle и т. Д.
- AWS Lambda не следует использовать для нестандартных аппаратных процессов, таких как ускорение графического процессора, привязка к оборудованию.
Преимущества использования AWS Lambda
Вот плюсы / преимущества использования AWS lambda:
- AWS Lambda - очень гибкий инструмент в использовании
- Это помогает вам предоставлять доступ к ресурсам, включая VPC.
- Создавайте прямо с помощью редактора WYSIWYG в консоли.
- Вы можете использовать его как плагин для Eclipse и Visual Studio.
- Поскольку это бессерверная архитектура, вам не нужно беспокоиться об управлении или предоставлении серверов.
- Вам не нужно настраивать какую-либо виртуальную машину.
- Помогает разработчикам запускать и выполнять реакцию кода на события без создания какой-либо инфраструктуры.
- Вам просто нужно на время вычислений, только когда ваш код работает.
- Вы можете отслеживать производительность своего кода в реальном времени через CloudWatch.
- Это позволяет запускать код без подготовки или управлять любым другим сервером.
- Помогает выполнять код только при необходимости
- Вы можете масштабировать его автоматически, чтобы обрабатывать несколько запросов в день и даже поддерживать более тысячи запросов в секунду.
- AWS Lambda можно настроить с помощью таймеров внешних событий для выполнения запланированных задач.
- Лямбда-функция в AWS должна быть настроена с использованием внешних событий и таймеров, поэтому; его можно использовать для составления расписания.
- Лямбда-функции не имеют состояния, поэтому их можно быстро масштабировать.
- AWS Lambda работает быстро, поэтому он выполнит ваш код за миллисекунды.
Ограничения AWS Lambda
Вот минусы / недостатки использования AWS Lambda:
- Инструмент AWS Lambda не подходит для небольших проектов.
- AWS Lambda полностью полагается на AWS для инфраструктуры, поэтому вы не можете установить дополнительное программное обеспечение, если этого требует ваш код.
- Одновременное выполнение ограничено до 100
- AWS Lambda полностью зависит от AWS для инфраструктуры; вы не можете установить ничего дополнительного программного обеспечения, если этого требует ваш код.
- Объем его памяти может варьироваться от 128 до 1536 МБ.
- Запрос события не должен превышать 128 КБ.
- Лямбда-функции помогут вам вести свои логи только в CloudWatch. Это единственный инструмент, который позволяет отслеживать и устранять неполадки в функциях.
- Таймаут выполнения его кода составляет всего 5 минут.
Резюме
- Бессерверные - это термин, который обычно относится к бессерверным приложениям.
- AWS Lambda - один из таких сервисов бессерверных вычислений. Поэтому вам не нужно беспокоиться о том, какие ресурсы AWS запускать или как они будут ими управлять.
- Функция - это программа или сценарий, который выполняется в AWS безсерверной Lambda.
- Среда выполнения позволяет выполнять функции на разных языках в одной и той же базовой среде выполнения.
- Источником события является сервис AWS, например Amazon SNS, или специальный сервис.
- Слои лямбда являются важным механизмом распространения для библиотек, пользовательских сред выполнения и других важных зависимостей функций.
- Поток журнала позволяет аннотировать код вашей функции с помощью настраиваемых операторов ведения журнала, которые помогают анализировать поток выполнения и производительность ваших лямбда-функций.
- AWS Lambda - это платформа как услуга (PaaS). Это помогает вам запускать и выполнять ваш бэкэнд-код.
- AWS EC2 - это инфраструктура как услуга (laaS). Он предоставляет виртуализированные вычислительные ресурсы.
- Развертывайте приложения в облаке AWS и управляйте ими, не беспокоясь об инфраструктуре, в которой работают эти приложения.
- AWS Lambda используется для запуска и выполнения вашего внутреннего кода. Вы не можете использовать его для развертывания приложения.
- AWS Lambda помогает в процессе ETL.
- Лучшая практика использования функции Lambda в AWS - использовать правильный «тайм-аут».
- Нецелесообразно использовать программные пакеты или приложения AWS Lambda, которые полагаются на вызов базовых RPC Windows.
- AWS Lambda - очень гибкий инструмент.
- Инструмент AWS Lambda не подходит для небольших проектов.
- Обычное событие, которое запускается при использовании AWS Lambda, - это Вставка, обновление и удаление данных таблицы Dynamo DB.