我花了大半天时间尝试设置 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 还很陌生,一生都找不到日志告诉我发生了什么,也没有收到任何指向我的错误消息,所以我'我真的一整天都在盲目地重复检查所有内容并再次尝试,这现在正在 mock 我:
任何帮助,即使它指出我实际上可以在哪里找到错误消息,我都会非常感激,感谢您的时间
最佳答案
出现这种情况通常是由于以下 3 个原因之一:
- CodeDeploy 代理需要是 installed并在目标实例上运行。
- 无法访问 CodeDeploy 和 S3 服务。要么确保您:
- 在具有互联网网关的公有子网中运行实例
- 使用 NAT 网关/NAT 实例在私有(private)子网中运行实例
- 实例的 IAM 角色的 IAM 权限不足,要获得足够的权限,请附加
AWSCodeDeployRole
策略。
正如您所说,您的 IAM 角色权限没有问题,您只能选择其他两种方案之一。
一旦这些工作正常,您通常可以在 /var/log/aws/codedeploy-agent
位置看到日志。
关于amazon-web-services - 使用 S3 进行代码部署总是在 5 分钟后失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62485150/