#javascript #node.js #amazon-web-services #devops #amazon-elastic-beanstalk
#javascript #node.js #amazon-веб-сервисы #devops #amazon-elastic-beanstalk
Вопрос:
У меня есть приложение Amazon Elastic Beanstalk, в котором в данный момент запущено мое NODE.JS приложение.
Я создал несколько очередей с помощью kue.js и Cron с расписанием узлов.
Поскольку у меня есть много команд для запуска очередей и cron, я считаю невозможным поместить это в мое текущее приложение nodejs.
Я готов открыть новое приложение, единственная проблема в том, что я могу запустить только одну команду.
Я действительно не хочу открывать отдельный ec2 (не подключенный к моей службе Elastic Beanstalk) для запуска всего этого.
Что я могу сделать, чтобы это исправить?
Большое вам спасибо!
Комментарии:
1. Мне кое-что непонятно, что вы подразумеваете под желанием открыть новое приложение? можете ли вы описать, когда вам нужно запускать эти команды, это только один раз при развертывании службы? как вы выполняете эти команды?
2. Под приложением я подразумеваю новый beanstalkd node.js приложение, и да, это один раз, когда я развертываю службу, но они должны поддерживаться чем-то вроде pm2 на случай, если они сломаются.
3. это очереди с kue. js и Cron с node-schedule — это просто скрипты javascript, которые вы запускаете с помощью node или pm2?
4. точно, это javascript в цикле, точно такой же, как express.
Ответ №1:
Поскольку вы хотите использовать EB (Elastic Beanstalk), вы могли бы написать файл docker для приложения, и EB уже обнаружит это и спросит вас, основан ли это проект на docker, и он позаботится обо всем остальном, вам просто нужно написать все сценарии, которые вам нужно запустить перед вашей командой точки входа CMD npm start
, как показано ниже
Dockerfile
FROM node:10.13-alpine
# Sets the working directory,and creates the directory as well.
WORKDIR /app
# Install dependencies.
ADD package.json .
RUN npm install
# Copy your source code.
COPY . /app
#Run all your scripts here or simply put them to a scripts.js and run it
RUN node scripts.js
# start app
CMD ["npm", "start"]
Комментарии:
1. Но что произойдет, когда одно из моих приложений nodejs выйдет из строя?
2. разве pm2 не должен отвечать за обработку этого?