Развертывание углового приложения на AWS Elastic beanstalk - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь развернуть очень простое угловое приложение для эластичного бобового стебля. Проект создан с использованием углового кли. Я не вносил никаких изменений в файлы в этом проекте.

Вот шаги, которые я предпринял для развертывания приложения

  1. Выполнено 'ng build' в корневой папке моего проекта
  2. Переместил зависимость @ angular / cli из devDependencies в зависимости в package.json
  3. Заархивировал содержимое папки dist вместе с package.json
  4. Развернутая zip-папка в AWS EB, настроенная на платформе node.js, версия узла 8.11.3, такая же, как в моей локальной среде.

Я всегда получаю сообщение об ошибке «Ошибка установки npm» при проверке eb-activity.log.

Я что-то упустил здесь? Буду очень признателен за любую помощь в развертывании угловых приложений для EB.

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Хотя это не дает конкретного ответа на ваш вопрос, я не думаю, что Elastic Beanstalk - это правильный инструмент для работы. Я настоятельно рекомендую хостинг на статическом веб-сайте на S3, и если вам нужны https и пользовательское доменное имя, поставьте перед ним дистрибутив CloudFront.

  1. Создание корзины S3, например www.mydomainname.com

  2. Включить статический хостинг веб-сайтов

  3. Установить политику Bucket для общедоступного чтения

    {
        "Version": "2008-10-17",
        "Statement": [
            {
                "Sid": "PublicReadForGetBucketObjects",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::www.mydomainname.com/*"
            }
        ]
    }
    
  4. Создайте угловое приложение локально, в папке dist.

  5. Нажмите файлы на веб-сайте, используя aws-cli

    aws s3 sync dist s3://www.mydomainname.com/

Это решение будет стоить копейки, намного дешевле, чем решение Elastic Beanstalk (EC2, EBS, ELB). Elastic Beanstalk отлично подходит для монолитных приложений, но их существование сочтено, и неправильная парадигма, когда вы говорите SPA, IMO.

Я знаю, что теперь мне повезло, но я также настоятельно рекомендую использовать Serverless Framework для создания и развертывания конечных точек API NodeJS для взаимодействия вашего Angular App.

0 голосов
/ 28 июня 2018

Получена проблема с развертыванием! Я использовал экспресс, чтобы создать сервер и обслуживать мое угловое приложение. Мне нужно было добавить server.js в мою папку dist /. Мой файл server.js выглядел так

const express = require('express');
const http = require('http');

const app = express();

const port = process.env.PORT || 3001;

app.use(express.static(__dirname));

const server = http.createServer(app);

server.listen(port, ()=> console.log("Running..."));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...