Как развернуть в AWS с помощью CI / CD для Zappa (Python) - PullRequest
0 голосов
/ 10 января 2019

Я использую zappa для развертывания на aws. И я хотел внедрить CI / CD на AWS. Итак, я создал конвейер и успешно выполнил 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

Как выполнить развертывание zappa или обновление zappa на AWS?

Я не уверен, как добавить создать appspec.yaml файл.

Пожалуйста, ПОМОГИТЕ! Прикрепленный !!

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Вот файл 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`

Обратите внимание, что используется образ Docker danielwhatmuff/zappa:python3.6 в CodeBuild. Я использую это изображение, так как оно основано на AWS Lambda и настроено для Zappa.

0 голосов
/ 19 января 2019

Обновление Zappa до Code Deploy: Ваш 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

Ниже приведены инструкции по обновлению Zappa на AWS

.
  1. Настройка AWS для пользователя IAM
  2. Настройка AWS cli на локальном хосте с помощью команды а. pip install awscli б. aws configure
  3. Позвоните "Zappa init", он сгенерирует zappa_settings.json на основании предоставленной информации
  4. Zappa развертывание <name provided for environment in step3>

Теперь ваше приложение будет развернуто на AWS. Всякий раз, когда вам нужно обновить, звоните

Заппа обновление <name provided for environment in step3>

...