Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Бессерверные приложения на JavaScript

Покупка
Новинка
Артикул: 882735.01.99
Доступ онлайн
849 ₽
В корзину
Преимущества облачных бессерверных веб-приложений бесспорны: меньшая сложность, быстрое продвижение на рынок и автоматическая масштабируемость выгодно отличают их от традиционных серверных проектов. Данная книга научит вас проектировать и создавать бессерверные веб-приложения на AWS с использованием JavaScript, Node и Claudia.js. Новичков издание знакомит не только с AWS Lambda, но и с целым рядом связанных служб, таких как DynamoDB, Cognito, API Gateway. Даже решив позднее взять на вооружение другие инструменты, вы сможете сохранить весь код и просто развернуть его немного иначе. Подробно описывается несколько вариантов практического использования бессерверных платформ, в том числе веб-API, чат-боты, обработка платежей и управление заказами. Издание предназначено веб-разработчикам, знакомым с JavaScript и Node.js.
23
157
233
Стоянович, С. Бессерверные приложения на JavaScript : практическое руководство / С. Стоянович, А. Симович ; пер. с англ. А. Н. Киселева. - Москва : ДМК Пресс, 2020. - 396 с. - ISBN 978-5-97060-782-4. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2260367 (дата обращения: 12.10.2026). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Слободан Стоянович
Александар Симович
Бессерверные 
приложения  
на JavaScript


M A N N I N G
SHELTER ISLAND
Serverless Applications
with Node.js
Slobodan Stojanović
Aleksandar Simović


Москва, 2020
Бессерверные
приложения  
на JavaScript
Слободан Стоянович
Александар Симович
Перевод с английского Киселева А. Н.


УДК   004.42
ББК   32.972
 С81
С81    Слободан Стоянович, Александар Симович
Бессерверные приложения на JavaScript / пер. с англ. А. Н. Киселева. – М.: 
ДМК Пресс, 2020. – 394 с.: ил.
            ISBN 978-5-97060-782-4
Преимущества облачных бессерверных веб-приложений бесспорны: 
меньшая сложность, быстрое продвижение на рынок и автоматическая 
масштабируемость выгодно отличают их от традиционных серверных 
проектов. Данная книга научит вас проектировать и создавать бессерверные веб-приложения на AWS с использованием JavaScript, Node и Claudia.js. 
Новичков издание знакомит не только с AWS Lambda, но и с целым рядом 
связанных служб, таких как DynamoDB, Cognito, API Gateway. Даже решив 
позднее взять на вооружение другие инструменты, вы сможете сохранить 
весь код и просто развернуть его немного иначе. Подробно описывается несколько вариантов практического использования бессерверных платформ, 
в том числе веб-API, чат-боты, обработка платежей и управление заказами.
Издание предназначено веб-разработчикам, знакомым с JavaScript и 
Node.js.
	
	 	
	
	
	
	
	
	
           УДК   004.42
	
	
	
	
	
	
	
	
           ББК   32.972
Original English language edition published by Manning Publications. Copyright © 2019 
by Manning Publications. Russian language edition copyright © 2019 by DMK Press. All 
rights reserved.
Все права защищены. Любая часть этой книги не может быть воспроизведена 
в какой бы то ни было форме и какими бы то ни было средствами без письменного 
разрешения владельцев авторских прав.
Материа,л, изложенный в данной книге, многократно проверен. Но, поскольку 
вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи 
с этим издательство не несет ответственности за возможные ошибки, связанные с 
использованием книги.
ISBN 978-1-61729-472-3 (англ.)                        Copyright © 2019 by Manning Publications Co.
ISBN 978-5-97060-782-4 (рус.)                          © Оформление, перевод на русский язык, 
	
                     издание, ДМК Пресс, 2020


