2

几个月前我已经运行过这个程序,所以我知道它可以工作,但是我创建了一个新的 EC2 实例来部署我的代码并陷入了第一个障碍。

我的部署详细信息运行如下:

  • 应用程序停止 - 成功
  • 下载捆绑包 - 成功
  • 安装前 - 失败

在查看失败的事件后,我得到:

CodeDeploy 代理未在版本相对路径“appspec.yml”的解压缩版本目录中找到 AppSpec 文件。修订版被解压到目录“C:\ProgramData/Amazon/CodeDeploy/57f7ec1b-0452-444e-840c-4deb4566e82d/d-WH9HTZAW0/deployment-archive”,AppSpec 文件是预期的,但在路径“C:\ ProgramData/Amazon/CodeDeploy/57f7ec1b-0452-444e-840c-4deb4566e82d/d-WH9HTZAW0/deployment-archive/appspec.yml”。有关更多信息,请参阅 AWS CodeDeploy Appspec 文档,网址为http://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file.html

问题是,如果我跳到我的 EC2 并复制并粘贴完整路径,果然我看到了 YML 文件,以及我的 S3 存储桶中 ZIP 文件中的文件,因此它们已成功发送到 EC2并解压缩。

所以我确定这不是权限问题,连接已经很清楚了,S3 Bucket、CodeDeploy 和我的 EC2 都很开心。

我在 StackOverflow 上阅读了有关将 AppSpec.yml 文件更改为“appspec.yml”、“AppSpec.yaml”、“appspec.yaml”的各种帖子,但仍然没有任何效果。

有什么明显的尝试吗?

4

2 回答 2

2

好的,经过几天来回,解决方案非常烦人(也很尴尬)......

在我的 EC2 实例上,未勾选“文件名扩展名”,所以我的 AppSpec.yml 实际上是 AppSpec.yml.txt

如果其他人有类似的问题,请先检查!!

于 2020-03-14T19:00:59.873 回答
0

你是如何压缩文件的。很多时候,用户最终会“双压缩”。要检查您是否解压缩 .zip 文件,它会为您提供文件还是文件夹?

当我们在 Windows 上压缩文件夹时,它基本上会在 zip 文件夹内创建一个文件夹,因此 CodeDeploy 代理无法读取它。因此,要压缩工件,请选择所有文件,然后右键单击以将其压缩到同一位置。这样可以避免在 zip 中创建新文件夹。

于 2020-03-12T03:53:59.107 回答