Написание функций и кода с помощью AWS Lambda

Lambda позволяет вам запускать код, также известный как функции, без владения серверами или управления ими. Пользователи платят только за затраченное время вычислений.

Стремясь стать предпочтительным корпоративным облаком для инновационных разработчиков и новаторов, Amazon Web Services представила Lambda в 2014 году. Первая предварительная версия для разработчиков была выпущена в 2015 году, а общедоступная версия была анонсирована в феврале 2016 года.

Разработчики, желающие использовать Lambda, могут использовать широко распространенный язык программирования, например Java, или писать свой код на C++ или C#. Минимальный экземпляр функции Lambda должен быть виртуальной машиной. Его можно масштабировать вверх и вниз, но нельзя использовать в качестве экземпляра EC2.

Цель Lambda — сделать работу по разработке более доступной.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Вот сценарий, который вы должны объяснить новым разработчикам о Lambda:

Вы пишете функцию, которая планирует задание на следующие 5 минут. Код ждет, пока не пройдет 5 минут, а затем повторяет процесс.

Используя Lambda, вы можете избежать запуска сервера заданий и вам не придется нести накладные расходы, связанные с управлением сервером.

Что такое AWS Lambda?

AWS Lambda — это облачный сервис, который позволяет запускать код без подготовки серверов и управления ими. Lambda выполняет ваш код только при необходимости и автоматически масштабируется для запуска вашего кода с высокой доступностью. Это позволяет разработчикам быстро создавать приложения и сервисы без необходимости выделять серверы или управлять ими. Вы можете использовать Lambda для создания бессерверных приложений, включая серверные службы, приложения, управляемые событиями, и чат-ботов.

Когда использовать лямбду?

Lambda — это сервис бессерверных вычислений в AWS, который может выполнять код без подготовки серверов или управления ими. Он часто используется для приложений, управляемых событиями, где код запускается такими событиями, как загрузка пользователем, изменение данных или системные изменения. Lambda также можно использовать для обработки данных, преобразования файлов, серверной части веб-сайта и многого другого. Lambda — отличный выбор для кода, который управляется событиями или который необходимо запускать в высокомасштабируемой среде.

Лямбда-функции

Ниже приведены некоторые особенности AWS Lambda:

  • Бессерверное использование: AWS Lambda — это бессерверный сервис вычислений, который запускает ваш код в ответ на события и автоматически управляет базовыми вычислительными ресурсами.
  • Масштабирование. AWS Lambda может масштабироваться до сотен тысяч одновременных выполнения, что позволяет создавать высокопараллельные приложения, управляемые событиями.
  • Управление событиями: AWS Lambda позволяет реагировать на такие события, как загрузка файлов и изменение данных в корзине Amazon S3.
  • Экономичность: с AWS Lambda вы платите только за использованное вычислительное время. Плата не взимается, если ваш код не работает.
  • Гибкость. AWS Lambda поддерживает множество языков и сред выполнения, включая Node.js, Java, Python и C#. Это позволяет вам использовать язык и библиотеки по вашему выбору.

Как работает AWS Lambda?

AWS Lambda — это бессерверный сервис вычислений, который запускает код в ответ на события и автоматически управляет вычислительными ресурсами, необходимыми для этого кода.

  • При возникновении события Lambda выполнит ваш код. Он выделяет необходимые вычислительные ресурсы, запускает ваш код, а затем уничтожает ресурсы после завершения работы. Вы платите только за затраченное вычислительное время — плата не взимается, когда ваш код не работает.
  • AWS Lambda может запускаться событиями таких сервисов AWS, как Amazon S3, Amazon Dynamodb, Amazon Kinesis, Amazon SNS и Amazon Cognito, а также любых веб-приложений или мобильных приложений.
  • Код, работающий в Lambda, может быть написан на Node.js, Python, Java, Go или C# и может использоваться для реагирования на события, преобразования и обработки данных, интеграции со сторонними API или создания бессерверных серверных частей.

Преимущества AWS Lambda

Есть и другие преимущества, такие как простота тестирования, лучшая масштабируемость и более низкие затраты.

