将 Powershell 脚本直接包含到appspec.yml
文件中是否可以接受?
version: 0.0
os: windows
files:
- source: ./MyWebsiteFiles
destination: /MyWebsite
hooks:
AfterInstall:
- location: /Scripts/MyScript.ps1
timeout: 300
我正在运行一个ps1
通过 EC2 实例上的 Powershell 控制台立即执行的文件,但我的部署在执行 Powershell 脚本时卡住或失败。
appspec.yml
根据我在 CodeDeploy 文档中看到的内容,似乎没有可以包含在文件中的可接受文件类型的列表。
谢谢你的帮助。
是的!
虽然我无法找到可接受的脚本类型的明确列表,但答案似乎是
Yes
- Powershell脚本是可以接受的,如果包含在文件.ps1
中就会执行。appspec.yml
在我按照@kafka 故障排除页面上的建议添加代码之前,我的 Powershell 脚本无法始终如一地工作,因此我的脚本现在包含以下内容:
我仍然不确定我的脚本是否仅与 64 位版本的 Powershell 兼容或如何找到它,但它适用于此修改。
我希望这对某人有所帮助。
更新:关于文件位置的说明
我想强调一个我在运行
.ps1
脚本时遇到的问题。根据我的经验,ps1
脚本必须放在部署包的根目录(与 appspec.yml 文件相同的文件夹位置),否则,您的脚本可能无法执行,并且部署将在 CodeDeploy 中显示为“成功”。更多信息在这里。是的,它可以,但除非您设置变量,否则在脚本运行期间遇到的错误不会停止您的部署。
有关详细信息,请参阅此链接:
https://aws.amazon.com/premiumsupport/knowledge-center/powershell-cmdlet-errors-codedeploy/