Terraform aws_codepipeline не может удовлетворить ограничение - PullRequest
0 голосов
/ 11 апреля 2020

Я создаю ресурс AWS CodePipeline с terraform:

resource "aws_codepipeline" "codepipeline" {
  name     = "codepipeline-tst"
  role_arn = "${aws_iam_role.codepipeline_role.arn}"

  artifact_store {
    location = "codepipeline-eu-east-1-<ACC_NUM>"
    type     = "S3"
  }

  stage {
    name = "Source"

    action {
      name             = "Source"
      category         = "Source"
      owner            = "ThirdParty"
      provider         = "GitHub"
      version          = "1"
      output_artifacts = ["artifact"]

      configuration = {
        Owner  = "MyOwner"
        Repo   = "MyRepo"
        Branch = "master"
        OAuthToken = ""
      }
    }
  }

  stage {
    name = "Deploy"

    action {
      name            = "Deploy"
      category        = "Deploy"
      owner           = "AWS"
      provider        = "CodeDeploy"
      input_artifacts = ["artifact"]
      version         = "1"
    }
  }
}

При запуске terraform apply, через 2 минуты aws_codepipeline.codepipeline: Still creating. возвращается

Error: Error creating CodePipeline: ValidationException: 1 validation error detected: Value at 'pipeline.stages.1.member.actions.1.member.configuration' failed to satisfy constraint: Map value must satisfy constraint: [Member must have length less than or equal to 1000, Member must have length greater than or equal to 1]

Изменить:

Новый этап развертывания:

stage {
    name = "Deploy"

    action {
      name            = "Deploy"
      category        = "Deploy"
      owner           = "AWS"
      provider        = "CodeDeploy"
      input_artifacts = ["artifact"]
      version         = "1"
      configuration = {
        ApplicationName  = "my-app"
        DeploymentGroupName  = "bar"
      }
    }
  }

У меня есть это приложение, созданное с использованием:

resource "aws_codedeploy_app" "my-app" {
  compute_platform = "Server"
  name             = "my-app"
}

И группа с использованием:

resource "aws_codedeploy_deployment_group" "my_group-2" {
  app_name               = "my-app"
  deployment_group_name  = "bar"
  service_role_arn       = "arn..."

  ec2_tag_filter {
    key   = "aws:autoscaling:groupName"
    type  = "KEY_AND_VALUE"
    value = "MyContainerService"
  }

  auto_rollback_configuration {
    enabled = false
  }
}

1 Ответ

0 голосов
/ 11 апреля 2020

Ваше действие «Развернуть» не имеет необходимых свойств конфигурации.

Для действия CodeDeploy требуется два параметра конфигурации:

  1. Имя приложения
  2. Группа развертывания

Пожалуйста, добавьте их к этому действию.

...