Я установил AWS Codepipeline, который исходит из Github, создается с помощью CodeBuild, а затем развертывается в экземпляре ec2 через CodeDeploy. Этот экземпляр ec2 является средой разработки.
Поскольку моя команда решила, что мы пока не будем использовать этот сервер / код, мы остановили экземпляр ec2. Поэтому я хотел бы временно приостановить работу Codepipeline (CodeBuild и CodeDeploy не бесплатны, даже по очень маленькой цене ...) Однако я не могу найти вариант для временного отключения codepipeline.
Вопрос:
Используя интерфейс командной строки AWS, вы можете отключить запускающее событие.
Синтаксис команды:
aws events disable-rule --name [name of rule]
Чтобы узнать название правила, вы просматриваете все правила в консоли CloudWatch. Возможно, вам придется открыть каждый из них, чтобы узнать, какое правило для вашего конвейера. Чтобы более точно найти правило для вашего конвейера, вы можете запустить
aws events list-rule-names-by-target --target-arn [arn of pipeline]
Чтобы получить представление о конвейере, вы можете
aws codepipeline get-pipeline --name [name of pipeline]
и посмотрите в результате на metadata.pipelineArn.
Если вы не запускаете CodePipeline с чем-то (например, изменением или правилом события CloudWatch), он не запустится. Предполагая, что вы не вносите никаких изменений, ваш конвейер не должен работать, и вы не должны нести расходы из CodeDeploy или CodeBuild.
Если вам все еще нужно отправить изменения, но вы не хотите, чтобы ваш конвейер работал, вы можете создать ветку, на которую вы не нажимаете, а затем обновить свой конвейер, чтобы использовать эту ветвь.
Преимущество этих подходов в том, что ваш конвейер по-прежнему будет готов к работе, если вам когда-нибудь понадобится внести изменения в спешке.
Другой вариант - отключить переход этапа из исходного этапа (щелкните стрелку под исходным этапом). Ваш конвейер по-прежнему будет работать (и, следовательно, вы по-прежнему будете нести расходы CodePipeline, если вы внесете изменения), но, по крайней мере, ни один из более поздних этапов не будет запущен.
Лучший вариант - перейти в репозиторий github, щелкнуть настройки, щелкнуть веб-перехватчики, найти тот, который находится в aws (например, https://us-east-1.webhooks.aws/trigger) и щелкните редактировать. рядом с ним. Затем прокрутите вниз до флажка "Активно" и снимите его. Это отключает отправку из github в кодовую строку, поэтому сборка будет происходить только тогда, когда вы запустите ее вручную, и вы не отключили ни одну из своих конфигураций AWS.
Я предпочитаю последний вариант, предложенный TimB, который должен отключить один из переходов:
aws codepipeline disable-stage-transition --pipeline-name my-pipeline \
--stage-name Test --transition-type Inbound --reason "my-reason"