Рубрики
Без рубрики

Создайте и разверните приложение Node.js без сервера Cosmic JS

В этом уроке я собираюсь показать вам, как начать работу с Cosmic JS Serverless Starter Barter в считанные минуты. И как бонус, я покажу вам шаги для преобразования любого приложения Node.js в бесконечно масштабируемое приложение Node.js без сервезна.

Автор оригинала: Tony Spiro.

Разработка приложений без сервеса нерешится популярностью в немалой части немалой части из-за привлекательного предложения «Создание приложений, а не инфраструктуры». Этот способ строительных приложений предоставляет множество преимуществ, в том числе не имеющих необходимости управления серверной инфраструктурой, бесконечной масштабируемостью и не иметь необходимости платить за время простоя сервера, оплата только при использовании вашего обслуживания.

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

В этом руководстве я собираюсь показать вам, как начать работу с 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

Эти команды делают следующее:

  1. Установите Cosmic Cli.
  2. Войдите в свою учетную запись Cosmic JS (Возможно, вам понадобится создать новое ведро, если это так, он пройдет вас через это 😀)
  3. Скачать . Смертный стартер И импортируйте демонстрационный контент на выбранный вами ковшом.

Как только это загружено, вам будет предложено запустить приложение со следующими командами:

cd serverless-starter
cosmic develop
Your application should now be running at http://localhost:3000
Serverless Node.js приложение

Будьте готовы к отключению

Теперь, когда у нас есть наше приложение, работающее на местном уровне, давайте будем готовы запустить его до облака 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 Отказ