使用 S3 的代码部署总是在 5 分钟后失败
Codedeploy with S3 always fails after 5 minutes
我花了大半天时间尝试设置 CodeDeploy、CodePipeline、S3 和 EC2。
Codepipeline 将成功:
- 获取 GitHub
中检测到的更改
- 将 ZIP 文件推送到 S3
- 触发 CodeDeploy 开始部署
还有
- EC2 具有对 S3
的列表和读取权限
- S3 允许来自 EC2
的所有操作
我主要遵循这个过时的指南: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
位置看到日志。
我花了大半天时间尝试设置 CodeDeploy、CodePipeline、S3 和 EC2。
Codepipeline 将成功:
- 获取 GitHub 中检测到的更改
- 将 ZIP 文件推送到 S3
- 触发 CodeDeploy 开始部署
还有
- EC2 具有对 S3 的列表和读取权限
- S3 允许来自 EC2 的所有操作
我主要遵循这个过时的指南: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
位置看到日志。