CircleCI 中的 Zappa 更新失败

问题描述 投票:0回答:2

我正在尝试使用 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

有什么我想念的吗? 有人可以帮助我吗?

python circleci zappa
2个回答
1
投票

我必须使用 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

0
投票

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

AWS_ACCESS_KEY_ID
AWS_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

© www.soinside.com 2019 - 2024. All rights reserved.