使用 S3 的代码部署总是在 5 分钟后失败

Codedeploy with S3 always fails after 5 minutes

我花了大半天时间尝试设置 CodeDeploy、CodePipeline、S3 和 EC2。

Codepipeline 将成功:

还有

  1. EC2 具有对 S3
  2. 的列表和读取权限
  3. S3 允许来自 EC2
  4. 的所有操作

我主要遵循这个过时的指南:https://cloudacademy.com/blog/how-to-deploy-application-code-from-s3-using-aws-codedeploy/

appspec.yml

version: 0.0
os: linux
files:
  - source: /
    destination: /var/www

hooks:
  AfterInstall:
    - location: hooks/after-install.sh
      runas: root

我是 AWS 的新手,一辈子 都找不到日志告诉我发生了什么的位置,也没有收到任何指向我的错误消息任何地方,所以我一整天都在盲目地仔细检查所有内容,然后再试一次,这现在正在嘲笑我:

任何帮助,即使它指向我实际可以找到错误消息的地方,我们也将不胜感激,感谢您的宝贵时间

这通常是由于以下 3 个原因之一:

  • CodeDeploy 代理需要在目标实例上 installed 和 运行。
  • 无法访问 CodeDeploy 和 S3 服务。要么确保你是:
    • 运行 public 子网中具有互联网网关的实例
    • 运行 具有 NAT 的私有子网中的实例 gateway/NAT 实例
  • 实例的 IAM 角色的 IAM 权限不足,要获得足够的权限,请附加 AWSCodeDeployRole 策略。

正如您所说,您的 IAM 角色权限没有问题,您只剩下其他 2 种情况之一。

一旦这些工作正常,您通常可以在 /var/log/aws/codedeploy-agent 位置看到日志。