Лямбда-функции имеют сигнатурный метод EchoRequest (string argc, argv); где EchoRequest возвращает событие, которое Echo может транслировать своим отправителям событий.

  • Первый параметр EchoRequest — это источник событий, который будет прослушивать Lambda.
  • Второй параметр — это функция, которую нужно вызвать, чтобы начать выполнение новой функции Lambda.
  • Третий параметр — это сама функция, которая имеет ту же сигнатуру, что и функция Lambda, и предназначена для описания кода, который вы собираетесь запустить.
  • Четвертый параметр — список отправителей событий.

Lambda позволяет вам писать код на сервере разработки, а затем отправлять HTTP-запрос в Lambda, который выполняет код.

Вы создаете панель управления Amazon Web Services (AWS) и добавляете функцию Lambda для создания функции Lambda. Панель мониторинга Lambda связана с консолью Lambda, и в консоли Lambda вы включаете функцию, устанавливаете имя функции и подключаете API Amazon EC2, используя свои учетные данные для доступа.

Lambda может вызывать функцию и контролировать выполнение кода, изменяя URL-адрес функции Lambda, а также отправляя и получая сообщение Echo для любого сообщения, которое получает Echo, или когда оно получает вызов лямбда-функции.

Установив для заголовков HTTP-запроса значение Echo, Lambda сможет обработать запрос. Вы также можете отправлять ответы функции Lambda с телом JSON и указывать один ответ JSON для всех запросов.

Для этого добавьте в свою функцию несколько строк кода, которые вы сможете отправить в Lambda для ответа на любой полученный запрос.

Вот несколько примеров функций, которые можно использовать для создания функции, ожидающей доставки текстового сообщения в течение 5 минут:

void wait5минуты (строка eventName, строковый токен) {

Amazon.Message.Receive(имясобытия, токен, 5);

}

void postMessage (строковое сообщение, тело строки) {

Amazon.Message.Send(сообщение, тело);

}

Вот несколько примеров функций, которые вы можете использовать для создания функции, прослушивающей сообщения электронной почты:

void postEmail(тело строки){

Amazon.Message.Receive(сообщение, тело, 5);

}

Вот несколько примеров функций, которые можно использовать для создания функции, отправляющей сообщение электронной почты на любой адрес электронной почты в адресной книге получателя:

void sendEmail (строковое сообщение) {

Amazon.Email.Send(сообщение, toAddressList, fromAddressList, тема, fromBody, тело);

}

Многие сервисы AWS используют Lambda, но основными из них являются следующие.

  • Шлюз AWS API: AWS Lambda использует шлюз AWS API для отправки сообщений и выполнения запросов.
  • Интерфейс AWS lambda_external: внешний интерфейс позволяет Lambda отправлять сообщения внешним сервисам.
  • Группы AWS Lambda. Ваша функция Lambda сгруппирована с другими функциями Lambda, что упрощает обработку большего количества запросов.
  • Функции AWS Lambda: функции AWS Lambda имеют подпись EchoRequest(string eventName, string token, list event), где eventName — это имя события AWS Lambda, выполнение которого вы запрашиваете, токен — это заголовок запроса. , а list — это список событий AWS Lambda, которые вы запрашиваете.

Лямбда-функции предназначены для ответа сообщением Echo; другими словами, они отвечают сообщением электронной почты или данными JSON в формате JSON.

Создайте проект AWS Lambda

Следующие шаги помогут вам успешно создать проект AWS Lambda.

  • Откройте консоль управления AWS и перейдите к сервису AWS Lambda.
  • Нажмите кнопку «Создать функцию».
  • Выберите опцию «Автор с нуля».
  • Введите имя для вашей лямбда-функции.
  • Установите среду выполнения как «Node.js» или желаемый язык.
  • В разделе «Разрешения» выберите параметр «Создать новую роль из шаблона».
  • Введите имя настраиваемой роли и выберите «Базовые разрешения Lambda» в качестве шаблона политики.
  • Введите описание функции и нажмите «Создать функцию».
  • Выберите редактор кода по вашему выбору и начните кодировать логику, которую вы хотите, чтобы ваша функция Lambda выполняла.
  • Когда вы закончите, нажмите «Сохранить», чтобы создать лямбда-функцию.

Реализация метода обработчика

Метод-обработчик — это основная функция проекта AWS Lambda. Он определяет точку входа для кода и получает объект события, который активировал функцию Lambda. А также обработчик указывает код, который должен выполняться при вызове функции.

Основной синтаксис метода-обработчика следующий:

  • Объект события содержит информацию о конкретном событии, которое запустило функцию Lambda. Этот объект события может быть веб-запросом, вызовом API или чем-то еще.
  • Объект контекста предоставляет информацию о среде AWS Lambda, включая версию функции и другие сведения.
  • Параметр обратного вызова — это функция, которая используется для возврата результата функции Lambda. Он получает два параметра: ошибку (или ноль) и результат функции.

Разрешить Lambda взять на себя роль IAM

Роли IAM – это способ предоставить функциям AWS Lambda доступ к другим сервисам AWS. Создавая роль IAM, вы указываете, какие действия может выполнять роль и к каким ресурсам она имеет доступ. Затем вы можете прикрепить роль к функции Lambda, и Lambda возьмет на себя эту роль при выполнении вашего кода. Это дает вашей функции возможность вызывать другие сервисы AWS от вашего имени.

  • Чтобы разрешить Lambda взять на себя роль IAM, необходимо сначала создать роль IAM, имеющую разрешения, необходимые функции Lambda для выполнения своей задачи.
  • Далее необходимо создать доверительные отношения между ролью IAM и функцией Lambda. Эти доверительные отношения устанавливаются путем добавления встроенной политики к роли IAM, которая позволяет функции Lambda взять на себя эту роль. Эта политика должна включать ARN функции Lambda и роль IAM.
  • Чтобы функция Lambda могла взять на себя роль IAM, необходимо добавить следующий оператор в конфигурацию функции Lambda:

“Главный”: {

«Сервис»: «lambda.amazonaws.com»

},

“Действие”,: “sts: AssumeRole”

  • Наконец, вы должны добавить ARN роли IAM к роли выполнения функции Lambda.

Роли IAM — это безопасный способ предоставления разрешений вашим функциям Lambda, поскольку вы можете жестко контролировать, какие действия может выполнять роль и к каким ресурсам она имеет доступ. Кроме того, роли IAM автоматически меняются, поэтому вам не придется самостоятельно управлять учетными данными.

Начало работы с Amazon EC2

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

Для готового к эксплуатации приложения Lambda вам понадобится экземпляр Amazon EC2, использующий AWS Elastic Compute Cloud (EC2), в котором вы развертываете свою функцию Lambda, который находится в той же зоне доступности, что и тестируемый экземпляр EC2.

Мы рекомендуем протестировать ваше приложение в виртуальном частном облаке (VPC) с балансировщиком нагрузки перед вашей функцией Lambda.

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

  • Шлюз хранилища AWS
  • AWS AWS CloudFront
  • Маршрут AWS 53

Эти сервисы AWS имеют уровень бесплатного пользования, который позволяет разместить одну конечную точку Amazon S3. Вы можете создать сервер с одной конечной точкой S3 и направить свою функцию Lambda на конечную точку Amazon S3.

AWS поддерживает три типа AMI: Standard, High и Enterprise. Вы можете просмотреть и изменить тип AMI в Консоли управления AWS или Консоли AWS. Пожалуйста, обратитесь к этой документации для получения дополнительной информации о настройке и использовании AMI.

Что такое Amazon Elastic Compute Cloud (EC2)?

Amazon Elastic Compute Cloud (Amazon EC2) — это гипермасштабируемый вычислительный сервис по требованию, созданный на виртуальной машине .NET. Вы можете запускать функции Lambda на одном сервере, в кластере серверов или на совокупности экземпляров серверов.

Что такое AWS CloudFront?

AWS CloudFront — это сеть распространения контента (CDN), которая помогает вам расширять возможности ваших веб-сервисов, таких как функции Lambda, для пользователей по требованию на любом устройстве. Вы можете использовать AWS CloudFront, чтобы обеспечить кэширование ваших сервисов наподобие CDN, например загрузку и предоставление ресурсов из удаленного местоположения пользователям по требованию на любом устройстве.