Оглавление
Предисловие от издательства........................................................................12
Предисловие.....................................................................................................13
Вступление.........................................................................................................15
Благодарности..................................................................................................16
Об этой книге....................................................................................................17
Кому адресована книга...................................................................................17
Краткое содержание........................................................................................17
Об исходном коде............................................................................................19
Автор в сети.....................................................................................................20
Другие онлайн-ресурсы..................................................................................20
Об авторах.........................................................................................................21
Об иллюстрации на обложке..........................................................................22
ЧАСТЬ I. Бессерверная пиццерия................................................................23
Глава 1. Введение в бессерверные вычисления с Claudia........................24
1.1. Серверы и стиральные машины..............................................................25
1.2. Основные понятия....................................................................................26
1.3. Как работают бессерверные вычисления?..............................................28
1.4. Бессерверные вычисления на практике..................................................28
1.4.1. Бессерверная пиццерия тетушки Марии................................................... 29
1.4.2. Распространенный подход......................................................................... 29
1.4.3. Бессерверное решение................................................................................ 31
1.5. Бессерверная инфраструктура – AWS......................................................32
1.6. Что такое и для чего используется Claudia?............................................38
1.7. Когда и где использовать бессерверные вычисления.............................41
В заключение...................................................................................................42
Глава 2. Создание первого бессерверного API............................................43
2.1. Приготовление пиццы из ингредиентов: сборка API............................43
2.1.1. Какие пиццы можно заказать?................................................................... 46


6    Оглавление
2.1.2. Структурирование API................................................................................ 49
2.1.3. Отправка заказа.......................................................................................... 55
2.2. Как Claudia развертывает API..................................................................59
2.3. Управление трафиком: как работает API Gateway..................................61
2.4. Когда бессерверный API не является решением....................................62
2.5. Опробование!............................................................................................63
2.5.1. Упражнение................................................................................................. 63
2.5.2. Решение....................................................................................................... 64
В заключение...................................................................................................68
Глава 3. Простота асинхронных операций с Promise()..............................69
3.1. Хранение заказов......................................................................................69
3.2. Обещание доставить меньше чем за 30 минут!......................................75
3.3. Опробование API.......................................................................................79
3.4. Извлечение заказов из базы данных.......................................................83
3.5. Опробование!............................................................................................85
3.5.1. Упражнение................................................................................................. 86
3.5.2. Решение....................................................................................................... 87
В заключение...................................................................................................90
Глава 4. Доставка пиццы: подключение к внешней службе.....................91
4.1. Подключение к внешней службе.............................................................91
4.2. Подключение к API компании доставки.................................................93
4.2.1. API компании доставки Some Like It Hot................................................... 93
4.2.2. Создание первой заявки на доставку........................................................ 94
4.3. Типичные проблемы асинхронных взаимодействий.......................... 101
4.3.1. Забыли вернуть Promise........................................................................... 102
4.3.2. Отсутствие значения, возвращаемого из Promise.................................. 102
4.3.3. Вызов внешней службы не завернут в Promise....................................... 104
4.3.4. Превышение времени ожидания длительной асинхронной  
операцией................................................................................................... 105
4.4. Опробование!..........................................................................................107
4.4.1. Упражнение............................................................................................... 107
4.4.2. Решение..................................................................................................... 108
В заключение.................................................................................................110
Глава 5. Хьюстон, у нас проблема!...............................................................111
5.1. Отладка бессерверного приложения..................................................... 111
5.2. Отладка функции Lambda.......................................................................113
5.3. Рентген для приложения........................................................................116
5.4. Опробование!..........................................................................................120


