作为通过CodeDeploy部署的一部分,我正在执行示例powershell脚本。以下是appsec.yml的内容
version: 0.0
os: windows
files:
- source: \
destination: C:\Users\Administrator\testapp
hooks:
ApplicationStop:
- location: C:\Users\Administrator\testapp\stop.ps1
timeout: 300
BeforeInstall:
- location: C:\Users\Administrator\testapp\copy.ps1
timeout: 300
ApplicationStart:
- location: C:\Users\Administrator\testapp\start.ps1
timeout: 300
ValidateService:
- location: C:\Users\Administrator\testapp\validate.ps1
timeout: 300但是,当我使用代码部署开始部署时,会出现以下错误:
Error code
ScriptMissing
Script name
C:\Users\Administrator\testapp\copy.ps1
Message
Script does not exist at specified location: C:/ProgramData/Amazon/CodeDeploy/85c23e0a-90f5-474e-9675-df3301a3b8f9/d-CODHEXCG5/deployment-archive/C:/Users/Administrator/testapp/copy.ps1当我检查位置C:/ProgramData/Amazon/CodeDeploy/85c23e0a-90f5-474e-9675-df3301a3b8f9/d-CODHEXCG5/deployment-archive,时,我看到工件是从S3桶中下载的。
工件目录结构:
+ deployment-archive
+ scripts
- copy.ps1
- stop.ps1
- start.ps1
- validate.ps1
- appsec.yml我认为文件没有从Deployment复制到appsec文件中提到的目的地。但是为什么它没有被复制,无法理解。请指点
发布于 2020-08-03 01:43:58
您的files部分是完全正确的(请参阅AppSpec‘文件’部分),问题在于hooks部分中的脚本。
在这份正式文档AppSpec‘钩子’部分中,它说:
您在“钩子”部分中指定的脚本位置相对于应用程序修订包的根。
因此,您需要将绝对路径更改为相对路径,例如:
hooks:
ApplicationStop:
- location: scripts\stop.ps1
timeout: 300您的错误日志还告诉您相同的问题:
脚本不存在于指定位置: C:/ProgramData/Amazon/CodeDeploy/85c23e0a-90f5-474e-9675-df3301a3b8f9/d-CODHEXCG5/deployment-archive/C:/Users/Administrator/testapp/copy.ps1
https://stackoverflow.com/questions/63221342
复制相似问题