Что такое Amazon Route 53?

Amazon Route 53 — это служба DNS, которая позволяет расширить доступ к вашим сервисам AWS для конечного пользователя. Amazon Route 53 поддерживает статический и динамический DNS, обеспечивает возможность маршрутизации по протоколу веб-сервиса и поддерживает ряд правил маршрутизации, которые определяют политику доставки контента ваших веб-сервисов.

Что такое Amazon CloudWatch?

Amazon CloudWatch — это сервис AWS, предоставляющий инструменты агрегирования и визуализации данных. CloudWatch также является службой мониторинга. Подробное описание сервиса CloudWatch можно найти в документации AWS. CloudWatch предоставляет несколько показателей, которые можно использовать для мониторинга работоспособности функции Lambda и устранения любых проблем:

  • Метрика, указывающая регион. Если ваша лямбда-функция работает нормально, вам, вероятно, не понадобится такая метрика. Если ваша функция Lambda работает неправильно, возможно, вы захотите попробовать разные регионы. Метрика покажет вам, в каком регионе работает ваша функция Lambda.
  • Метрика, показывающая, сколько пользователей обращаются к вашей функции Lambda. Если ваша функция Lambda работает неудовлетворительно, вам нужно будет отслеживать количество запросов в секунду, сделанных к вашей функции Lambda, а не только тогда, когда ваша функция Lambda начинает работать плохо. Самое важное, что нужно помнить, — это то, что количество запросов в секунду важнее общего количества.
  • Метрика, показывающая, сколько памяти потребляет ваша лямбда-функция. Вы можете отслеживать память, которую использует ваша функция Lambda, чтобы иметь представление об узких местах и ​​ресурсах, которые могут быть доступны.
  • Другой показатель, на который вам следует обратить внимание, — это время отклика. Самое главное, о чем следует помнить, — это то, что вы хотите понять, где находятся узкие места, чтобы как можно скорее их устранить.
  • Метрика показывает, как часто функция Lambda запрашивает ресурсы. Функция Lambda не будет постоянно запрашивать ресурсы, поэтому вам нужно отслеживать время, в течение которого функция Lambda не запрашивает ресурсы.

Начало работы с лямбда-функциями