Оглавление    7
5.4.1. Упражнение............................................................................................... 120
5.4.2. Решение..................................................................................................... 120
В заключение.................................................................................................121
Глава 6. Совершенствование API..................................................................122
6.1. Бессерверная аутентификация и авторизация..................................... 122
6.2. Создание пулов пользователей и идентификации.............................. 126
6.2.1. Управление доступом к API с помощью Cognito.................................... 130
6.3. Опробование!..........................................................................................134
6.3.1. Упражнение............................................................................................... 135
6.3.2. Решение..................................................................................................... 136
В заключение.................................................................................................137
Глава 7. Работа с файлами.............................................................................138
7.1. Хранение статических файлов в бессерверных приложениях............ 138
7.2. Создание миниатюр................................................................................143
7.2.1. Развертывание функции обработки файлов в S3.................................... 150
7.3. Опробование!..........................................................................................151
7.3.1. Упражнение................................................................................................ 152
7.3.2. Решение...................................................................................................... 152
7.4. Конец первой части: специальное упражнение................................... 155
7.4.1. Усложненное задание................................................................................ 155
В заключение.................................................................................................155
ЧАСТЬ II. Поболтаем.....................................................................................157
Глава 8. Заказ пиццы одним сообщением: чат-боты...............................158
8.1. Заказ пиццы без браузера......................................................................158
8.2. Привет из Facebook Messenger...............................................................160
8.3. Какие виды пиццы у нас имеются?....................................................... 162
8.4. Ускорение развертывания......................................................................164
8.5. Шаблоны для взаимодействий...............................................................167
8.6. Как работает Claudia Bot Builder?...........................................................170
8.7. Опробование!..........................................................................................172
8.7.1. Упражнение................................................................................................ 172
8.7.2. Решение...................................................................................................... 172
В заключение.................................................................................................173
Глава 9. Ввод... асинхронные и отложенные ответы................................174
9.1. Добавление интерактивности в чат-бот................................................ 174
9.1.1. Выбор заказа: получение ответа от пользователя.................................. 175


8    Оглавление
9.2. Улучшение масштабируемости чат-бота.............................................. 182
9.3. Подключение чат-бота к базе данных DynamoDB................................ 186
9.4. Получение адреса доставки  
заказа в чат-боте......................................................................................191
9.5. Планирование доставки.........................................................................194
9.6. Добавление простой обработки естественного языка......................... 200
9.7. Опробование!..........................................................................................202
9.7.1. Упражнение................................................................................................ 202
9.7.2. Решение...................................................................................................... 203
9.7.3. Усложненное задание................................................................................ 205
В заключение.................................................................................................205
Глава 10. Джарвис, то есть Алекса, закажи мне пиццу.............................206
10.1. Не могу сейчас говорить: отправка SMS с помощью службы  
Twilio.........................................................................................................207
10.1.1. Список пицц в SMS.................................................................................. 209
10.1.2. Оформление заказа................................................................................. 211
10.2. Эй, Алекса!.............................................................................................217
10.2.1. Подготовка сценария.............................................................................. 221
10.2.2. Оформление заказа с помощью Алексы................................................ 226
10.3. Опробование!........................................................................................230
10.3.1. Упражнение............................................................................................. 230
10.3.2. Решение................................................................................................... 231
10.4. Конец второй части: специальное упражнение................................. 232
В заключение.................................................................................................232
ЧАСТЬ III. Дальнейшие шаги.......................................................................233
Глава 11. Тестирование, тестирование и еще раз тестирование............234
11.1. Тестирование обычных и бессерверных приложений....................... 234
11.2. Подходы к тестированию бессерверных приложений....................... 236
11.3. Подготовка.............................................................................................238
11.4. Модульные тесты..................................................................................241
11.5. Использование имитаций для тестирования бессерверных  
функций....................................................................................................246
11.6. Интеграционные тесты........................................................................253
11.7. Другие типы автоматизированных тестов.......................................... 258
11.8. В дополнение к тестам: приемы разработки бессерверных  
функций для упрощения их тестирования............................................ 259
11.9. Опробование!........................................................................................264


