Articles of elastic beanstalk

在Elastic Beanstalk上运行时如何获取服务器URL?

我使用restify来创build部署到Elastic Beanstalk的节点API。 var server = restify.createServer({ name: 'My API' }); server.listen(process.env.PORT || 1704, function() { console.log('%s listening at %s', server.name, server.url); }); 在本地运行时,我看到: 我的API在http://0.0.0.0:1704上监听 但是,在Elastic Beanstalk上运行时,日志显示: 我的API在http://0.0.0.0:8081上监听 这是为什么? 为什么server.url不是http://my-api.elasticbeanstalk.com ? 我怎么能得到真正的url(像http://my-api.elasticbeanstalk.com )?

Node.js使用Docker通过Elastic Beanstalk进行部署

我正在尝试使用链接到Elastic Beanstalk的Dockerfile来部署基于node.js的基于同构的应用程序。 当我在本地运行我的Docker构build时,我能够成功完成此任务。 但是我注意到npm install命令需要花费相当长的时间才能完成。 当试图使用eb deploy命令部署应用程序时,它几乎崩溃了Amazon服务,或者我得到如下错误: 错误:等待命令完成时超时 我的猜测是,这是我的node_modules文件夹是300MB大。 我也尝试在config.yml文件中添加工件声明并部署,但得到相同的错误。 是否有将节点应用程序部署到AWS Beanstalk的最佳实践方法,或者是手动设置EC2实例并依赖Code Commit git挂钩的最佳方法? 我的Dockerfile如下: FROM node:argon ADD package.json /tmp/package.json RUN npm config set registry https://registry.npmjs.org/ RUN npm set progress=false RUN cd /tmp && npm install –silent RUN mkdir -p /usr/src/app && cp -a /tmp/node_modules /usr/src/app WORKDIR /usr/src/app ADD . /usr/src/app EXPOSE 8000 CMD npm […]

在aws elastic-beanstalk上configurationhttps进行快速configuration

我有一个在AWS EB上运行的Express应用程序,我想用SSL来保护它。 根据我的理解,我可以使用https模块在应用程序级别进行设置,也可以在EB环境级别将证书应用于负载平衡器。 我已经完成了这两个选项中的第二个,并使其工作,但我不确定最佳实践。 我应该在快速应用程序级别还是通过EB负载均衡器来做,还是应该同时做这两件事?

Amazon SQS不向我的工作者实例提供完整的消息

我试图排队和SQS处理请求。 我已经在弹性beanstalk上使用Node.JS worker设置了它,当从另一个框中添加消息时,它自动从SQS获取httppost。 问题是,我无法从http post中获取所有必要的数据,从队列中删除消息。 我看到的唯一数据是我自己在正文中input的消息数据,但没有MessageId或ReceiptHandle。 当我手动调用SQS.receiveMessage(queuerurl,callback)时,我能够获得这些属性,但前提是我没有设置自动http发布。 当我将SQS发布给我的工作人员时,消息立即进入队列,然后进入一个不可见的“正在运行”状态,从而防止使用SQS.receiveMessage(queuerurl,callback)传递任何消息。 任何人都可以解释我在这里失踪? 我是否误解SQS提供的“自动发送消息”? 谢谢您的帮助

如何运行sequelize db:使用env vars在Elastic Beanstalk EB上迁移? 如何在容器命令中访问.env vars?