Я рекомендую вам просмотреть краткое описание сервиса AWS Lambda, в котором объясняется, как создать и настроить функцию Lambda. Если вы не уверены, какие сервисы AWS использовать для функции Lambda, я рекомендую сначала создать список сервисов AWS, которые вы хотите использовать (

Функции AWS Lambda основаны на Node.js, поэтому важно создать среду для запуска приложения Node.js. Я рекомендую создать среду Node.js, работающую в Linux, и настроить ее для работы на виртуальных машинах AWS Linux. Это подходящая среда для настройки функции Lambda. Обратитесь к официальной документации Node.js или рассмотрите возможность использования службы шаблонов, например Jenkins.

Далее вам нужно создать функцию Lambda. API Lambda доступен в виде корзины S3, доступной через шлюз API. Доступ к корзине S3 прост. Создайте учетную запись в S3, и вы сможете получить доступ к шлюзу API как через браузер.

Вам нужно будет настроить среду для запуска функции Lambda. Вы можете настроить среду с помощью файлов Ansible или YAML. YAML стал моим любимым инструментом для настройки проектов AWS на основе Ansible. Файлы YAML используются для функций AWS Lambda, которые запускают YAML в регионе AWS, который вы не контролируете.

После настройки корзины S3 и среды вы готовы запустить функцию Lambda. Вам нужно будет перейти в созданную вами корзину S3 и запустить функцию Lambda.

Когда у вас запущена функция Lambda, у вас будет множество показателей для работы. Вы можете посмотреть среднее количество запросов в секунду, время ответа и количество соединений в секунду.

Некоторые функции Lambda выполняются асинхронно, то есть их можно запланировать с помощью шлюза API AWS. Другие функции Lambda можно запускать с помощью сервиса AWS Lambda с требованиями реального времени.

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

Лямбда-функции — одно из наиболее экономичных решений для использования сервисов Amazon, а также самое простое решение для запуска ваших приложений.

Статистика функции AWS Lambda

Чтобы максимально эффективно использовать функцию Lambda, вам необходимо собрать информацию о ее использовании. Если у вас есть отзывы или предложения о том, чем можно управлять, оставьте свои комментарии ниже.

Я просмотрел статистику Analytics.io для выборки из 95 232 функций Lambda, которые выполняются в облаке AWS Elastic Compute Cloud.

Вот некоторые из общих показателей, которые вам следует собирать:

  • Тайминг
  • Статус вызова
  • Степень успеха

В облаке AWS вы можете определить успешное состояние каждой функции Lambda, прочитав следующую информацию из консоли:

{ “LambdaFunctionId”: “ami-7f2f0b23e”, “FunctionID”: “f2414c5c-9405-4fb2-ba11-2ad399f65fc6”, “TimerCount”: (0), “Tasks”: (), “RunMetric”: (), ” Описание”: “Лучший результат (0)” }

В этом примере результатом является успех с коэффициентом неудач 0,27.

Создайте корзину Amazon S3 для вашего лямбда-кода

Чтобы создать корзину Amazon S3 для кода Lambda:

  • Войдите в консоль управления AWS, и вы сможете открыть консоль Amazon S3 по адресу https://console.aws.amazon.com/s3/.
  • Нажмите кнопку «Создать корзину».
  • Введите уникальное имя для своего сегмента и выберите соответствующий регион для своего сегмента.
  • Нажмите кнопку «Создать», чтобы создать корзину.
  • На странице «Установить разрешения» выберите «Все» в раскрывающемся списке «Получатель» и выберите «Список объектов» в раскрывающемся списке «Разрешения».
  • Нажмите кнопку «Сохранить», чтобы сохранить настройки разрешений.
  • Загрузите свой лямбда-код во вновь созданную корзину.

Загрузите код

Загрузить лямбда-код можно двумя способами:

  • Загрузите код непосредственно в консоль AWS Lambda: (интерфейс командной строки AWS или AWS SDK).
  • Загрузите код с помощью AWS CLI: (код функции обновления лямбды AWS — имя функции — zip-файл).

Процесс создания функции AWS Lambda

Следующие процессы являются основным процессом создания лямбда-функции AWS:

  • Войдите в Консоль управления AWS.
  • Нажмите кнопку «Создать функцию консоли AWS».
  • Введите имя и описание вашей функции Lambda.
  • Выберите среду выполнения.
  • Выберите роль или создайте новую, предоставляющую необходимые разрешения для вашей функции.
  • Загрузите код своей функции.
  • (Необязательно) Настройте дополнительные параметры, такие как память и время ожидания.
  • Нажмите Создать функцию, чтобы сохранить функцию и запустить ее.

Вызов лямбда-функции

Чтобы вызвать функцию Lambda, вы можете использовать консоль AWS Lambda, API AWS Lambda или пакеты AWS SDK.

  • Чтобы вызвать функцию с помощью консоли Lambda, вам просто нужно указать имя функции и любые входные параметры.
  • Если вы хотите вызвать функцию с помощью AWS Lambda API, вам необходимо будет предоставить Arn функции, а также любые входные параметры.
  • AWS ARN (имя ресурса Amazon) — это уникальный идентификатор, который используется для идентификации ресурсов AWS, таких как корзины Amazon S3, экземпляры Amazon EC2 и базы данных Amazon RDS. Arn содержит информацию о ресурсе, например его тип, имя или регион AWS, в котором он находится. Вы можете использовать ARN для ссылки на определенный ресурс или использовать его в политике, чтобы разрешить доступ к определенному ресурсу.
  • Наконец, если вы используете AWS SDK, вам необходимо будет указать Arn функции, регион, в котором она находится, и любые входные параметры.

Создание лямбда-функций с помощью Python

Python — отличный язык для создания лямбда-функций. При создании функций Lambda с помощью Python следует учитывать несколько вещей.

  • Во-первых, убедитесь, что вы включили все необходимые библиотеки в zip-файл вашей функции.
  • Во-вторых, время ожидания лямбда-функций составляет пять минут, поэтому убедитесь, что ваш код может работать в течение этого времени.
  • Наконец, не забудьте дать вашей функции имя и описание, чтобы вы могли легко найти ее позже.

Создание функций Lambda с помощью Python — отличный способ начать работу с бессерверными вычислениями. Немного попрактиковавшись, вы сможете создавать мощные функции, способные справиться с любой поставленной вами задачей.

Создание лямбда-функций с помощью Java

Лямбда-функции — отличный способ улучшить ваш Java-код. Они могут помочь вам написать более краткий и читаемый код, а также повысить производительность вашего кода.

Чтобы создать лямбда-функцию, вам сначала понадобится функциональный интерфейс. Если у вас есть функциональный интерфейс, вы можете создать лямбда-функцию, реализовав абстрактный метод.

Лямбда-функции можно использовать для замены анонимных внутренних классов. Их также можно использовать для создания более читабельного и лаконичного кода. При правильном использовании они также могут помочь улучшить производительность вашего кода.

Часто задаваемые вопросы

1. Как вы используете лямбду в PySpark?

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

Lambda особенно полезна для обработки данных в PySpark. Например, вы можете использовать лямбда-выражение для фильтрации данных, выполнения агрегирования и даже объединения данных из разных источников. Lambda также можно использовать для создания новых столбцов во фрейме данных. Вдобавок к этому, лямбда-функции PySpark просты в использовании и могут значительно повысить вашу производительность при обработке данных.

2. Работает ли PySpark на AWS?

Да, PySpark можно использовать в Amazon Web Services (AWS). AWS предоставляет управляемую платформу Spark под названием Amazon EMR для обработки рабочих нагрузок больших данных, в том числе с использованием PySpark.

3. Как использовать PySpark на AWS?

Чтобы использовать PySpark на AWS, сначала необходимо создать кластер Amazon EMR (Elastic MapReduce), а затем установить Spark в кластере. После этого вы можете подключиться к кластеру по ssh и получить доступ к оболочке PySpark из командной строки. Затем вы можете использовать PySpark для запуска ваших сценариев, анализа данных и выполнения других задач.

4. Какая IDE лучше всего подходит для PySpark?

Существует несколько различных интегрированных сред разработки (IDE), которые вы можете использовать для разработки PySpark. В общем, любая IDE, поддерживающая разработку на Python, сможет работать с PySpark.

Двумя наиболее популярными IDE для разработки PySpark являются Jupyter Notebook и Apache Zeppelin.

  • Jupyter Notebook — популярная интегрированная среда разработки с открытым исходным кодом, широко используемая для разработки на Python.
  • Apache Zeppelin — еще одна популярная среда разработки с открытым исходным кодом, которая имеет специальную поддержку разработки PySpark.
  • Если вы только начинаете разработку PySpark, то Jupyter Notebook — лучший выбор. Его немного проще настроить и использовать, чем Apache Zeppelin.
  • Однако, если вы уже знакомы с Apache Zeppelin, возможно, вы захотите использовать эту IDE для разработки PySpark.

Не позволяйте дождю на вашем параде! Начните свою карьеру в области облачных вычислений сегодня с нашей программой последипломного образования в области облачных вычислений!

Краткое содержание

Lambda действительно проста в настройке и может предоставлять сервисы AWS в режиме реального времени с минимальными усилиями. Мы только что рассмотрели основы настройки вашей первой функции Lambda. Вы можете использовать Lambda для множества других целей, включая обслуживание страницы на вашем веб-сайте и доставку электронной почты.

Сертификационные курсы Simplilearn для последипломной программы по облачным вычислениям охватывают Amazon AWS, Microsoft Azure и другие облачные платформы. Наши комплексные программы в сотрудничестве с Caltech CTME включают в себя виртуальные классы, практические лаборатории и проекты. Вы можете найти все наши курсы по облачным вычислениям на нашей странице «Облачные вычисления».

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *