【问题标题】:How do I set up a CI/CD pipeline using AWS CodePipeline for a Flask application deployed using Zappa?如何使用 AWS CodePipeline 为使用 Zappa 部署的 Flask 应用程序设置 CI/CD 管道?
【发布时间】:2020-05-29 18:19:51
【问题描述】:
我需要有关使用 AWS CodePipeline 为使用 Zappa 部署的 Flask 应用程序设置 CI/CD 管道的分步指南。
Zappa 是一个开源框架,可帮助构建和部署无服务器、事件驱动的 Python 应用程序,尤其是 WSGI Web 应用程序,例如 AWS Lambda 和 API Gateway 上的 Django 和 Flask 应用程序。 Zappa 的 GitHub 存储库位于 https://github.com/Miserlou/Zappa。
【问题讨论】:
标签:
continuous-integration
continuous-deployment
aws-codepipeline
continuous-delivery
zappa
【解决方案1】:
以下是一些可以帮助您完成任务的一般准则。
-
为您的项目使用Pipenv 并通过pipenv install 命令安装所有包
-
在您的 pipenv 环境中安装 Zappa。使用pipenv install zappa
-
运行 zappa Init 以创建 zappa_settings.json 文件
-
根据您的项目要求编辑和配置您的 zappa_settings.json。
-
重要 - 您必须直接向管道指定 AWS 密钥和秘密。
为此,请确保您删除 profile_name 键
从 zappa_settings.json 并通过管道密钥库设置提供它们。
-
运行第一个zappa deploy 并确认一切运行顺利。
-
配置管道以自动从您的存储库中检索更改并部署它official python docker image
-
将以下行添加到您的 buildspec.yml 文件中:
commands:
- pip install pipenv
- pipenv install
- pipenv run zappa update
祝你好运!
【解决方案2】:
先决条件:
本地机器执行 zappa init 将创建 zappa_settings.json 文件。您可以根据您的要求修改 zappa_settings.json。
在根目录中包含 zappa_settings.json 和 requirements.txt
- 将 docker 镜像用于 python 示例“frolvlad/alpine-python3”
- apk 添加构建库
- apk 添加 python3-dev
- pip install pipenv
- pipenv run pip install -r requirements.txt(你可以指定要安装的包及其版本)
- pipenv 运行 zappa deploy --all(或您在 zappa_settings.json 文件中指定的任何环境)|| pipenv 运行 zappa update --all