找不到 AWS CodeDeploy 命令

AWS CodeDeploy Command Not Found

尝试部署 Node.js 应用程序时,我在 post_install.sh AfterInstall 脚本中遇到错误 npm: command not found。最奇怪的是在我的 BeforeInstall 脚本中 运行 npm install -g pm2 它工作得很好,没有任何错误。

两者都是 运行 作为 ubuntu 用户。为什么此命令在一个 CodeDeploy 脚本中有效而在另一个脚本中失败?

看来我可以通过将以下内容添加到我的脚本文件来解决这个问题。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

希望这对某人有所帮助。

我在 ubuntu 服务器中 ubuntu 用户的 ubuntu 挂钩期间尝试在我的 shell 脚本中调用 aws cli 时遇到了同样的问题。

这是我手动执行脚本时发生的事情sh ecr-login.sh

# Works
$(aws ecr get-login --no-include-email --region sa-east-1)

# Works
$(/home/ubuntu/.local/bin/aws ecr get-login --no-include-email --region sa-east-1)

CodeDeploy 执行时:

# Not Work
$(aws ecr get-login --no-include-email --region sa-east-1)

# Works
$(/home/ubuntu/.local/bin/aws ecr get-login --no-include-email --region sa-east-1)