Розгортання AWS Elastic Beanstalk за допомогою GitHub Actions

pic

Вступ

AWS Elastic Beanstalk надає масштабовану та зручну платформу для розгортання та керування додатками в хмарі AWS. Інтеграція GitHub Actions у ваш робочий процес дозволяє автоматизувати процес побудови та розгортання, забезпечуючи безшовний і ефективний конвеєр розгортання. У цій статті ми розглянемо, як розгорнути додаток в AWS Elastic Beanstalk за допомогою GitHub Actions.

pic

Робочий процес GitHub Actions

Наданий робочий процес GitHub Actions (build.yml) розділений на дві роботи: build та deploy. Розглянемо кожен крок:

  1. Робота зі збіркою:
  2. Виконується на: Ubuntu Latest
  3. Середовище: 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

Leave a Reply

Your email address will not be published. Required fields are marked *