Рубрики
Uncategorized

Репликация AWS CodeCommit Repositories между регионами с использованием CodeBuild и CodePipipeline

Репликация репозиториев кода от одного региона AWS в другой — это часто используемая задача DevOps. Это искусство … помечено AWS, DEVOPS, программированием.

Репликация репозиториев кода от одного региона AWS в другой — это часто используемая задача DevOps. Эта статья демонстрирует, как настроить постоянную репликацию репозитория CodeCommit AWS среди нескольких областей AWS, используя AWS CodeBuild и AWS CodePipiple. Этот подход может быть полезен для поддержания резервных копий репозиториев CodeCommit в разных регионах.

Основная выгода использования этого подхода состоит в том, что процесс репликации может быть легко установлен для срабатывания на основе событий, таких как коммиты, сделанные в репозиторий.

Примечание: Вам необходимо иметь основное понимание CodeCommit, CodeBuild, CodePipipeline и Identity Access Management (IAM). Пожалуйста, обратитесь к документации AWS, если вы не знакомы с этими услугами AWS.

Мы будем воспроизводить репозиторий в США-Востоке-1 (Н. Вирджинии) в регион США-Восток-2 (Огайо).

Давай началось

Шаг 1: Настройка проекта сборки в CodeBuild

  • Под конфигурацией проекта введите имя для проекта CodeBuild. В нашем случае это демонстрация
  • Под источником выберите источник поставщика как AWS CodeCommit и выберите репозиторий и ветвь в репозитории, которую вы хотите реплицироваться в другой регион. В нашем случае мы будем реплицировать Тест ветвь под Demoapp Репозиторий.
  • Под окружающей средой выберите операционную систему как Amazon Linux 2 , Время выполнения (ы) как Стандарт , Изображение как AWS/CodeBuild/Amazonlinux2-X86_64-Standard: 3.0 , Версия изображения как Всегда используйте новейшее изображение для этой версии выполнения и тип окружающей среды, как Linux.
  • Под BuildSpec выберите «Вставить команды сборки» и нажмите «Переключиться в редактор».
  • Введите следующие команды.
version: 0.2

env:
  #variables:
     # key: "value"
     # key: "value"
  #parameter-store:
     # key: "value"
     # key: "value"
  #secrets-manager:
     # key: secret-id:json-key:version-stage:version-id
     # key: secret-id:json-key:version-stage:version-id
  #exported-variables:
     # - variable
     # - variable
  git-credential-helper: yes
#batch:
  #fast-fail: true
  #build-list:
  #build-matrix:
  #build-graph:
phases:
  #install:
    #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions.
    #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails.
    #runtime-versions:
      #nodejs: 12
      # name: version
    #commands:
      # - command
      # - command
  #pre_build:
    #commands:
      #- ls -lt
  build:
    commands:
      - git config --global --unset-all credential.helper
      - git config --global credential.helper '!aws codecommit credential-helper $@'
      - git config --global credential.UseHttpPath true
      - git clone --mirror https://git-codecommit.us-east-1.amazonaws.com/v1/repos/demoapp LocalRepository
      - cd LocalRepository
      - git remote set-url --push origin https://git-codecommit.us-east-2.amazonaws.com/v1/repos/demoapp
      - git config --global credential.helper '!aws codecommit credential-helper $@'
      - git config --global credential.UseHttpPath true
      - git fetch -p origin
      - git push --mirror
  post_build:
    commands:
      - echo Build completed
#reports:
  #report-name-or-arn:
    #files:
      # - location
      # - location
    #base-directory: location
    #discard-paths: yes
    #file-format: JunitXml | CucumberJson
#artifacts:
  #files:
    # - location
    # - location
  #name: $(date +%Y-%m-%d)
  #discard-paths: yes
  #base-directory: location
#cache:
  #paths:
    # - paths
  • Пусть CodeBuild автоматически создает услугу для нас. В нашем случае CodeBuild создаст новую сервисную роль с именем CodeBuild-demooboxeplication — роль
  • Оставьте все параметры по умолчанию под пакетной конфигурацией, артефактами, журналы шаги в CodeBuild и нажмите Создать кнопку «Создать строить».

Шаг 2: Настройка роли обслуживания CodeBuild в IAM

  • Перейдите к IAM и добавьте следующее CodeCommit: Gitpush Разрешения для Регион США-Востока-2 Ресурс к сервисному роли CodeBuild создан для нас. В нашем случае мы обновим разрешения и ресурс для CodeBuild-demooboxeplication — роль

Шаг 3: Настройка кодовой обработки

Кроме того, вы можете дополнительно продлить эту настройку для репликации кода запуска, когда слияние кода происходит в репозитории CodeCommit в US-East-1, путем вызвания кодовогобильда в течение кодовой обработки.

  • Введите имя для трубопровода
  • Под провайдером исходного сигнала выберите AWS CodeCommit Отказ В нашем случае мы проверим сборку, когда CodeCommit обнаруживает изменение кода в Тест ветвь под Demoapp Репозиторий.
  • Под шагом сборки выберите поставщик сборки как CodeBuild И наше название проекта демонстрация
  • Нажмите на Skip Deploy Stage
  • Просмотрите детали трубопровода и нажмите Создать трубопровод.

  • После того, как конвейера кода успешно работает, вы должны увидеть следующее:

Резюме

Эта статья демонстрирует создание репликации репликации репликации хранилища CodeCommit AWS в нескольких областях с использованием кодовогобильда и кодовой обработки.

Рекомендации

Оригинал: «https://dev.to/apatil88/replicate-aws-codecommit-repositories-between-regions-using-codebuild-and-codepipeline-5fh1»