Оглавление    9
11.9.1. Упражнение............................................................................................. 264
11.9.2. Решение................................................................................................... 265
В заключение.................................................................................................266
Глава 12. Получение платы за пиццу..........................................................268
12.1. Платежные транзакции........................................................................268
12.1.1. Реализация онлайн-платежей................................................................ 270
12.2. Реализация платежной службы............................................................274
12.3. Можно ли взломать нашу платежную службу?................................... 281
12.3.1. Стандарты................................................................................................ 281
12.3.2. Компетентность...................................................................................... 282
12.4. Опробование!........................................................................................283
12.4.1. Упражнение............................................................................................. 283
12.4.2. Решение................................................................................................... 283
В заключение.................................................................................................285
Глава 13. Миграция существующих приложений Express.js  
в окружение AWS Lambda.............................................................................286
13.1. Приложение для таксомоторной компании дядюшки Роберто........ 287
13.2. Запуск приложения Express.js в AWS Lambda...................................... 287
13.2.1. Интеграция с оберткой........................................................................... 291
13.2.2. Как работает serverless-express.............................................................. 291
13.3. Обслуживание статического контента................................................ 292
13.4. Подключение к MongoDB.....................................................................295
13.4.1. Использование управляемой базы данных MongoDB  
с бессерверным приложением Express.js................................................. 295
13.5. Ограничения бессерверных приложений Express.js........................... 300
13.6. Опробование!........................................................................................301
13.6.1 Exercise...................................................................................................... 301
13.6.2. Решение................................................................................................... 302
В заключение.................................................................................................303
Глава 14. Миграция в бессерверное окружение.......................................304
14.1. Анализ текущего бессерверного приложения.................................... 304
14.2. Миграция существующего приложения в бессерверное окружение.....305
14.3. Общий взгляд на платформу................................................................309
14.3.1. Обслуживание статических файлов....................................................... 310
14.3.2. Сохранение состояния............................................................................ 310
14.3.3. Журналы.................................................................................................. 311
14.3.4. Непрерывная интеграция....................................................................... 313
14.3.5. Управление окружениями: промышленное окружение  
и окружение для разработки..................................................................... 314


10    Оглавление
14.3.6. Совместное использование конфиденциальных данных.................... 315
14.3.7. Виртуальное частное облако................................................................... 318
14.4. Оптимизация приложения...................................................................318
14.4.1. Связанные и узкоспециализированные функции................................ 319
14.4.2. Выбор правильного объема памяти для функции Lambda.................. 319
14.5. Преодоление проблем..........................................................................320
14.5.1. Тайм-ауты................................................................................................ 320
14.5.2. Холодный запуск..................................................................................... 321
14.5.3. Атаки DDoS.............................................................................................. 323
14.5.4. Привязка к производителю.................................................................... 323
14.6. Опробование!........................................................................................325
В заключение.................................................................................................325
Глава 15. Примеры из практики...................................................................327
15.1. CodePen..................................................................................................328
15.1.1. До перехода на бессерверные вычисления........................................... 328
15.1.2. Миграция на бессерверные вычисления............................................... 329
15.1.3. Затраты на инфраструктуру................................................................... 332
15.1.4. Тестирование и проблемы...................................................................... 333
15.2. MindMup................................................................................................333
15.2.1. До перехода на бессерверные вычисления........................................... 334
15.2.2. Миграция на бессерверные вычисления............................................... 337
15.2.3. Затраты на инфраструктуру................................................................... 338
15.2.4. Тестирование, журналирование и проблемы........................................ 340
В заключение.................................................................................................341
Приложение A. Установка и настройка.......................................................343
A.1. Установка Claudia...................................................................................343
A.1.1. Настройка зависимостей Claudia............................................................ 344
A.1.2. Создание профиля AWS и получение ключей........................................ 345
A.1.3. Установка Claudia API Builder.................................................................. 348
A.1.4. Установка Claudia Bot Builder................................................................... 348
A.2. Установка AWS CLI..................................................................................348
Приложение B. Настройка Facebook Messenger, Twilio и Alexa..............350
B.1. Настройка Facebook Messenger..............................................................350
B.1.1. Создание страницы Facebook................................................................... 350
B.1.2. Создание приложения Facebook.............................................................. 352
B.1.3. Создание чат-бота Facebook Messenger с использованием  
Claudia Bot Builder...................................................................................... 354
B.1.4. Подключение встроенного механизма NLP............................................ 361
B.2. Настройка Twilio.....................................................................................361
B.2.1. Создание учетной записи Twilio.............................................................. 362


Доступ онлайн
849 ₽
В корзину