Учебники

4) Что такое AWS Lambda?

Перед AWS Lambda давайте разберемся:

Что такое безсерверный?

Безсерверный термин — это термин, который обычно относится к безсерверным приложениям. Бессерверные приложения — это те приложения, которые не нуждаются ни в каком серверном обеспечении и не требуют управления серверами.

Что такое AWS Lambda?

AWS LAMBDA — это управляемая событиями, серверная вычислительная платформа, предоставляемая Amazon как часть Amazon Web Services. Поэтому вам не нужно беспокоиться о том, какие ресурсы AWS запускать или как вы ими будете управлять. Вместо этого вам нужно поместить код в Lambda, и он запустится.

В AWS Lambda код выполняется на основе ответа на события в сервисах AWS, таких как добавление / удаление файлов в корзине S3, HTTP-запрос от шлюза Amazon API и т. Д. Однако лямбда-код может использоваться только для выполнения фоновых задач.

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, когда он запускается сервисами AWS:

Step 5: AWS charges only when the AWS lambda code executes, and not otherwise.

This will happen in the following scenarios:

  • Upload files in an S3 bucket
  • When HTTP get/post endpoint URL is hit
  • For adding/modifying and deleting Dynamo DB tables
  • In the process of data streams collection
  • Push notification
  • Hosting of website
  • Email sending

Note: You should remember that you will charge for AWS services only when the AWS Lambda code executes, else you don’t need to pay anything.

Events that Trigger AWS Lambda

Here, are Events which will be triggered when you use AWS Lambda.

  • Insert, updating and deleting data Dynamo DB table
  • To include push notifications in SNS
  • To search for log history in CloudTrail
  • Entry into an S3 object
  • DynamoDB can trigger AWS Lambda whenever there is data added, modified, and deleted in the table.
  • Helps you to schedule the event to carry out the task at regular time pattern.
  • Modifications to objects in S3 buckets
  • Notifications sent from Amazon SNS.
  • AWS Lambda can be used to process the CloudTrail logs
  • API Gateway allows you to trigger AWS Lambda on GET/POST methods.

AWS Lambda Concepts

Function:

A function is a program or a script which runs in AWS Lambda. Lambda passes invocation events into your function, which processes an event and returns its response.

Runtimes:

Runtime allows functions in various languages which runs on the same base execution environment. This helps you to configure your function in runtime. It also matches your selected programming language.

Event source:

An event source is an AWS service, such as Amazon SNS, or a custom service. This triggers function helps you to executes its logic.

Lambda Layers:

Лямбда-слои являются важным механизмом распространения библиотек, пользовательских сред выполнения и других важных зависимостей функций. Этот компонент AWS также помогает вам управлять кодом функции разработки отдельно от неизменного кода и ресурсов, которые он использует.

Журнальные потоки:

Поток журналов позволяет вам аннотировать ваш код функции с помощью пользовательских операторов журналирования, которые помогают анализировать поток выполнения и производительность ваших функций Lambda.

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

Шаг 1 ) Перейдите на https://aws.amazon.com/lambda/ и начните работу

Шаг 2 ) Создайте учетную запись или войдите в свою учетную запись

Шаг 3 ) На следующей лямбда-странице

  1. Редактировать код
  2. Нажмите Run

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

AWS Lambda VS AWS EC2

Вот некоторые основные различия между AWS Lambda и EC2.

параметры AWS Lambda AWS EC2
Определение AWS Lambda — это платформа как услуга (PaaS). Это помогает вам запускать и выполнять свой внутренний код. AWS EC2 — это инфраструктура как услуга (laaS). Он предоставляет виртуализированные вычислительные ресурсы.
гибкость Не предлагает никакой гибкости, чтобы войти, чтобы вычислить экземпляры. Позволяет выбрать настроенную операционную систему или язык выполнения. Обеспечивает гибкость выбора различных экземпляров, настраиваемых систем, исправлений безопасности, сети и т. Д.
Процесс установки Вам нужно выбрать среду, в которой вы хотите сжать код, и вставить этот код в AWS Lambda. Впервые в EC2 вы должны выбрать ОС и установить все необходимое программное обеспечение, а затем вставить свой код в EC2.
Ограничения окружающей среды Это ограничено несколькими языками. Нет ограничений среды.

AWS Lambda VS AWS Эластичный бобовый стебель

Вот некоторые основные различия между AWS Lambda и Elastic Beanstalk.

параметры AWS Эластичный бобовый стебель AWS Lambda
Основная задача Развертывайте и управляйте приложениями в облаке AWS, не беспокоясь об инфраструктуре, в которой эти приложения работают. AWS Lambda используется для запуска и выполнения вашего внутреннего кода. Вы не можете использовать его для развертывания приложения.
Выбор ресурсов AWS Это дает вам свободу выбора ресурсов AWS; Например, вы можете выбрать экземпляр EC2, который является оптимальным в соответствии с вашим приложением. Вы не можете выбрать ресурсы AWS, например, тип экземпляра EC2, Lambda предлагает ресурсы в зависимости от вашей рабочей нагрузки.
Тип системы Это система с состоянием. Это система без гражданства.

Примеры использования AWS Lambda

AWS Lambda используется для широкого спектра применений, таких как:

  • Помогает вам в процессе ETL
  • Позволяет выполнять обработку файлов в реальном времени и обработку потоков в реальном времени
  • Используйте для создания веб-приложений
  • Используйте в Amazon такие продукты, как Alexa Chatbots и Amazon Echo / Alexa
  • Обработка данных (потоковая аналитика в реальном времени)
  • Автоматическое резервное копирование повседневных задач
  • Масштабируемые серверные части (мобильные приложения, устройства loT)
  • Помогает вам выполнить серверную логику
  • Позволяет фильтровать и преобразовывать данные

Лучшие практики лямбда-функции

Вот важные передовые практики лямбда-функций:

  • Используйте правильный «тайм-аут».
  • Используйте функции локального хранилища размером 500 МБ в папке / temp
  • Минимизация использования кода запуска, который не имеет прямого отношения к обработке текущего события.
  • Вы должны использовать встроенный CloudWatch мониторинг ваших функций Lambda для просмотра и оптимизации задержек запросов.

Когда не следует использовать AWS Lambda

Ниже приводится ситуация, когда лямбда, безусловно, не идеальный вариант:

  • Нельзя использовать пакеты программного обеспечения AWS Lambda или приложения, которые полагаются на вызовы базовых RPC Windows
  • Если используется для пользовательских программных приложений с лицензионными соглашениями, такими как обработка документов MS-Office, базы данных Oracle и т. Д.
  • AWS Lambda не следует использовать для пользовательских аппаратных процессов, таких как ускорение графического процессора, привязка к оборудованию.

Преимущества использования AWS Lambda

Вот преимущества / преимущества использования AWS лямбда:

  • AWS Lambda — очень гибкий в использовании инструмент
  • Это поможет вам предоставить доступ к ресурсам, включая VPC.
  • Автор непосредственно с редактором WYSIWYG в консоли.
  • Вы можете использовать его как плагин для Eclipse и Visual Studio.
  • Поскольку это серверная архитектура, вам не нужно беспокоиться об управлении или подготовке серверов.
  • Вам не нужно настраивать виртуальную машину.
  • Помогает разработчикам запускать и выполнять реакцию кода на события без создания какой-либо инфраструктуры.
  • Вам просто нужно на то, чтобы время вычислений заняло, только когда ваш код работает.
  • Вы можете отслеживать производительность вашего кода в режиме реального времени через CloudWatch.
  • Это позволяет вам запускать свой код без предоставления или управлять любым другим сервером
  • Помогает выполнить код только при необходимости
  • Вы можете масштабировать его автоматически, чтобы обрабатывать несколько запросов в день и даже поддерживать более тысячи запросов в секунду.
  • AWS Lambda можно настроить с помощью внешних таймеров событий для выполнения запланированных задач.
  • В AWS Lambda должны быть настроены внешние события и таймеры; это может быть использовано для планирования.
  • Лямбда-функции не сохраняют состояния, поэтому их можно быстро масштабировать.
  • 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.
  • Runtime допускает функции на разных языках, которые выполняются в одной базовой среде исполнения.
  • Источником события является сервис AWS, например Amazon SNS, или пользовательский сервис.
  • Лямбда-слои являются важным механизмом распространения библиотек, пользовательских сред выполнения и других важных зависимостей функций.
  • Поток журналов позволяет вам аннотировать ваш код функции с помощью пользовательских операторов журналирования, которые помогают анализировать поток выполнения и производительность ваших функций Lambda.
  • AWS Lambda — это платформа как услуга (PaaS). Это помогает вам запускать и выполнять свой внутренний код.
  • AWS EC2 — это инфраструктура как услуга (laaS). Он предоставляет виртуализированные вычислительные ресурсы.
  • Развертывайте и управляйте приложениями в облаке AWS, не беспокоясь об инфраструктуре, в которой эти приложения работают.
  • AWS Lambda используется для запуска и выполнения вашего внутреннего кода. Вы не можете использовать его для развертывания приложения.
  • AWS Lambda помогает вам в процессе ETL.
  • Лучшая практика использования лямбда-функции — использовать правильный «тайм-аут».
  • Нельзя использовать пакеты программного обеспечения AWS Lambda или приложения, которые полагаются на вызовы базовых RPC Windows
  • AWS Lambda — очень гибкий инструмент.
  • Инструмент AWS Lambda не подходит для небольших проектов.
  • Распространенным событием, которое вызывается при использовании AWS Lambda, является вставка, обновление и удаление данных из таблицы Dynamo DB.