Begin уже предоставляет вам самый продвинутый набор бессерверных инструментов и примитивов приложений в своем классе:
- Статические ресурсы для публикации любого веб-ресурса или страницы.
- HTTP-функции (
@http
), обеспечивающие полный рендеринг на стороне сервера - Begin Data - сверхбыстрый и простой способ сохранить данные приложения и получить к ним доступ.
Сегодня мы представляем совершенно новый примитив для Begin apps: функции событий (@events
)!
Попробуйте функции "Начать события" прямо сейчас
Нажмите эту кнопку, чтобы развернуть пример приложения функций событий для запуска через 30 секунд:
Функции событий: что это такое и как они работают?
Асинхронные задачи - очень распространенное требование в большинстве современных приложений. Например: скажем, кто-то подписался на вашу рассылку новостей.
Вы же не хотите, чтобы ваш пользователь ждал ответа от вашего приложения, пока оно выполняет вызовы API к вашей службе списка рассылки.
Вместо этого вы, вероятно, захотите опубликовать полезную нагрузку JSON в выделенном асинхронном приемнике событий подписки - это обычно известно как pub / sub (или публикация / подписка). модель.
И теперь вы можете мгновенно создавать эти новые события приложения с Begin!
Поместите на это событие
Добавление всей шины сообщений pub / sub в ваше приложение может показаться сложным, но в Begin это очень просто:
1. Добавьте событие в свой .arc
файл
Добавьте следующие (примерные) строки в файл .arc
в корне вашего проекта:
@events newsletter-add
2. Создайте обработчик событий, чтобы подписаться на newsletter-add
Чтобы привести в порядок полезную нагрузку входящего события, мы предлагаем запускать ваши функции событий с помощью нашего помощника во время выполнения Функции архитектора: cd src/events/newsletter-add && echo {} > package.json && npm i @architect/functions
Затем создайте свой обработчик событий:
// src/events/newsletter-add/index.js let arc = require('@architect/functions') async function newsletterAdd (event) { // Do some asynchronous stuff with your event payload here // ... such as calling to a newsletter API return } exports.handler = arc.events.subscribe(newsletterAdd)
3. Опубликуйте новое мероприятие в newsletter-add
:
// src/http/post-newsletter/index.js let arc = require('@architect/functions') exports.handler = async function handler (req) { let { email } = req.body // Quickly fire off an event to be completed asynchronously await arc.events.publish({ name: 'newsletter-add', payload: { email } }) // Then respond to your user immediately return { statusCode: 200 } }
Готово! Теперь в вашем распоряжении бесконечно масштабируемая шина сообщений pub / sub, что означает, что ваше приложение может быстро реагировать на запросы пользователей и асинхронно обрабатывать сложные фоновые задачи.
Наша цель в Begin - раскрыть всю мощь современных архитектур приложений с минимальными усилиями и сложностью. Благодаря функциям событий Begin потенциальные возможности ваших приложений просто невероятно выросли - нам не терпится увидеть, что вы создадите!
Следующие шаги
- Разверните пример приложения с событиями Begin за 15 секунд (кредитная карта не требуется):