Репликация репозиториев кода от одного региона 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»