Может ли человек использовать AWS Lambda на своем персональном ноутбуке и манипулировать общедоступным набором данных AWS, чтобы получить практический опыт? Любой хороший учебник о том, как?

73
8

спросил(а) 2020-03-03T15:57:55+03:00 1 год, 8 месяцев назад
1
Лучший ответ
73

Нет ничего сложного (и я никогда не говорю это легко, но это очень верно)

Используйте Serverless Framework. Ссылка на учебник после моего бессвязного :)

Вы можете установить локальную DynamodB и лямбда-среду выполнения (и даже больше) и работать так же, как в AWS. Это на самом деле мой предпочтительный способ сделать dev, прежде чем я начну развертывать код.

Вам понадобится учетная запись aws (я думаю, никогда не пробовал без нее), чтобы установить aws cli и CLI Serverless Framework. Но на самом деле это чертовски просто настроить.

Не только это, но вы как бы «вынуждены» использовать лучшие практики, а Serverless Framework абстрагирует все (что вы должны знать!), Но это также может замедлить разработку, если вы начинаете работать. Как автоматическое CloudFormation, IAM, API-шлюз бла-бла. Вы все еще должны знать, что делают эти вещи, но безсерверность просто облегчает и делает это с самого начала.

Начните здесь. Serverless Framework - Создание приложений на основе AWS Lambda, Google CloudFunctions, функций Azure, AWS Flourish и других

Пройдите этот урок, прежде чем работать с локальным разработчиком. Развертывание REST API с использованием Serverless, Express и Node.js

Затем используйте плагины, которые предоставляет Serverless (проверьте их GitHub или больше их сообщений в блоге) для полной локальной разработки.

Следуйте за этим очень внимательно. Ты поблагодаришь меня за тебя.

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

Ура!

ответил(а) 2020-03-03T15:57:55+03:00 1 год, 8 месяцев назад
73

Вы можете разрабатывать функции Lambda и тестировать их локально на своем ноутбуке:

Локально тестируйте свои серверные приложения, используя SAM Local (Public Beta)

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

Я получил доступ к общедоступным наборам данных на S3 с ноутбука Jupyter, работающего на моем ноутбуке (Pandas read_csv может иметь собственный доступ к S3), но у меня дома 1 Гбит / с полосы пропускания.

ответил(а) 2020-03-03T15:57:55+03:00 1 год, 8 месяцев назад
43

AWS Lambda - это механизм для выполнения функций без сервера. Это требует среды AWS, это не похоже на проект, который вы можете запустить локально. Например, вы можете создать его на своем ноутбуке - если вы пишете на C #, вы можете установить AWS Toolkit для Visual Studio, и это фактически позволит вам создавать и развертывать свою функцию прямо из проекта Visual Studio. Однако вам все еще нужны учетная запись AWS и консоль, и вам необходимо настроить ее с соответствующими разрешениями для доступа к вашему набору данных. Затем вы развертываете свою функцию и тестируете ее. Я полагаю, что вы также можете проверить его локально (используя инструмент SAM Local, например awslabs / aws-sam-local).

Со страницы продукта Lambda можно ознакомиться с учебными пособиями и примерами кода: AWS Lambda - Безсерверные вычисления - Amazon Web Services

ответил(а) 2020-03-03T15:57:55+03:00 1 год, 8 месяцев назад
43

Я согласен с другими ответами, что стоимость обучения при использовании AWS Lambda обычно не является проблемой, поскольку порог бесплатного использования высок (миллионы казней за пару долларов). Посмотреть AWS Lambda - Цены

Однако для расширенных сценариев использования ближе всего к запуску Lambda «локально» можно использовать док-контейнер из LambCI (lambci / docker-lambda), который был клонирован из среды выполнения AWS Lambda автором. Это удобно, когда необходимость скомпилированного кода не является кросс-платформенной перед развертыванием в Lambda (например, библиотеки криптографии python). Контейнер содержит те же зависимости пакета, что и реальная среда, и поставляется в различных вариантах для Python, NodeJs, Go, Java и т. Д.

Существует также довольно новый сервис под названием AWS Greengrass (AWS Greengrass - Amazon Web Services), который запускает локальные лямбда-функции на устройстве для обеспечения граничных вычислений на устройствах IoT, но он не поддерживает все среды выполнения, а ваша функция по-прежнему создается в облако, а затем синхронизируются через сервисы IoT AWS на вашем устройстве.

ответил(а) 2020-03-03T15:57:55+03:00 1 год, 8 месяцев назад
43

Примерно 25% государственных расходов на облака тратятся впустую или не оптимизируются, что составляет около 5 млрд. Долларов в 2016 году. К 2020 году они могут вырасти до большого числа, если их оставить без присмотра.

Amazon Web Services (AWS) предлагает следующие способы контроля затрат:

1) Правильный размер ваших услуг для удовлетворения потребностей в емкости при минимальных затратах

2) Экономьте деньги при бронировании

3) Используйте спотовый рынок

4) Мониторинг и отслеживание использования сервиса

5) Используйте Cost Explorer для оптимизации экономии.

Расходы AWS можно оптимизировать, остановив неиспользуемые экземпляры и ресурсы EC2. Планировщик CloudRobo AWS может оптимизировать затраты путем остановки и запуска экземпляров EC2 на основе расписаний.

ответил(а) 2020-03-03T15:57:55+03:00 1 год, 8 месяцев назад
42

Короткий ответ - нет, но, как отмечали другие, AWS очень дешев, и вы многому научитесь, просто создав приветственный сервис Lambda. Вот пара других мыслей.

Выберите известный язык (Node, Java, Python, C3 или Go) и изучите его. Это можно сделать на вашем ноутбуке и минимизировать расходы AWS. Вы не хотите платить за обучение языку в AWS. Снова начните с небольших объектов S3 на этапе разработки, чтобы минимизировать затраты и время тестирования в течение цикла итерации. Вот хороший учебник: Учебник. Использование AWS Lambda с Amazon S3

Удачи

ответил(а) 2020-03-03T15:57:55+03:00 1 год, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема