Что такое 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 за несколько простых шагов:

Блок-схема 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/ и начать

Как использовать AWS Lambda

Шаг 2) Завести аккаунт
Далее создайте учетную запись или войдите в существующую учетную запись.

Шаг 3) Отредактируйте код и нажмите «Выполнить»,
На следующей странице Lambda

  1. Отредактируйте код
  2. Нажмите Run

Как использовать AWS Lambda

Шаг 4) Проверьте вывод
Вы увидите вывод

Как использовать AWS Lambda

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.