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

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

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

Автоматизируя процессы сборки, тестирования и выпуска, AWS CodePipeline позволяет увеличить скорость и качество ваших обновлений программного обеспечения, пропуская все изменения через ряд последовательных проверок качества.

Непрерывная доставка – это практика разработки программного обеспечения, когда при любых изменениях в программном коде выполняется автоматическая сборка, тестирование и подготовка к окончательному выпуску. Внедрить практику непрерывной доставки помогает сервис AWS CodePipeline. Подробнее о непрерывной доставке см. здесь.

Понятия

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

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

Стадия – это группа из одного или нескольких действий. Конвейер может содержать две и более стадий.

Действие – это задача, выполняемая над редакцией. Действия конвейера выполняются в определенном порядке, последовательно или параллельно, как определено в конфигурации стадии. Дополнительные сведения см. в разделах Редактирование конвейера и Требования к структуре действий в AWS CodePipeline.

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

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

Использование AWS CodePipeline

Можно войти в Консоль управления AWS, создать конвейер и начать пользоваться сервисом. Краткое описание AWS CodePipeline см. в разделе Getting Started, который включает пошаговые руководства. 

После создания конвейера он автоматически запускается для выпуска последней версии исходного кода. После этого конвейер снова запускается при каждом внесении изменений в исходном расположении. Кроме того, можно повторно запустить конвейер для последней редакции с помощью кнопки «Изменение выпуска» (Release Change) в консоли конвейера.

Чтобы остановить конвейер, можно отключить переход от одной стадии к другой. После отключения конвейер будет продолжать выполнять действия над редакциями, но не будет передавать редакции по отключенным переходам на более поздние стадии. Дополнительные сведения см. в разделе «Отключение или включение переходов в AWS CodePipeline».

Да. Можно использовать консоль AWS CodePipeline или интерфейс командной строки AWS для добавления или удаления стадий в конвейере, а также добавлять, изменять или удалять действия в рамках стадии.

Да. Можно использовать команду get‑pipeline в интерфейсе командной строки AWS, чтобы получить структуру существующего конвейера в виде файла JSON. После этого можно использовать этот JSON и команду create-pipeline интерфейса командной строки AWS для создания нового конвейера с такой же структурой, как у существующего конвейера.

Да. Можно настроить параллельное выполнение одного или нескольких действий для любой из стадий.

Для выпуска обновлений бессерверных приложений можно добавить в репозиторий исходного кода шаблон AWS Serverless Application Model и соответствующие файлы. Можно использовать в конвейере непрерывной доставки сервис AWS CodeBuild для упаковки кода перед развертыванием. После этого можно использовать действия AWS CloudFormation для создания набора изменений и развертывания бессерверного приложения. Пользователь может добавлять в рабочий процесс дополнительные действия, например ручное утверждение или автоматическое тестирование. Подробнее см. по ссылке.

С помощью AWS CodePipeline и AWS CloudFormation можно использовать непрерывную доставку для автоматической сборки и тестирования изменений в стеке AWS CloudFormation, прежде чем передавать их в рабочий стек. Такая технология выпуска позволяет быстро и надежно вносить изменения в используемую инфраструктуру AWS. Можно расширить рабочий процесс дополнительными действиями, такими как ручное утверждение, тестирование или вызов функций AWS Lambda. Дополнительные сведения см. на странице Непрерывная доставка с AWS CloudFormation.

AWS CodePipeline интегрирован с такими сервисами AWS, как AWS CodeCommit, Amazon S3, AWS CodeBuild, AWS CodeDeploy, AWS Elastic Beanstalk, AWS CloudFormation, AWS OpsWorks, Amazon ECS и AWS Lambda. Кроме того, AWS CodePipeline интегрируется с рядом партнерских инструментов. Дополнительные сведения см. на странице интеграции продуктов. Наконец, можно написать свои настраиваемые действия и интегрировать любой существующий инструмент с CodePipeline. Дополнительные сведения о настраиваемых действиях см. на странице «Create and Add a Custom Action in AWS CodePipeline».

Да. Чтобы получить историю вызовов API сервиса AWS CodePipeline для аккаунта с целью анализа безопасности и устранения текущих неисправностей, нужно включить сервис AWS CloudTrail в Консоли управления AWS. Дополнительные сведения см. в разделе Logging AWS CodePipeline API calls by Using AWS CloudTrail.

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

Можно создать оповещения для событий, влияющих на ваши конвейеры. Оповещения будут приходить в виде сообщений от сервиса Amazon SNS. Каждое оповещение будет включать в себя сообщение о состоянии, а также ссылку на ресурсы, где возникло событие, ставшее причиной оповещения. Оповещения предоставляются бесплатно, однако плата может начисляться за использование других сервисов AWS при оповещении, например Amazon SNS. Чтобы узнать, как начать работу с оповещениями, см. соответствующее руководство пользователя. Кроме того, клиенты, использующие AWS Chatbot, могут настроить отправку оповещений в каналы Slack или чат‑комнаты Amazon Chime. Подробную информацию см. здесь.

Партнеры

Если вы хотите стать партнером AWS и интегрировать свой сервис для разработчиков с AWS CodePipeline, напишите нам по адресу codepipeline-request@amazon.com.

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

Да. AWS CodePipeline поддерживает разрешения на уровне ресурсов. Можно указать пользователей, которые имеют доступ к конвейеру, а также действия, которые они могут выполнять. К примеру, можно предоставить пользователям доступ к конвейеру в режиме «только чтение», если вы хотите, чтобы они могли посматривать состояние конвейера, но не могли изменять конвейер. Кроме того, можно установить разрешения для любых стадии или действия в конвейере. Дополнительную информацию об использовании IAM с AWS CodePipeline см. в справке по правам доступа.

Да. Можно создать роль IAM в аккаунте AWS, которому принадлежит конвейер, чтобы делегировать права доступа к конвейеру и любым связанным с ним ресурсам пользователю IAM из другого аккаунта. Чтобы ознакомиться с возможностями разрешения подобного доступа к разным аккаунтами, см. такие разделы пошагового руководства: Делегирование прав доступа к нескольким своим аккаунтам AWS, используя роли IAM, и Настройка доступа к конвейеру из нескольких аккаунтов.

Регионы

Сведения о доступности сервиса CodePipeline по регионам см. на странице Продукты и сервисы по регионам.

Оплата

Сведения о стоимости сервиса AWS CodePipeline см. на странице цен.