CodeDeploy 代理在解压缩的修订目录中找不到 AppSpec 文件,该目录位于修订相对路径"appspec.yml"



基于以下错误消息,codedeploy将我的存档文件夹复制到某个临时位置。我可以在部署归档文件夹之后找到我的archive.zip文件夹。

CodeDeploy代理在已解压缩的修订目录中的修订相对路径"AppSpec.yml"中未找到AppSpec文件。该修订已解压缩到目录"/opt/codedeploym-agent/deploym-root/59a04892-4afd-4e82-9335-52e8b6047d4b/d-WZDFGDBHU/deploym-archive",并且AppSpec文件是预期的,但在路径"/opt/codedeploy-agent/deploym-root/59a04892-4afd-4e82-9335-52e8b6047d4b/d-WZDFGDBHU/deploym-archive/AppSpec.yml"中找不到。有关AWS网站上的更多信息,请参阅AWS codedeploy AppSpec文档

但它在部署归档文件夹之后立即显示为appspec.yml。但它找到了部署归档/归档/appspec.yml

appspec.yml和我的战争文件都压缩在S3 中

如何解决这个问题?

我也遇到了这种情况,因为我发现CodeDeploy正在用"/opt/CodeDeploy-agent/deployment root/#######yourNumberWillBeDifferent#####"处的日志/deploymy信息填充磁盘空间。我已经删除了这个位置的所有目录,在下一次部署时,我遇到了这个问题。我发现,如果你把最新的目录放在这个位置,那么你就不会得到错误。我最终做的是每小时运行一次脚本,删除这个位置上除最新目录外的所有目录。

您可能删除了文件夹"d-WZDFGDBHU"。CodeDeploy查看了它在实例上进行的最后一次部署的日志/信息,并使用了其中的一些信息,但找不到。这就是它提到的原因-

"修订版已解包到目录"/opt/codedeploy-agent/deploym-root/59a04892-4afd-4e82-9335-52e8b6047d4b/d-WZDFGDBHU/deploym-archive",并且AppSpec文件是预期的,但在路径"/opt/codedeploy-agent/deploym-doot/59a04892-4afd-4e82-9 335-52e 8b6047 d4b/d-WZDFGDBHU/deploym/AppSpec.yml"中找不到"d-WZDFGDBHU是在您刚刚尝试的部署之前执行的最后一次部署的部署ID。

我不知道为什么CodeDeploy需要引用上一次部署,但它确实引用了!!

请注意,这种情况只发生在就地部署上,而不是蓝绿色。

我还发现了这个-

CodeDeploy保留了一些最后的部署,允许您回滚到以前的版本。默认情况下,它保留最后5个,但这可以使用codedeploy代理配置进行配置:https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-agent-configuration.html

控制它的设置是:max_revisions:

发现问题。我没有选择appec.yml、myapp文件并压缩它们,而是为它们创建了文件夹,然后创建了zip文件。我应该只通过选择文件来创建zip文件,而不为它们创建文件夹。在这个问题上浪费了很多时间:(

我在copydeploy下也遇到了这个问题,它使代码管道部署不断失败。CodeDeploy代理在已解压缩的修订目录中的修订相对路径"AppSpec.yml"处未找到AppSpec文件。

我采取的步骤:1) 从AWS测试模板复制appspec.yml,并使用它修改为新的appspec.html

2) 记住在文件夹中压缩文件(而不是用文件创建文件夹并压缩它)

当CodeDeploy脚本出现问题时,您可能会看到此错误。因此,请检查CodeDeploy日志中的部署服务器中的错误。

如果其Linux服务器:

/opt/codedeploy-agent/deployment-root/CodeDeploy<DEPLOYMENT-GROUP-ID><DEPLOYMENT-ID>/logs/script.log

如果其windows服务器:

C:tempCodeDeployb394d44e-ca20-4956-a3ba-d90b99afa87fd-1K1K9PR1Dlogsscripts.log

有时会遇到位于不同部署文件中的文件例如,codedeploy在服务器中的文件夹d-ERABTKHGF中创建并保存了部署,但正在查找文件夹d-G9EZDPEGF

CodeDeploy代理在解压缩的修订相对路径上的修订目录";appspec.yml";。这个修订已解压缩到目录"opt/codeployment agent/deployment root/556474d41-fa14-41e0-9018-1bef9db19995/d-G9EZDPEGF/部署档案";,应为AppSpec文件,但在路径中找不到"opt/codeploy-agent/deploym-root/556474d41-fa14-41e0-9018-1bef9db19995/d-G9EZDPEGF/deploym-archive/appspec.yml";。有关更多信息,请参阅AWS CodeDeploy应用规范文档在http://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file.html.

如果您导航到服务器

total 0
drwxr-xr-x 2 root root 6 Jan 18 10:57 d-ERABTKHGF
[root@ip-173-31-56-188 d-ERABTKHGF]# pwd
/opt/codedeploy-agent/deployment-root/56474d41-fa14-41e0-9018-1bef9db19995/d-ERABTKHGF

解决方案:导航到/opt/codedeploy-agent/并删除该文件夹中的所有文件夹和文件。

CodeDeploy代理在未打包的修订目录中的修订相对路径"处未找到AppSpec文件;appspec.yml";。该修订被解压缩到目录"/opt/codeployment agent/deployment root/59a04892-4afd-4e82-9335-52e8b6047d4b/d-WZDFGDBHU/部署档案";,并且AppSpec文件是预期的,但在路径"处没有找到/opt/codeploy-agent/deploym-root/59a04892-4afd-4e82-9335-52e8b6047d4b/d-WZDFGDBHU/deploym-archive/appspec.yml";。有关更多信息,请参阅AWS网站上的AWS CodeDeploy应用规范文档

我在删除错误消息所指的deployment-root目录内的目录后遇到此问题。

我查看了deployment-root内部的目录,发现了一个名为deployment-instructions的目录。在这个目录中,我发现了两个文件<<fingerprint>>_last_successful_install<<fingerprint>>_most_recent_install

我将这两个文件重命名为<<fingerprint>>_last_successful_install.old<<fingerprint>>_most_recent_install.old

完成此操作后,我重新运行了部署,它再次生成了文件,但这次使用的是新的部署版本,而不是旧的部署版本(在您的情况下为d-WZDFGDBHU)。

有两件事导致这个问题

  1. 如果您在asg或ec2上部署了脚本,然后为钩子添加了额外的脚本
    为此,您需要在添加其他脚本之前重新启动asg或ec2。

  2. 如果对不同的部署再次使用相同的管道名称
    为此,您需要在运行部署之前删除s3中的输入工件,因为即使您删除了管道,aws也不会删除工件。

相关内容

最新更新