Zappa 更新在 CircleCI 中失败

Zappa Update failing in CircleCI

我正在尝试使用 Zappa 和 circleci 将我的 Python 项目部署到 AWS Lambda。

它的抛出错误Error: Zappa requires an active virtual environment!

#!/bin/bash -eo pipefail
zappa update dev
(PyYAML 3.13 (/usr/local/lib/python3.6/site-packages), Requirement.parse('PyYAML>=4.1'), {'cfn-flip'})
Calling update for stage dev..
Error: Zappa requires an active virtual environment!
Learn more about virtual environments here: http://docs.python-guide.org/en/latest/dev/virtualenvs/
Exited with code 1

我正在使用以下命令安装 venv。

pip install virtualenv
virtualenv venv
source venv/bin/activate

有什么我想念的吗? 谁能帮帮我。

这是一个简短的工作示例,它使用 python3 虚拟环境,而不是 virtualenv 包。 为了让它工作,你需要在 CircleCI web UI.

中将 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 设置为环境变量
version: 2
jobs:
  build:
    docker:
      - image: circleci/python:3.6.1

    working_directory: ~/app

    steps:
      - checkout

      - run:
          name: install dependencies
          command: |
            python3 -m venv ~/venv
            . ~/venv/bin/activate
            pip install -r requirements.txt

      - deploy:
          name: deploy
          command: |
            . ~/venv/bin/activate

            # set aws credentials
            mkdir -p ~/.aws
            echo -e "[default]" >> ~/.aws/credentials
            echo -e "aws_access_key_id = "$AWS_ACCESS_KEY_ID >> ~/.aws/credentials
            echo -e "aws_secret_access_key = "$AWS_SECRET_ACCESS_KEY >> ~/.aws/credentialstrouble

            # try to update, if the command fails do the initial deploy
            zappa update dev || zappa deploy dev;

请注意,我使用的是 python 3.6.1 CircleCI 图像,我在使用 3.6.9

时遇到了一些小问题

具有依赖项缓存的完整示例,运行 测试套件,测试是否可以创建包,部署到 testingproduction 环境可以在这里找到:https://github.com/mislavcimpersak/xkcd-excuse-generator/blob/master/.circleci/config.yml

我必须使用 pip3 安装 zappa 和 virtualenv 然后激活它。

sudo pip install zappa
sudo pip3 install virtualenv
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements.txt
zappa update dev