AWS новичок здесь
У меня есть репозиторий на gitlab, который имеет ветку с именем automatic_invoice_generator
. В этой ветке содержится следующее содержимое:
- Script1.py
- Script2.py
- Script3.py
- .gitlab-ci. yml
Теперь мне нужно развернуть эти три кода как три разные aws лямбда-функции. Сейчас я создал 3 разных ветви из automatic_invoice_generator
branch, script1_branch
, script2_branch
, script3_branch
и для каждой ветви (я немного изменил файл .gitlab-ci.yml
, чтобы он подходил для конкретного скрипта ).
Мой .gitlab-ci.yml
файл для Script1.py
выглядит следующим образом:
image: ubuntu:latest
variables:
GIT_SUBMODULE_STRATEGY: recursive
LAMBDA_NAME: Script1
AWS_DEFAULT_REGION: eu-central-1
S3_BUCKET: invoice-bucket
stages:
- deploy
production:
stage: deploy
script:
- apt-get -y update
- apt-get -y install python3-pip python3.7 zip
- python3.7 -m pip install --upgrade pip
- python3.7 -V
- pip3.7 install virtualenv
- mv Script1.py ~
- mv csv_data~
- mv requirements.txt ~
# Move submodules
- mv edilite/edilite ~
- mv edilite/pydifact/pydifact ~
# Setup virtual environment
- mkdir ~/forlambda
- cd ~/forlambda
- virtualenv -p python3 venv
- source venv/bin/activate
- pip3.7 install -r ~/requirements.txt -t ~/forlambda/venv/lib/python3.7/site-packages/
# Package environment and dependencies
- cd ~/forlambda/venv/lib/python3.7/site-packages/
- zip -r9 ~/forlambda/archive.zip .
- cd ~
- zip -g ~/forlambda/archive.zip Script1.py
- zip -r ~/forlambda/archive.zip csv_data/*
- zip -r ~/forlambda/archive.zip edilite/*
- zip -r ~/forlambda/archive.zip pydifact/*
# Upload package to S3
# Install AWS CLI
- pip install awscli --upgrade # --user
- export PATH=$PATH:~/.local/bin # Add to PATH
# Configure AWS connection
- aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID
- aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY
- aws configure set default.region $AWS_DEFAULT_REGION
- aws sts get-caller-identity --output text --query 'Account' # current account
- aws s3 cp ~/forlambda/archive.zip s3://$S3_BUCKET/$LAMBDA_NAME-deployment.zip
Я использую один и тот же файл .gitlab-ci.yml
для всех ветвей (script1_branch
, * 1032) *, script3_branch
), только изменяя LAMBDA_NAME
и имя .py
сценариев. Когда я запускаю файлы .gitlab-ci.yml
для всех 3 веток, запускается код и создаются 3 разные лямбда-функции, и код работает отлично.
Что я хотел бы знать, если есть способ, которым я могу измените мой .gitlab-ci.yml
файл, с помощью которого я могу вместо создания 3 разных веток для 3 разных скриптов (script1_branch
, script2_branch
, script3_branch
) создать только одну ветку из automatic_invoice_generator
(скажем all_scripts_branch
) и развернуть все 3 сценария одновременно как три разные лямбда-функции?
Я немного новичок как в aws, так и в gitlab, поэтому любая помощь приветствуется.