zappa==0.45.1 django-rest-swagger==2.1.2 djangorestframework==3.7.3 django-filter==1.1.0 Django==2.0 psycopg2==2.7.3.2 django-storages==1.6.5
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' ##################################### # ENV VARIABLES ##################################### RDS_DB_NAME = os.environ.get('RDS_DB_NAME') RDS_USERNAME = os.environ.get('RDS_USERNAME') RDS_PASSWORD = os.environ.get('RDS_PASSWORD') RDS_HOSTNAME = os.environ.get('RDS_HOSTNAME') RDS_PORT = os.environ.get('RDS_PORT') S3_BUCKET = os.environ.get('S3_BUCKET') ##################################### ##################################### # THIS SETTINGS CAN'T BE OVERRIDED # ##################################### # Database # https://docs.djangoproject.com/en/2.0/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': RDS_DB_NAME, 'USER': RDS_USERNAME, 'PASSWORD': RDS_PASSWORD, 'HOST': RDS_HOSTNAME, 'PORT': RDS_PORT, } } AWS_STORAGE_BUCKET_NAME = S3_BUCKET AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME STATIC_ROOT = 'static' STATIC_URL = "https://%s/" % AWS_S3_CUSTOM_DOMAIN
pytest==3.3.1 pylint==1.8.1 tox==2.9.1 pytest-django==3.1.2 docstringtest==0.3.0
{ "dev1": { "environment_variables": { "RDS_DB_NAME": "dbname", "RDS_USERNAME": "user", "RDS_PASSWORD": "pass", "RDS_HOSTNAME": "host", "RDS_PORT": "5432", "S3_BUCKET": "s3-bucket" }, "aws_region": "us-east-1", "django_settings": "sample.settings", "project_name": "serverless", "runtime": "python3.6", "s3_bucket": "app-bucket", "domain":"example.com", "certificate_arn":"<ACM certificate arn>" } }
#!/bin/bash setup () { echo ------- SETUP ------- apt-get update # required to install zip apt-get install -y zip pip install virtualenv virtualenv --python=python3 env source env/bin/activate pip install -r requirements.txt return $? } tests() { echo ------- TESTS ------- pip install -r requirements-test.txt # for tests tox return $? } deploy() { echo ------- DEPLOY ------- echo $1 pip install awscli aws s3 cp s3://$CMDB/zappa_settings.json . zappa update $1 || zappa deploy $1 zappa certify $1 --yes zappa manage $1 "migrate --noinput" zappa manage $1 "collectstatic --noinput" return $? } setup && test && deploy $1
image: python:3.6.1 pipelines: tags: release-*: - step: caches: - pip script: - ./ci.sh prod1 branches: master: - step: caches: - pip script: - ./ci.sh dev1
Source: https://habr.com/ru/post/348578/
All Articles