Вступ
AWS Elastic Beanstalk надає масштабовану та зручну платформу для розгортання та керування додатками в хмарі AWS. Інтеграція GitHub Actions у ваш робочий процес дозволяє автоматизувати процес побудови та розгортання, забезпечуючи безшовний і ефективний конвеєр розгортання. У цій статті ми розглянемо, як розгорнути додаток в AWS Elastic Beanstalk за допомогою GitHub Actions.
Робочий процес GitHub Actions
Наданий робочий процес GitHub Actions (build.yml) розділений на дві роботи: build
та deploy
. Розглянемо кожен крок:
- Робота зі збіркою:
- Виконується на: Ubuntu Latest
- Середовище: your-credentials-github-environment
jobs:
build:
runs-on: ubuntu-latest
environment: your-credentials-github-environment
Кроки:
- Налаштування облікових даних AWS:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}
Цей крок налаштовує облікові дані AWS за допомогою секретів GitHub, що дозволяє безпечно отримувати доступ до сервісів AWS.
- Увійти в Amazon ECR:
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
Цей крок авторизує доступ до Amazon Elastic Container Registry (ECR), щоб дозволити завантаження Docker-образів.
- Витягти код:
- name: Check out code
uses: actions/checkout@v3
Цей крок отримує вихідний код з репозиторію GitHub.
- Побудувати Docker-образ:
- name: Build the Docker image
run: docker build . - tag ${{ steps.login-ecr.outputs.registry }}/admin:${{ env.PIPELINE_ID }} - tag ${{ steps.login-ecr.outputs.registry }}/admin:latest
Цей крок будує Docker-образ і додає теги з ідентифікатором конвеєра GitHub Actions і тегом «latest».
- Завантажити Docker-образ в Amazon ECR:
- name: Push the Docker image to Amazon ECR
run: docker push - all-tags ${{ steps.login-ecr.outputs.registry }}/admin
Цей крок завантажує Docker-образ в Amazon ECR, роблячи його доступним для розгортання в Elastic Beanstalk.
2. Робота з розгортанням:
- Залежить від: build
- Виконується на: Ubuntu Latest
- Середовище: your-github-environment
jobs:
deploy:
needs: build
runs-on: ubuntu-latest
environment: your-github-environment
-
Кроки:
-
Витягти код:
- name: Check out code
uses: actions/checkout@v3
Отримує вихідний код для роботи з розгортанням.
- Генерація пакету для розгортання:
- name: Generate deployment package
run: zip deploy.zip Dockerrun.aws.json
Цей крок створює пакет для розгортання, що містить файл Dockerrun.aws.json.
- Розгортання в AWS Elastic Beanstalk:
- name: Deploy to AWS Elastic BeanTalk
uses: einaregilsson/beanstalk-deploy@v20
with:
aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
application_name: admin-client
environment_name: Adminclient-env
version_label: ${{ env.PIPELINE_ID }}
use_existing_version_if_available: true
region: ${{ env.AWS_REGION }}
deployment_package: deploy.zip
Цей крок використовує дію beanstalk-deploy
для розгортання додатка в AWS Elastic Beanstalk за допомогою вказаних налаштувань.
Висновок
Інтегруючи GitHub Actions у ваш робочий процес, ви можете автоматизувати побудову та розгортання ваших додатків в AWS Elastic Beanstalk. Це забезпечує надійний та ефективний спосіб безперешкодної доставки змін коду від розробки до продукції. Ви можете налаштувати робочий процес відповідно до вимог вашого проєкту та використовувати переваги безперервної інтеграції та безперервного розгортання у вашому конвеєрі розробки.
Перекладено з: Deploying AWS Elastic Beanstalk with GitHub Actions