Help us understand the problem. What is going on with this article?

CodePipelineのECSデプロイをキャンセルする方法

More than 1 year has passed since last update.

CodePipelineによるECSへのデプロイステージをキャンセルする方法をAWSに問い合わせました。

概要としては以下の通りです。

  • デプロイのタイムアウトは60分(現状この値を変更できない)
  • アクションの中断は手動で行えない(代替案は後述)

なお上記の2点については、AWSの製品開発チームにフィードバックしているとのことです。

「アクションの中断を手動で行えるようにしたい」および「アクションのタイムアウト時間を変更したい」というご要望については、既に他のお客様からも機能追加のご要望をいただいております。
本お問い合わせにつきましても、機能追加要望として製品開発チームにフィードバックさせていただきます。

何が問題かというと、新しいコンテナがヘルスチェックの失敗により落ちてしまった場合、再度新しいコンテナの立ち上げが60分間繰り返される点です。そのためのキャンセル方法を、AWSサポートが代替案として紹介してくださいました。

パイプラインの実行中に「パイプラインの設定変更」を行うことにより、擬似的にパイプラインの実行を中断することが可能でございます。

マネジメントコンソールより実行中のパイプラインを選択して「編集」をクリックし、例えば実行中のアクションの "アクション名" を変更して「保存」することで、パイプラインの実行が中断されることを当方でも検証により確認しております。
「パイプラインの実行を中断するためにパイプラインを編集する」といった操作は想定外の使用方法であることをご認識いただいた上で、こちらの代替案によりお客様のご要件を満たすことが可能か、ご確認いただけますと幸いです。

ということらしいです。
Terraform上からでもstage > action > nameを別の名前にすればキャンセルできます。(下の例ではDeployからDeploysにするとキャンセルされる)

codepipeline.tf
resource "aws_codepipeline" "application" {
  name     = "my-application-pipeline"
  [.....]

  stage {
    name = "ProductionDeploy"

    action {
      name            = "Deploy"
      category        = "Deploy"
      owner           = "AWS"
      provider        = "ECS"
      input_artifacts = ["imagedefinitions"]
      version         = "1"

      configuration {
        ClusterName = "${aws_ecs_cluster.this.name}"
        ServiceName = "${aws_ecs_service.this.name}"
        FileName    = "imagedefinitions.json"
      }
    }
  }
}

以上です。CodePipelineにはお世話になっているので、上記の改善を心よりお待ちしております。

hareku
AWS / Go / Laravel / Vue.js / React
https://mycode.rip/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした