由于 ScriptTimedOut,AWS CodeDeploy 在 AfterInstall 中失败

时间:2021-04-19 07:23:40

标签: python amazon-web-services aws-code-deploy

我已将 AWS 连接到 github

appspec.yml

version: 0.0
os: linux
files:
  - source: /
    destination: /home/mybot
hooks:
  AfterInstall:
    - location: RunMyBot.sh
      timeout: 300
      runas: root

RunMyBot.sh

#!bin/bash

cd /home/mybot/
yum install -y python3-pip python3 python3-setuptools
sudo python3 -m pip install --user --upgrade pip
pip3 install -r requirements.txt
python botMain.py

错误:

enter image description here

我想运行我的主文件 - botMain.py,但它没有运行。

我尝试从脚本中删除安装行,因为它说它们已经安装,但我仍然超时并且我的 botMain.py 没有运行。

1 个答案:

答案 0 :(得分:0)

可能应该是python3,而不是python。但无论如何,您的部署会挂起,因为如果 botMain.py 是服务器,它只会启动而不会完成。因此,CD 超时等待 botMain.py 完成其从未发生的执行。

要正确运行您的 botMain.py,您应该将它运行为守护进程服务。为此,您可以在 linux 上为 systemd 创建自定义单元文件。其中一个例子是 here