- Инструменты для разработчиков›
- AWS CodePipeline›
- Вопросы и ответы
Вопросы и ответы по AWS CodePipeline
Общие вопросы
Что представляет собой AWS CodePipeline?
AWS CodePipeline – это сервис непрерывной доставки, который позволяет моделировать, визуализировать и автоматизировать действия, необходимые для выпуска программного обеспечения. С помощью 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 Lambda?
Для выпуска обновлений бессерверных приложений можно добавить в репозиторий исходного кода шаблон AWS Serverless Application Model и соответствующие файлы. Можно использовать в конвейере непрерывной доставки сервис AWS CodeBuild для упаковки кода перед развертыванием. После этого можно использовать действия AWS CloudFormation для создания набора изменений и развертывания бессерверного приложения. Пользователь может добавлять в рабочий процесс дополнительные действия, например ручное утверждение или автоматическое тестирование. Подробнее см. по ссылке.
Каким образом можно выделять ресурсы AWS и управлять ими в рамках рабочего процесса выпуска?
С помощью AWS CodePipeline и AWS CloudFormation можно использовать непрерывную доставку для автоматической сборки и тестирования изменений в стеке AWS CloudFormation, прежде чем передавать их в рабочий стек. Такая технология выпуска позволяет быстро и надежно вносить изменения в используемую инфраструктуру AWS. Можно расширить рабочий процесс дополнительными действиями, такими как ручное утверждение, тестирование или вызов функций AWS Lambda. Дополнительные сведения см. на странице Непрерывная доставка с AWS CloudFormation.
Какие продукты можно интегрировать с AWS CodePipeline?
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?
Да. Чтобы получить историю вызовов API сервиса AWS CodePipeline для аккаунта с целью анализа безопасности и устранения текущих неисправностей, нужно включить сервис AWS CloudTrail в Консоли управления AWS. Дополнительные сведения см. в разделе Logging AWS CodePipeline API calls by Using AWS CloudTrail.
Какие лимиты предусмотрены для сервиса AWS CodePipeline?
Сведения о лимитах сервисов см. в разделе Limits.
Как получать оповещения или предупреждения о любых событиях в AWS CodePipeline?
Можно создать оповещения для событий, влияющих на ваши конвейеры. Оповещения будут приходить в виде сообщений от сервиса Amazon SNS. Каждое оповещение будет включать в себя сообщение о состоянии, а также ссылку на ресурсы, где возникло событие, ставшее причиной оповещения. Оповещения предоставляются бесплатно, однако плата может начисляться за использование других сервисов AWS при оповещении, например Amazon SNS. Чтобы узнать, как начать работу с оповещениями, см. соответствующее руководство пользователя. Кроме того, клиенты, использующие AWS Chatbot, могут настроить отправку оповещений в каналы Slack или чат‑комнаты Amazon Chime. Подробную информацию см. здесь.
Партнеры
Что необходимо сделать для интеграции с AWS CodePipeline?
Если вы хотите стать партнером AWS и интегрировать свой сервис для разработчиков с AWS CodePipeline, напишите нам по адресу codepipeline-request@amazon.com.
Безопасность
Можно ли использовать AWS Identity and Access Management (IAM) для управления доступом к AWS CodePipeline?
Да. AWS CodePipeline поддерживает разрешения на уровне ресурсов. Можно указать пользователей, которые имеют доступ к конвейеру, а также действия, которые они могут выполнять. К примеру, можно предоставить пользователям доступ к конвейеру в режиме «только чтение», если вы хотите, чтобы они могли посматривать состояние конвейера, но не могли изменять конвейер. Кроме того, можно установить разрешения для любых стадии или действия в конвейере. Дополнительную информацию об использовании IAM с AWS CodePipeline см. в справке по правам доступа.
Можно ли разрешить доступ к конвейеру, который находится в одном аккаунте AWS, пользователю IAM из другого аккаунта AWS?
Да. Можно создать роль IAM в аккаунте AWS, которому принадлежит конвейер, чтобы делегировать права доступа к конвейеру и любым связанным с ним ресурсам пользователю IAM из другого аккаунта. Чтобы ознакомиться с возможностями разрешения подобного доступа к разным аккаунтами, см. такие разделы пошагового руководства: Делегирование прав доступа к нескольким своим аккаунтам AWS, используя роли IAM, и Настройка доступа к конвейеру из нескольких аккаунтов.
Регионы
В каких регионах доступен сервис AWS CodePipeline?
Сведения о доступности сервиса CodePipeline по регионам см. на странице Продукты и сервисы по регионам.
Оплата
Какова стоимость использования сервиса AWS CodePipeline?
Сведения о стоимости сервиса AWS CodePipeline см. на странице цен.