Развертывание Ember.js приложение к AWS Elastic Beanstalk

#amazon-web-services #ember.js #amazon-elastic-beanstalk

#amazon-веб-сервисы #ember.js #amazon-elastic-beanstalk

Вопрос:

Я пытался и искал, как я и развернуть приложение emberjs на AWS Elastic Beanstalk, но я не могу найти способ. Я использую EB CLI для развертывания и настройки.

Если у кого-нибудь есть опыт развертывания приложения ember в Elastic Beanstalk, пожалуйста, поделитесь.

Комментарии:

1. Не могли бы вы немного пояснить, почему вы хотите использовать Elastic Beanstalk? Используете ли вы Ember Fastboot ? В противном случае развертывание Ember — это просто набор статических файлов, размещенных где-то. Обычное развертывание в AWS для этого сценария использует S3 и CloudFront. Ember-cli-deploy описывает это в своей документации .

2. Привет, @jelhan, ты прав. Я новичок в ember и AWS, поэтому не знаю рабочей среды. Нет, я не использую Ember Fastboot.

3. В этом случае я бы рекомендовал вместо этого использовать S3 и CloudFront. Это сэкономит вам сложность и деньги. 😉

Ответ №1:

Как упоминал @jelhan в разделе комментариев к теме, вам не нужен ElasticBeanstalk для размещения статических файлов. Если вы не используете ember-fastboot, просто используйте S3 и CloudFront.

Вы также можете использовать AWS amplify https://aws.amazon.com/amplify/console /

Помимо этого, чтобы загрузить приложение на Elastic Beanstalk, выполните следующие действия:

  1. Обновить / добавить путь dist к "dist/www" внутреннему .ember-cli.js файлу:
       "outputPath": "dist/www"
  
  1. Добавьте package.json
    {
      "name": "ember_frontend_server",
      "version": "1.0.0",
      "description": "We are using node server to serve static files",
      "main": "server.js",
      "scripts": {
        "start": "node server.js"
      },
      "author": "",
      "license": "MIT",
      "dependencies": {
        "express": "^4.17.1",
        "path": "^0.12.7"
      }
    }
  
  1. Добавьте server.js файл для размещения статических файлов
 var express = require('express');
var path = require('path')

var app = express();

var port = process.env.PORT || process.argv[2] || 8081;

app.use(express.static(path.normalize(__dirname   '/www')))

app.use('*', (req, res) =>
{
  res.sendFile(__dirname  '/www/index.html');
});

app.listen(port);
  
  1. Инициализируйте настройку elastic beanstalk с помощью eb init
  2. разверните приложение в elastic beanstalk, выполнив команду eb deploy