如何运行sequelize db:使用env vars在ElasticBean上迁移? 运行sequelize迁移失败,因为它无法find.env文件。 { Error: ENOENT: no such file or directory, open '.env' 我的master.config如下所示: container_commands: 00_node_binary: command: "ln -sf `ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin/node /bin/node" 00_npm_binary: command: "ln -sf `ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin/npm /bin/npm" 01_migrations: command: npm run migrate leader_only: true 和我的package.json包含 "migrate": "node_modules/sequelize-cli/bin/sequelize db:migrate"

将ElastiCache连接到弹性Beanstalk实例

我一直在阅读关于在我的EB实例和我的Redis端点之间创build连接的Elastic Beanstalk和ElastiCache文档。 我已经将我的端点添加到了我的Node.js应用程序的会话configuration中,但是它并没有连接到我的Redis实例,如访问使用该会话的任何页面时所引发的错误所指示的那样。 我知道Elastic Beanstalk和ElastiCache之间的安全组需要保持一致,但是是否需要对环境进行调整才能连接两者? 这是我的Node.js应用程序中的Redis连接: //Session Cookie app.use(cookieParser()); app.use(session({ store: new RedisStore({ host: 'redis-production.dfdfa.0001.use1.cache.amazonaws.com', port: 6379 }), secret: process.env.SECRET, resave: true, saveUninitialized: true, cookie: { httpOnly: true, secure: false //turn to true on production once https is in place } }));

由于目录权限,Node.js部署在Amazon Elastic Beanstalk上失败

我尝试使用命令行工具在Elastic Beanstalk上安装一个简单的Node.js应用程序。 在我的git仓库上运行命令 $ eb deploy 部署我的git仓库的内容。 它部署很好,但是应用程序的健康状态是红色的。 如果我查看Elastic Beanstalk网站上的日志,它会指向我在日志中的以下错误: > fsevents@1.0.8 install /tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents > node-pre-gyp install –fallback-to-build gyp ERR! configure error gyp ERR! stack Error: EACCES: permission denied, mkdir '/tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents/build' gyp ERR! stack at Error (native) gyp ERR! System Linux 4.1.17-22.30.amzn1.x86_64 gyp ERR! command "/opt/elasticbeanstalk/node-install/node-v4.3.0-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v4.3.0-linux-x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "–fallback-to-build" "–module=/tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents/lib/binding/Release/node-v46-linux-x64/fse.node" "–module_name=fse" "–module_path=/tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents/lib/binding/Release/node-v46-linux-x64" gyp ERR! cwd […]

向Elastic Beanstalk(EC2)服务器发送超过一定大小的文件时出现的问题

我正在使用Node / Express作为我的服务器,并试图将客户端(移动应用程序)中的照片保存到服务器,并使用AWS elastic beanstalk进行部署。 如果我使用小文件(几kb),它工作正常,如果我使用大型文件(几MB),如果我在我的机器上本地运行服务器工作正常。 不过,我似乎无法将大文件正确保存到已部署的AWS服务器。 Elastic Beanstalk设置默认有大小限制吗? 我在我的服务器代码中有以下行,这似乎与本地运行服务器正常工作。 app.use(express.limit('15mb')); 提前感谢任何帮助!

无法在Elastic Beanstalk上部署KeystoneJS

我想要在T2.micro实例上的Elastic Beanstalk上部署一个KeystoneJS应用程序。 在部署过程中,部署与eb-activity.log中的以下输出错误: > kerberos@0.0.11 install /tmp/deployment/application/node_modules/keystone/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos > (node-gyp rebuild 2> builderror.log) || (exit 0) Running npm install: /opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/npm Setting npm config jobs to 1 npm config jobs set to 1 Running npm with –production flag Failed to run npm install. Snapshot logs for more details. Traceback (most recent call last): File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 681, […]

在亚马逊aws弹性beanstalk(或本地?)上安装parsing仪表板

我一直在遵循本指南在Amazon AWS上使用Elastic Beanstalk安装Parse Server,并且设置工作正常,但是特定指南只解决了Parse Server的安装问题,而不是parsing仪表板,我也想设置它向上。 作为Parse是一个Node.js应用程序,我希望能通过命令行脱离“npm install -g parse-dashboard”,但是看到实例上的更改可能被负载平衡器覆盖,我不是确定这是正确的道路。 我知道亚马逊有一个可用于安装应用程序的EB CLI,但是我不确定这是否是最好/最简单的方法呢? 我想要的是安装Parse Dashboard并将其与我的AWS EB设置连接起来的最简单的方法,我还希望在通过Github提供更改时可以轻松更新Parse Dashboard。 所以我的问题可以归结为两种select,正如我所见; 1)我应该在AWS上安装Parse Dashboard吗?如果是的话 – 这样做的最好方法是什么? 2)我是否可以设置Parse Dashboard的本地安装,并将其连接到AWS EB上托pipe的Parse Server? 如果是这样,那么推荐的方法是什么?