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