我正在使用zappa部署在AWS上。我想在AWS上实施CI / CD。 因此,我创建了一个管道,并成功完成了AWS COMMIT和AWS BUILD。
我无法使用AWS CODE DEPLOY进行部署。
Buildspec.yaml看起来像这样:
version: 0.2
phases:
install:
commands:
- echo Setting up virtualenv
- python -m venv venv
- source venv/bin/activate
- echo Installing requirements from file
- pip install -r requirements.txt
build:
commands:
- echo Build started on `date`
- echo Building and running tests
- python tests.py
- flask db upgrade
post_build:
commands:
- echo Build completed on `date`
- echo Starting deployment
- zappa update dev
- echo Deployment completed
我应该如何在AWS上执行zappa部署或zappa更新?
我不确定如何添加创建 appspec.yaml 文件。
请帮助!卡住了!
答案 0 :(得分:0)
这是我使用的buildspec.yml
文件。您可以根据需要进行调整(例如,包括数据库升级命令)。
version: 0.2
phases:
install:
commands:
- mkdir /tmp/src/
- mv $CODEBUILD_SRC_DIR/* /tmp/src/
- cd /tmp/src/
- python3 -m venv docker_env && source docker_env/bin/activate && pip install --upgrade pip==9.0.3 && pip install -r requirements.txt && zappa update production && deactivate && rm -rf docker_env
post_build:
commands:
- cd $CODEBUILD_SRC_DIR
- rm -rf /tmp/src/
- echo Build completed on `date`
请注意,这是在CodeBuild中使用Docker映像danielwhatmuff/zappa:python3.6
。我使用此图像,因为它基于AWS Lambda,并已针对Zappa进行了调整。
答案 1 :(得分:-1)
Zappa更新到代码部署: 您的Buildspec.yaml看起来还不错,但是有一点需要考虑。
无论成功/失败,Postbuild将始终运行。可以从失败的构建中获取调试信息。
要么检查生成日志失败的原因,要么将您的yml修改为如下所示(警告:这只是草稿更改,请在系统中使用之前进行测试):
version: 0.2
phases:
install:
commands:
- yum -y groupinstall development
- yum -y install zlib-devel
- yum -y install openssl-devel
- wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
- tar xJf Python-3.6.0.tar.xz
- cd Python-3.6.0
- ./configure
- make
- make install
- ln -s /usr/local/bin/python3.6 /usr/bin/python3
- curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
- python3 get-pip.py
- pip3 install virtualenv
- virtualenv -p /usr/bin/python3 venv
- source venv/bin/activate
- pip3 install -r requirements.txt
build:
commands:
- echo Build started on `date`
- echo Building and running tests
- python3 tests.py
- flask db upgrade
post_build:
commands:
- if [ $CODEBUILD_BUILD_SUCCEEDING = 1 ]; then echo Build completed on `date`; echo Starting deployment; zappa update dev; else echo Build failed ignoring deployment; fi
- echo Deployment completed
希望它能回答。
Zappa更新到AWS
以下是在AWS上进行Zappa更新的步骤
<name provided for environment in step3>
现在,您的应用程序将部署到AWS。每当您需要更新通话
Zappa更新<name provided for environment in step3>