Сервис AWS CodeCommit больше не доступен для новых клиентов. Действующие клиенты AWS CodeCommit могут продолжать использовать сервис в обычном режиме. Подробнее

Вопросы и ответы по AWS CodeCommit

Общие вопросы

AWS CodeCommit – это безопасный высокомасштабируемый управляемый сервис управления исходным кодом, облегчающий специалистам совместную работу с кодом. С AWS CodeCommit вам не придется создавать собственную систему управления исходным кодом и заниматься масштабированием инфраструктуры для нее. AWS CodeCommit обеспечивает хранение любых ресурсов, от исходного кода до исполняемых файлов. Сервис эффективно интегрируется с существующими инструментами Git.

Git – это распределенная система управления версиями с открытым исходным кодом. Для работы с репозиториями AWS CodeCommit можно воспользоваться интерфейсом командной строки Git или любым подходящим клиентом Git. Дополнительные сведения о Git см. в документации Git. Дополнительную информацию о работе с AWS CodeCommit и Git см. на странице Начало работы с AWS CodeCommit.

AWS CodeCommit предназначен для разработчиков программного обеспечения, которым нужна безопасная, надежная и масштабируемая система управления исходным кодом для хранения кода и управления его версиями. Кроме того, AWS CodeCommit будет полезен всем, кому требуется простое в использовании, полностью автоматизированное хранилище данных с возможностью управления версиями. Например, системные администраторы могут использовать AWS CodeCommit для хранения скриптов и настроек. Веб-дизайнеры могут использовать AWS CodeCommit для хранения HTML-страниц и изображений.

AWS CodeCommit предоставляет целый ряд возможностей, недоступных в других системах управления исходным кодом на основе Git.

  • Полностью управляемый сервис. С AWS CodeCommit вам не придется заниматься размещением, обслуживанием, резервным копированием и масштабированием собственных серверов управления исходным кодом.
  • Безопасность. Сервис AWS CodeCommit автоматически выполняет шифрование файлов при пересылке и хранении. AWS CodeCommit интегрирован с сервисом AWS Identity and Access Management (IAM), что позволяет назначать разрешения для ваших репозиториев на уровне пользователей.
  • Высокая доступность. AWS CodeCommit работает на основе высокомасштабируемых, избыточных и надежных сервисов AWS, таких как Amazon S3 и Amazon DynamoDB.
  • Масштабируемость. AWS CodeCommit позволяет хранить любое количество файлов без ограничений объема репозиториев.
  • Ускоренный жизненный цикл разработки. С AWS CodeCommit ваши репозитории будут находиться в облаке AWS, в непосредственной близости от сред разработки и предпроизводственного тестирования, а также рабочей среды. Это повышает скорость жизненного цикла разработки и частоту обновлений.

AWS CodeCommit предусматривает совместную разработку программного обеспечения. Он управляет пакетами изменений множества файлов, обеспечивает параллельную разработку и сравнение версий. Функция управления версиями сервиса Amazon S3 обеспечивает восстановление предыдущих версий отдельных файлов, но не поддерживает отслеживание пакетов изменений, охватывающих множество файлов, и другие возможности, требуемые для совместной разработки программного обеспечения.

Работа с AWS CodeCommit

Вы можете войти в Консоль управления AWS, создать репозиторий и начать работу с ним с помощью Git. Для знакомства с сервисом перейдите на страницу Начало работы, где приводится пошаговое руководство.

Чтобы создать репозиторий, воспользуйтесь Консолью управления AWS, Интерфейсом командной строки AWS (AWS CLI), AWS SDK или API сервиса AWS CodeCommit.

Редактировать файлы можно непосредственно из консоли CodeCommit. Кроме того, для работы с репозиторием можно использовать Git. В качестве примера команды Git можно применить команду git clone, чтобы создать локальную копию репозитория AWS CodeCommit. Внесите изменения в локальные файлы и запустите команду git commit, чтобы сохранить изменения. Наконец, воспользуйтесь командой git push для загрузки изменений в репозиторий AWS CodeCommit. Пошаговые инструкции см. на странице Начало работы с AWS CodeCommit.

С помощью Git можно импортировать в AWS CodeCommit любой существующий репозиторий Git. Другие репозитории, например Subversion или Perforce, сначала нужно перенести в репозиторий Git с помощью инструмента импорта Git. Пошаговые инструкции по импорту репозиториев Git см. на странице Перенос существующего репозитория в AWS CodeCommit. Пошаговые инструкции по переносу локального или безверсионного контента см. в документации Git по выполнению миграции.

AWS CodeCommit в настоящее время поддерживает команды clone, pull, push и fetch.

Да. AWS CodeCommit можно использовать с репозиториями Git, содержащими подмодули.

Сведения о лимитах сервисов см. в разделе Limits.

Размер отдельного файла в репозитории может составлять не более 2 ГБ.

Для восстановления данных можно использовать полную локальную копию репозитория, созданную командой git clone. Дополнительные резервные копии можно создавать разными способами. Один из них заключается в установке Git на сервере резервного копирования и запуске задания планировщика с использованием команды git clone, чтобы регулярно создавать снимки состояния репозитория. Если требуется копировать только инкрементные изменения, вы можете воспользоваться командой git pull вместо команды git clone. Обратите внимание, что использование этих операций может увеличить затраты на количество пользователей и/или запросов в зависимости от ваших настроек сервера резервного копирования и частоты опросов.

Удаление репозитория AWS CodeCommit является необратимой операцией стирания данных. Для восстановления репозитория, который был удален, потребуется создать репозиторий заново и загрузить в него данные из резервной или локальной копии, полученной путем полного клонирования. Для ограничения круга пользователей с правами удаления репозиториев рекомендуется использовать политики IAM и защиту посредством многофакторной аутентификации. Дополнительные сведения см. в ответе на вопрос «Можно ли использовать AWS Identity and Access Management (IAM) для управления доступом к AWS CodeCommit?» в разделе «Безопасность» на этой странице вопросов и ответов.

