首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带竹的AWS CodeDeploy

带竹的AWS CodeDeploy
EN

Stack Overflow用户
提问于 2015-08-25 16:22:38
回答 3查看 1K关注 0票数 1

我们开发了一个NodeJS应用程序,并希望在Amazon中启动它们。我们把“竹子”整合到我们的其他亚特兰群岛的应用程序中。竹将构建文件从亚马逊传输到S3桶。问题是:如何将应用程序从S3移动并启动到EC2实例?

您可以在附件和构建目录中找到我的appspec.yml,这些文件如下:

-客户端\\文件(如index.html等)

-服务器/ server.js和socketio.js之类的文件

- appspec.yml

- readme

有什么主意吗?我希望它包含了你需要的所有重要信息。

谢谢:D

附件

代码语言:javascript
复制
version: 1.0
os: linux
files:
  - source: /
    destination: /

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-26 00:25:19

更新

我刚刚意识到,您的appspec.yml似乎缺少部署Node.js应用程序的关键部分(以及大多数其他部分),即hooks部分。如AWS CodeDeploy应用程序规范文件所述,AppSpec文件用于将每个部署管理为一系列部署生命周期事件。

  • 在部署步骤中,AWS代理将在CodeDeploy文件的钩子部分中查找当前事件的名称。..。如果事件在钩子部分中找到,AWS CodeDeploy代理将检索要为当前步骤执行的脚本列表。..。

例如,请参见所提供的AppSpec文件示例 (纯粹是为了说明,您需要定制一个适合您的应用程序的):

代码语言:javascript
复制
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部署的流程

关于你的问题的关键方面是第四步:

  1. 最后,每个参与实例CodeDeploy 上的AWS S3代理从指定的S3桶或GitHub存储库中提取修订版,并开始按照提供的AppSpec文件中的说明将内容部署到该实例。重点雷

也就是说,一旦启动了AWS CodeDeploy部署,一切都应该自动工作--因此,某些配置似乎不太正确,最常见的问题是部署组实际上还没有包含任何正在运行的实例。您是否验证过可以通过AWS管理控制台从EC2部署到您的CodeDeploy实例?

票数 0
EN

Stack Overflow用户

发布于 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

票数 0
EN

Stack Overflow用户

发布于 2015-12-17 19:14:07

您需要在代码部署中创建一个部署,然后使用代码depoy中的下拉箭头和S3桶URL部署一个新的修订版。然而,它需要是zip/tar.gz/tar

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32209167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档