我们开发了一个NodeJS应用程序,并希望在Amazon中启动它们。我们把“竹子”整合到我们的其他亚特兰群岛的应用程序中。竹将构建文件从亚马逊传输到S3桶。问题是:如何将应用程序从S3移动并启动到EC2实例?
您可以在附件和构建目录中找到我的appspec.yml,这些文件如下:
-客户端\\文件(如index.html等)
-服务器/ server.js和socketio.js之类的文件
- appspec.yml
- readme
有什么主意吗?我希望它包含了你需要的所有重要信息。
谢谢:D
附件
version: 1.0
os: linux
files:
- source: /
destination: /
发布于 2015-08-26 00:25:19
更新
我刚刚意识到,您的appspec.yml似乎缺少部署Node.js应用程序的关键部分(以及大多数其他部分),即hooks部分。如AWS CodeDeploy应用程序规范文件所述,AppSpec文件用于将每个部署管理为一系列部署生命周期事件。
例如,请参见所提供的AppSpec文件示例 (纯粹是为了说明,您需要定制一个适合您的应用程序的):
os: linux
files:
- source: Config/config.txt
destination: webapps/Config
- source: source
destination: /webapps/myApp
hooks:
BeforeInstall:
- location: Scripts/UnzipResourceBundle.sh
- location: Scripts/UnzipDataBundle.sh
AfterInstall:
- location: Scripts/RunResourceTests.sh
timeout: 180
ApplicationStart:
- location: Scripts/RunFunctionalTests.sh
timeout: 3600
ValidateService:
- location: Scripts/MonitorService.sh
timeout: 3600
runas: codedeployuser如果没有这样的ApplicationStart命令,AWS CodeDeploy就没有任何使用应用程序的说明(请记住,CodeDeploy与技术无关,因此需要告知如何启动应用服务器)。
初始答案
什么是AWS CodeDeploy?中部署的概述说明了典型AWS CodeDeploy部署的流程

关于你的问题的关键方面是第四步:
也就是说,一旦启动了AWS CodeDeploy部署,一切都应该自动工作--因此,某些配置似乎不太正确,最常见的问题是部署组实际上还没有包含任何正在运行的实例。您是否验证过可以通过AWS管理控制台从EC2部署到您的CodeDeploy实例?
发布于 2015-08-31 20:35:57
如果登录到AWS CodeDeploy控制台的部署列表,您会看到什么?
https://console.aws.amazon.com/codedeploy/home?region=us-east-1#/deployments
(相应地改变该区域)
此外,代码将在/opt/codedeploy-agent/deployment-root/<agent-id?>/<deployment-id>/deployment-archive中下载。
和/opt/codedeploy-agent/deployment-root/<agent-id?>/<deployment-id>/logs/scripts.logs中的日志
确保代理具有从S3桶下载版本的连接性和权限。这意味着在实例中具有internet连接和/或使用代理(设置http_proxy以便code_deploy使用它),并在实例中设置具有读取S3桶的权限的S3配置文件。
检查代码部署代理的日志,看看它是否成功连接:/var/log/aws/codedeploy-agent/codedeploy-agent.log
发布于 2015-12-17 19:14:07
您需要在代码部署中创建一个部署,然后使用代码depoy中的下拉箭头和S3桶URL部署一个新的修订版。然而,它需要是zip/tar.gz/tar
https://stackoverflow.com/questions/32209167
复制相似问题