- Инструменты для разработчиков›
- AWS CodeBuild›
- Вопросы и ответы
Вопросы и ответы по AWS CodeBuild
Общие вопросы
Что такое AWS CodeBuild?
AWS CodeBuild – это полностью управляемый сервис непрерывной интеграции. CodeBuild компилирует исходный код, проводит тестирование и формирует готовые к развертыванию пакеты программного обеспечения. Благодаря CodeBuild больше не нужно распределять и масштабировать собственные серверы сборок, а также обеспечивать управление ими. CodeBuild автоматически масштабируется в обоих направлениях и способен обрабатывать несколько сборок одновременно, поэтому сборкам не придется ждать в очереди. Можно быстро начать работу с помощью предустановленных сред сборки или использовать собственные среды сборки на основе своих инструментов. Работа сервиса CodeBuild оплачивается поминутно.
Почему следует использовать CodeBuild?
Вместо того чтобы настраивать, обновлять и обслуживать ПО сервера сборок, а также вносить исправления самостоятельно, можно воспользоваться полностью управляемыми возможностями сервиса CodeBuild. После отправки заданий сборки в CodeBuild сервис запустит их выполнение во временных вычислительных контейнерах, заново создаваемых и удаляемых по завершении каждой сборки. Управлять аппаратным или программным обеспечением сервера сборок не требуется. CodeBuild также способен автоматически масштабироваться в соответствии с текущими объемами сборок. Сервис немедленно обрабатывает каждую отправляемую в него сборку и способен выполнять несколько сборок одновременно, благодаря чему задания никогда не будут стоять в очереди.
Сколько стоит использование CodeBuild?
Дополнительные сведения см. на странице Цены на AWS CodeBuild.
Можно ли использовать CodeBuild для автоматизации процесса выпуска?
Да. Сервис CodeBuild интегрирован в AWS CodePipeline. Можно добавить действие сборки, а также настроить процесс непрерывной интеграции и непрерывной доставки в облаке. Дополнительные сведения о настройке и мониторинге сборок с помощью консоли CodePipeline см. здесь.
Использование CodeBuild
Что такое проект сборки?
Проект сборки позволяет определить способ исполнения сборки сервисом CodeBuild. Он содержит информацию о местонахождении исходного кода, используемой среде сборки, исполняемых командах сборки и месте сохранения итоговой сборки. Среда сборки представляет собой комбинацию из операционной системы, среды исполнения программного кода и инструментов, используемых сервисом CodeBuild для запуска сборки.
Как можно настроить проект сборки?
Проект сборки можно настроить с помощью консоли или интерфейса командной строки AWS. Требуется указать местонахождение исходного репозитория, среду исполнения, команды сборки, роль IAM для контейнера и вычислительный класс, необходимый для запуска сборки. Команды сборки также можно указать в файле buildspec.yml.
Какие исходные репозитории поддерживаются сервисом CodeBuild?
Для извлечения исходного кода при сборках CodeBuild может подключаться к AWS CodeCommit, S3, GitHub, GitHub Enterprise или Bitbucket.
Какие среды программирования поддерживаются сервисом CodeBuild?
CodeBuild предлагает предварительно настроенные среды для поддерживаемых версий Java, Ruby, Python, Go, Node.js, Android, .NET Core, PHP и Docker. Можно также настроить собственную среду, создав образ Docker и загрузив его в Amazon EC2 Container Registry или реестр Docker Hub. После этого можно ссылаться в проекте сборки на собственный образ.
Какие предварительно настроенные среды исполнения Windows предлагаются в CodeBuild?
CodeBuild предоставляет предварительно настроенную среду сборки Windows для .NET Core 2.0. Мы также хотели бы предложить предварительно сконфигурированную среду сборки для клиентов Microsoft .NET Framework, у многих из которых уже есть лицензии на использование проприетарных библиотек Microsoft. Однако в данный момент корпорация Microsoft не готова сотрудничать с нами с целью удовлетворить запросы таких клиентов. Можно самостоятельно настроить собственную среду для поддержки других целевых сборок, таких как .NET Framework, путем создания образа Docker и загрузки его в Amazon EC2 Container Registry или реестр Docker Hub. После этого можно ссылаться в проекте сборки на собственный образ.
Что происходит при запуске сборки?
CodeBuild создаст временный вычислительный контейнер класса, определенного в проекте сборки; загрузит его с указанной средой исполнения; загрузит исходный код; исполнит команды, сконфигурированные в проекте; выгрузит сформированный артефакт в корзину S3, а затем уничтожит вычислительный контейнер. В процессе сборки сервис CodeBuild будет передавать результаты сборки в консоль сервиса и сервис Amazon CloudWatch.
Как настроить первую сборку?
Войдите в Консоль управления AWS, создайте проект сборки и запустите сборку. Для знакомства с сервисом CodeBuild см. раздел Начало работы с пошаговым учебным руководством. Кроме того, можно использовать локальную версию CodeBuild для тестирования и устранения ошибок сборки локально.
Можно ли использовать CodeBuild совместно с Jenkins?
Да. Для интеграции CodeBuild с заданиями Jenkins можно использовать подключаемый модуль CodeBuild для Jenkins. Задания сборки отправляются в CodeBuild, что устраняет необходимость в выделении рабочих узлов Jenkins и управлении ими.
Как просмотреть результаты предыдущих сборок?
Доступ к результатам предыдущих сборок можно получить через консоль сервиса, CloudWatch или API. В результаты входит итоговая информация (успех или сбой), продолжительность процесса сборки, местоположение выходного артефакта и местоположение журналов. В панели управления CodeBuild можно просмотреть метрики, чтобы ознакомиться с ходом выполнения сборки. Панель управления отображает число предпринятых, успешных и неуспешных попыток сборки, а также продолжительность процесса сборки. Подробные метрики сборки приводятся в консоли CloudWatch. Дополнительную информацию об отслеживании CodeBuild с помощью CloudWatch см. в документации.
Как устранить ошибки после сбоя предыдущей сборки?
Чтобы устранить ошибки сборки, можно проверить подробные журналы, созданные в процессе сборки, или использовать локальную версию CodeBuild для тестирования и устранения ошибок сборки локально.
Почему инстанс build.general1.small не поддерживается для .NET Core в средах сборки Windows?
В связи с размерами базового контейнера Docker и дополнительных библиотек Windows запуск .NET Core для среды сборки Windows требует больше памяти и вычислительной мощности, чем доступно в вычислительном инстансе типа build.general1.small. Из-за этого ограничения уровень бесплатного пользования для .NET Core в среде сборки Windows не предусмотрен.
Как получать оповещения или предупреждения о любых событиях в AWS CodeBuild?
Можно создать оповещения для событий, влияющих на ваши проекты сборки. Уведомления будут приходить в виде оповещений Amazon SNS. Каждое оповещение будет включать в себя сообщение о состоянии, а также ссылку на ресурсы, где возникло событие, ставшее причиной оповещения. Оповещения предоставляются бесплатно, однако плата может начисляться за использование других сервисов AWS при оповещении, например Amazon SNS. Чтобы узнать, как начать работу с оповещениями, см. это руководство пользователя. Кроме того, у клиентов, использующих AWS Chatbot, есть возможность настроить отправку оповещений в каналы Slack или чат‑комнаты Amazon Chime. Подробную информацию см. здесь.
Безопасность
Можно ли зашифровать артефакты сборки, сохраненные сервисом CodeBuild?
Да. Для шифрования артефактов можно указать ключ, сохраненный в сервисе AWS Key Management Service (AWS KMS).
Как CodeBuild изолирует сборки, принадлежащие разным клиентам?
CodeBuild запускает сборку в только что созданной и изолированной от других пользователей среде и каждый раз уничтожает среду сборки по завершении процесса. CodeBuild обеспечивает безопасность и изоляцию на уровнях инфраструктуры и исполнения.
Можно ли использовать Управление идентификацией и доступом AWS (IAM) для управления доступом к CodeBuild?
Да. Управлять доступом к проектам сборки можно с помощью разрешений на уровне ресурсов в политиках IAM.
Регионы
Какие регионы поддерживает CodeBuild?
Подробнее см. на странице Продукты и сервисы по регионам.