Что такое AWS Lambda? Лямбда-функция с примерами
Прежде чем использовать функцию AWS Lambda, давайте разберемся:
Что такое безсерверный?
Бессерверные приложения — это термин, который обычно относится к бессерверным приложениям. Бессерверные приложения — это приложения, которые не требуют выделения сервера и не требуют управления серверами.
Что такое AWS Lambda?
AWS Lambda — это управляемая событиями бессерверная вычислительная платформа, предоставляемая Amazon как часть Amazon Веб-сервисы. Поэтому вам не нужно беспокоиться о том, какие ресурсы AWS запускать или как вы будете ими управлять. Вместо этого вам нужно поместить код в Lambda, и он запустится.
В AWS Lambda код выполняется на основе реакции на события в сервисах AWS, такие как добавление/удаление файлов в корзине S3, HTTP-запрос от Amazon API-шлюз и т. д. Однако Amazon 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-уведомления в SNS
- Для поиска истории журналов в CloudTrail
- Вход в объект S3
- DynamoDB может запускать AWS Lambda всякий раз, когда в таблице добавляются, изменяются или удаляются данные.
- Помогает вам запланировать событие для выполнения задачи в обычное время.
- Изменения объектов в корзинах S3
- Уведомления отправлены с Amazon СНС.
- AWS Lambda можно использовать для обработки журналов CloudTrail.
- API Gateway позволяет запускать AWS Lambda с помощью методов GET/POST.
AWS Lambda Concepts
Функции:
Функция — это программа или скрипт, работающий в AWS Lambda. Lambda передает события вызова в вашу функцию, которая обрабатывает событие и возвращает ответ.
Время выполнения:
Среда выполнения позволяет использовать функции на разных языках, которые выполняются в одной базовой среде выполнения. Это поможет вам настроить функцию во время выполнения. Он также соответствует выбранному вами язык программирования.
Источник события:
Источником событий является сервис AWS, например Amazon SNS или специальный сервис. Эта функция триггеров помогает вам выполнять свою логику.
Лямбда-слои:
Слои Lambda — это важный механизм распространения библиотек, пользовательских сред выполнения и других важных зависимостей функций. Этот компонент AWS также помогает вам управлять кодом функции разработки отдельно от неизменного кода и ресурсов, которые он использует.
Потоки журналов:
Поток журнала позволяет аннотировать код функции с помощью пользовательских операторов журналирования, что помогает анализировать поток выполнения и производительность функций AWS Lambda.
Как использовать AWS Lambda
Теперь мы узнаем, как использовать AWS Lambda на примере AWS Lambda:
Шаг 1) Шаг 1) Откройте URL-адрес AWS Lambda.
Идти к https://aws.amazon.com/lambda/ и начать
Шаг 2) Завести аккаунт
Далее создайте учетную запись или войдите в существующую учетную запись.
Шаг 3) Отредактируйте код и нажмите «Выполнить»,
На следующей странице Lambda
- Отредактируйте код
- Нажмите Run
Шаг 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 Эхо/Алекса
- Обработка данных (потоковая аналитика в реальном времени)
- Автоматическое резервное копирование повседневных задач
- Масштабируемая серверная часть (мобильные приложения, устройства LoT)
- Помогает вам выполнять серверную логику
- Позволяет фильтровать и преобразовывать данные.
лучшие практики использования лямбда-функции
Вот некоторые лучшие практики AWS Лямбда-функции:
- Используйте правильный «тайм-аут».
- Используйте функции локального хранилища размером 500 МБ в папке /temp.
- Минимизация использования стартового кода, не связанного напрямую с обработкой текущего события.
- Вам следует использовать встроенный CloudWatch для мониторинга ваших функций Lambda, чтобы просматривать и оптимизировать задержки запросов.
Когда не следует использовать AWS Lambda
Ниже приведены ситуации, когда Lambda, безусловно, не идеальный вариант:
- Нецелесообразно использовать программные пакеты или приложения AWS Lambda, которые полагаются на вызовы базовых Windows RPC
- Если используется для пользовательских программных приложений с лицензионными соглашениями, таких как обработка документов MS-Office, Oracle базы данных и т. д.
- AWS Lambda не следует использовать для пользовательских аппаратных процессов, таких как ускорение графического процессора или привязка оборудования.
Преимущества использования AWS Lambda
Вот плюсы/преимущества использования лямбды AWS:
- AWS Lambda — это очень гибкий инструмент для использования
- Это поможет вам предоставить доступ к ресурсам, включая VPC.
- Автор напрямую с WYSIWРедактор YG в консоли.
- Вы можете использовать его как плагин для Eclipse и Visual Studio.
- Поскольку это бессерверная архитектура, вам не нужно беспокоиться об управлении серверами или их подготовке.
- Вам не нужно настраивать какие-либо Виртуальная машина.
- Помогает разработчикам запускать и выполнять реакцию кода на события без создания какой-либо инфраструктуры.
- Вам просто нужно затраченное время вычислений, только когда ваш код запускается.
- Вы можете отслеживать производительность своего кода в режиме реального времени с помощью CloudWatch.
- Это позволяет вам запускать ваш код без подготовки или управлять любым другим сервером.
- Помогает выполнять код только при необходимости
- Вы можете масштабировать его автоматически, чтобы обрабатывать несколько запросов в день и даже поддерживать более тысячи запросов в секунду.
- AWS Lambda можно настроить с помощью внешних таймеров событий для выполнения запланированных задач.
- Функция 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 запускать или как они будут ими управлять.
- Функция — это программа или скрипт, который работает в бессерверной среде Lambda AWS.
- Среда выполнения позволяет использовать функции на разных языках, которые выполняются в одной базовой среде выполнения.
- Источником событий является сервис AWS, например Amazon SNS или специальный сервис.
- Слои Lambda — это важный механизм распространения библиотек, пользовательских сред выполнения и других важных зависимостей функций.
- Поток журнала позволяет вам аннотировать код вашей функции с помощью пользовательских операторов журналирования, что помогает вам анализировать поток выполнения и производительность ваших функций Lambda.
- AWS Lambda — это платформа как услуга (PaaS). Это поможет вам запустить и выполнить серверный код.
- AWS EC2 — это инфраструктура как услуга (laaS). Он предоставляет виртуализированные вычислительные ресурсы.
- Развертывайте приложения и управляйте ими в облаке AWS, не беспокоясь об инфраструктуре, в которой работают эти приложения.
- AWS Lambda используется для запуска и выполнения вашего серверного кода. Вы не можете использовать его для развертывания приложения.
- AWS Lambda поможет вам Процесс ETL.
- Лучшая практика использования функции Lambda в AWS — использовать правильный «тайм-аут».
- Нецелесообразно использовать программные пакеты или приложения AWS Lambda, которые полагаются на вызовы базовых Windows RPC
- AWS Lambda — очень гибкий инструмент.
- Инструмент AWS Lambda не подходит для небольших проектов.
- Обычное событие, которое срабатывает при использовании AWS Lambda, — это вставка, обновление и удаление таблицы данных Dynamo DB.