在AWS堆栈上运行更多具有不同参数的node.js应用程序
我有一个node.js应用程序,我想在每天的计划时间用不同的参数运行多次 条件:使用AWS堆栈 示例:每天晚上7点运行。使用不同参数对同一应用程序运行10次 目前,我正在使用一个EC2 pm2的基本设置,使用不同的参数运行node.js应用程序 我想要实现的是使用更多的无服务器基础设施,具有独立的计算能力。我在我的应用程序中使用Puppeter,所以有时在一台机器上共享10个进程是个问题在AWS堆栈上运行更多具有不同参数的node.js应用程序,node.js,amazon-web-services,puppeteer,serverless,Node.js,Amazon Web Services,Puppeteer,Serverless,我有一个node.js应用程序,我想在每天的计划时间用不同的参数运行多次 条件:使用AWS堆栈 示例:每天晚上7点运行。使用不同参数对同一应用程序运行10次 目前,我正在使用一个EC2 pm2的基本设置,使用不同的参数运行node.js应用程序 我想要实现的是使用更多的无服务器基础设施,具有独立的计算能力。我在我的应用程序中使用Puppeter,所以有时在一台机器上共享10个进程是个问题 我正在寻找什么AWS服务最适合我使用(Elastic Beanstalk、ECS、AWS Lambda)的建
我正在寻找什么AWS服务最适合我使用(Elastic Beanstalk、ECS、AWS Lambda)的建议。如果您想使用ec2实例执行此任务,可以使用cron
sudo apt install cron
您可以在其中安排任务。欲了解更多信息,请访问
但若你们们说你们们希望少使用服务器,那个么你们们可以使用lambdas和cloudwatch,它们会在你们们设置之后触发事件。欲了解更多信息,请访问
Lambda也很便宜。如果您的应用程序在特定时间后退出,那么无服务器将在这种情况下正常工作 我建议两种选择
- AWS lambda
CMD
的方式设计Dockerfile,就可以将一个参数传递给nodejs进程
FROM node:alpine
RUN apk add --no-cache curl
WORKDIR /app
RUN curl -o app.js https://gist.githubusercontent.com/Adiii717/94543c1f87e6db86b55ba3a5a58a2bbc/raw/da0695811b50d70be4c36951e5baa40a051a2dcf/app.js
RUN echo $'#!/bin/sh \n\
node app.js \"${@}\" ' >> /bin/entrypoint.sh
RUN chmod +x /bin/entrypoint.sh
entrypoint ["entrypoint.sh"]
因此,要基于参数使用此DockFile运行N服务
docker run -it --rm abc app1
docker run -it --rm abc app2
docker run -it --rm abc app3
.
.
.
在任务定义中,您只需通过
"command": ["app1"]
"command": ["app2"]
示例:每天晚上7点运行。使用
每个人都有不同的论点
定义云监视规则以根据时间触发所需的fargate任务
我想在没有进程运行时节省时间
您将只在进程/任务运行时付款。我使用您提到的第一个选项(ec2 ubuntu机器+cron作业)。我之所以想转向Lambda,是因为我想在没有进程运行的情况下节省时间。感谢您的建议,AWS Fargate看起来像是我的解决方案!这对我帮助很大!另一个看起来适合我的原因是,我的进程持续时间超过15分钟……是的,它适合这样的工作。还有一个问题,如果进程使用redis怎么办。我可以在单独的容器中运行redis并让其他进程使用它吗?如何操作?是的,您可以运行Redis容器,并使用服务发现与Redis连接