Разработка приложений без сервеса нерешится популярностью в немалой части немалой части из-за привлекательного предложения «Создание приложений, а не инфраструктуры». Этот способ строительных приложений предоставляет множество преимуществ, в том числе не имеющих необходимости управления серверной инфраструктурой, бесконечной масштабируемостью и не иметь необходимости платить за время простоя сервера, оплата только при использовании вашего обслуживания.
Неверная платформа Дальнейшие абстрагированные приложения для сервисных приложений в восхитительный опыт разработчика, которые помогут вам получить приложение для включения в функцию облака вверх и быстро работает.
В этом руководстве я собираюсь показать вам, как начать работу с Cosmic JS Serverless Starter App в считанные минуты. И как бонус, я покажу вам шаги для преобразования любого приложения Node.js в бесконечно масштабируемое приложение Node.js без сервезна. Давайте начнем.
TL; доктор
Проверьте Cosmic JS Serverless Starter на GitHub
Установите Cosmic JS Serverless Starter
Чтобы установить Cosmic JS Serverless Starter, запустите следующие команды:
npm i -g cosmic-cli cosmic login cosmic init serverless-starter
Эти команды делают следующее:
- Установите Cosmic Cli.
- Войдите в свою учетную запись Cosmic JS (Возможно, вам понадобится создать новое ведро, если это так, он пройдет вас через это 😀)
- Скачать . Смертный стартер И импортируйте демонстрационный контент на выбранный вами ковшом.
Как только это загружено, вам будет предложено запустить приложение со следующими командами:
cd serverless-starter cosmic develop Your application should now be running at http://localhost:3000
Будьте готовы к отключению
Теперь, когда у нас есть наше приложение, работающее на местном уровне, давайте будем готовы запустить его до облака AWS. Сначала нам нужно будет подключить наши полномочия AWS. Чтобы найти их на вашей учетной записи AWS, Serverless отлично прогуляется на их веб-сайте.
После того, как вы получили клавиши AWS, запустите следующие команды:
export AWS_ACCESS_KEY_ID=your-aws-key-id export AWS_SECRET_ACCESS_KEY=your-aws-secret-key
И теперь мы все настроем, чтобы запустить наш неверный стартер для AWS. Запустите следующую команду, чтобы войти в сервис без сервеса и развернуть наше приложение:
npm i -g serverless serverless login COSMIC_BUCKET=your-bucket-slug serverless deploy
Команда развертывания сервера Serverless делает все тяжелые для нас. Он выполняет немного магии за кулисами с нашей учетной записью AWS, то после нашего приложения доступен, он предоставит конечные точки находить развернутое приложение. Добавление переменной среды Cosmic_Bucket, соединяет наше развернутое приложение к нашему ковшему Cosmic JS через Cosmic JS API. Это позволяет нам управлять контентом для нашего недавно развернутого приложения без сервеса с помощью приборной панели Cosmic JS Admin. С выхода выше, вы можете увидеть наши доступные конечные точки, где сейчас развернут нашему серверу сервера.
Сделайте любой Node.js приложение без серверу
Таким образом, мы запустили несколько команд и выдвинули COSMIC JS Serverless Starter Barter на AWS … Cool. Но давайте немного глубже и посмотрим на то, как мы преобразовали приложение Node Starter и как мы можем конвертировать большинство приложений Node.js в приложение без сердца.
Редактировать Serverless.yml.yml.
Чтобы преобразовать стартер узла в приложение без сервера, мы должны были создать файл Serverless.yml и установить конфигурацию для обработки динамических маршрутов. Это достигается в области «Функция> Приложение»> «События», чтобы указать динамические HTTP-события. Похоже, это выглядит:
# serverless.yml service: cosmic-serverless provider: name: aws runtime: nodejs6.10 stage: dev region: us-east-1 environment: COSMIC_BUCKET: ${env:COSMIC_BUCKET} COSMIC_READ_KEY: ${env:COSMIC_READ_KEY} functions: app: handler: app.handler events: - http: ANY / - http: 'ANY {proxy+}' plugins: - serverless-offline
Редактировать App.js.
Далее нам нужно было редактировать точку записи для приложения, файл App.js, чтобы экспортировать функцию основного обработчика. Мы также включали Модуль узла Serverless-HTTP обернуть наше приложение Express для использования без промедления. Вот файл App.js преобразован в серверу:
// app.js const serverless = require('serverless-http') const express = require('express') const app = express() const PORT = process.env.PORT || 3000 const Cosmic = require('cosmicjs') const api = Cosmic() const COSMIC_BUCKET = process.env.COSMIC_BUCKET || 'node-starter' const COSMIC_READ_KEY = process.env.COSMIC_READ_KEY || '' let stage_path = 'dev/' if (process.env.STAGE === 'local') stage_path = '' const bucket = api.bucket({ slug: COSMIC_BUCKET, read_key: COSMIC_READ_KEY }) app.set('view engine', 'ejs') app.get('/:slug?', (req, res) => { let slug = req.params.slug const year = (new Date().getFullYear()) if (!slug) slug = 'home' bucket.getObject({ slug }).then(data => { const page = data.object res.render('pages/default', { page, year, stage_path }) }).catch(err => { const page = { title: 'Page not found' } res.render('pages/404', { page, year, stage_path }) }) }) module.exports.handler = serverless(app);
В заключении
С несколькими редакциями вы можете быстро преобразовать приложение Node.js в приложение без сервера. Безверонная платформа тезирует сложность конфигурации учетной записи AWS, чтобы дать вам восхитительный опыт развития. Добавьте космический контент с питанием от JS, и у вас есть бесконечно масштабируемое приложение без сервеса с контентом, управляемым через Cosmic JS API. Нет серверов для управления, нет CMS для обслуживания. Строительные приложения, а не инфраструктура – это будущее!
Если у вас есть какие-либо комментарии или вопросы о создании серверу серверов с космическими JS, Обратитесь к нам в Twitter и Присоединяйтесь к разговору с Cosmic JS Community On Slack Отказ