В сервисе CodeCommit поддерживается проверка кода. Кроме того, вы можете настроить разрешения на доступ к ветвям кода. При возникновении проблем с проверкой кода или назначением разрешений на уровне ветви, ознакомьтесь с соответствующей документацией.

Системы непрерывной интеграции можно настраивать для извлечения кода из AWS CodeCommit с помощью Git. Примеры использования систем непрерывной интеграции с сервисом AWS CodeCommit см. в публикации блога, посвященной объединению AWS CodeCommit с Jenkins.

В консоли Amazon SNS можно создать тему SNS, указав для нее адрес сервера HTTP и URL для объекта webhook. Затем в консоли AWS CodeCommit вы сможете связать эту тему SNS с событием в репозитории с помощью триггеров. Кроме того, у клиентов, использующих AWS Chatbot, есть возможность настроить отправку оповещений в каналы Slack или чат‑комнаты Amazon Chime. Подробную информацию см. здесь.

Да. Последние события CodeCommit, в том числе операции Git и вызовы API, можно просмотреть в консоли AWS CloudTrail. Чтобы непрерывно записывать все события, создайте отслеживание и ведите журнал событий в корзине Amazon S3. Дополнительные сведения см. в разделе «Ведение журнала вызовов API AWS CodeCommit с помощью AWS CloudTrail».

Безопасность

Да. AWS CodeCommit поддерживает разрешения на уровне ресурсов. Для каждого репозитория AWS CodeCommit можно указать действия, разрешенные определенным пользователям. Можно также использовать для действий CodeCommit многофакторную аутентификацию (MFA) AWS. Это обеспечивает дополнительный уровень защиты от разрушительных действий, таких как удаление репозиториев. Можно установить контроль доступа клиентов Git не только к API AWS CodeCommit, но и к командам git pull и git push. К примеру, можно создать пользователя репозитория с правами только для чтения, разрешив ему выполнение команды git pull, но не git push. Дополнительные сведения по использованию IAM с сервисом AWS CodeCommit см. на странице аутентификации и контроля доступа для AWS CodeCommit. Дополнительную информацию об аутентификации доступа к API с применением многофакторной аутентификации см. в разделе Настройка доступа к API с защитой посредством Многофакторной аутентификации (MFA).

Для обмена данными с AWS CodeCommit можно использовать как HTTPS, так и SSH. Для использования протокола HTTPS сначала необходимо установить интерфейс командной строки AWS. Интерфейс командной строки AWS позволяет установить Git credential helper, настраиваемый с использованием данных доступа AWS. Он автоматически ставит цифровую подпись для всех запросов HTTPS к AWS CodeCommit в спецификации Подпись версии 4. Для использования протокола SSH пользователи создают собственные пары публичных и частных ключей и добавляют публичные ключи к своим пользователям IAM. Частный ключ обеспечивает шифрование обмена данными с AWS CodeCommit. Пошаговые инструкции по настройке доступа по HTTPS и SSH см. на странице Настройка AWS CodeCommit.

Вам потребуется открыть исходящий доступ в адрес сервиса AWS CodeCommit для порта 22 (SSH) или 443 (HTTPS).

Шифрование репозиториев при хранении выполняется автоматически. От пользователя не требуется дополнительных действий. Для шифрования репозиториев сервис AWS CodeCommit использует AWS Key Management Service (KMS). При создании первого репозитория в вашем аккаунте AWS будет создан ключ CodeCommit под управлением AWS. Дополнительные сведения см. на странице Шифрование репозиториев AWS CodeCommit.

Да. Вы можете создать в своем аккаунте AWS роль IAM для предоставления доступа к репозиторию пользователям IAM других аккаунтов AWS. После этого пользователи IAM могут настроить свой интерфейс командной строки AWS для работы с сервисом AWS Security Token Service (STS) и использовать данную роль при запуске команд. Дополнительные сведения см. в разделе Использование роли документации по интерфейсу командной строки AWS.

Регионы

Дополнительные сведения о доступности сервиса CodeCommit по регионам см. на странице Продукты и сервисы по регионам.

Оплата

Стоимость использования сервиса AWS CodeCommit составляет 1 USD за одного активного пользователя в месяц. На каждого активного пользователя ваш аккаунт дополнительно получает 10 ГБ хранилища и 2000 запросов Git в месяц. Неиспользованный объем хранилища и неиспользованное количество запросов Git не переносятся на следующие месяцы. Если вам потребуется больше ресурсов хранилища или запросов Git для ваших пользователей, дополнительное использование будет оплачиваться по тарифу 0,06 USD за 1 ГБ в месяц и 0,001 USD за запрос Git. Пользователи могут хранить любое количество репозиториев Git. Объем использованных вами ресурсов рассчитывается каждый месяц суммарно по всем регионам и автоматически включается в ваш счет. Подробнее см. на странице цен.

Активный пользователь – это любое уникальное удостоверение AWS (пользователь или роль IAM, федеративный пользователь или аккаунт root), которое в течение месяца обращалось к репозиториям AWS CodeCommit посредством запросов Git или Консоли управления AWS. Сервер, который обращается к CodeCommit с помощью уникального удостоверения AWS, считается активным пользователем.

Запросы Git включают любые операции push или pull, которые передают объекты репозитория. Запрос не учитывается в объеме использования запросов Git, если при его выполнении не происходит передачи объектов, поскольку локальные или удаленные ветки кода уже синхронизированы.