Terraform创建AWS CodePipeline时Deploy ActionType不可用问题求助
解决AWS CodePipeline ECS Deploy动作在ap-south-1区域的不可用问题
你遇到的这个InvalidActionDeclarationException错误,核心原因是ap-south-1(孟买)区域并不支持你指定的ECS Deploy动作版本1。AWS的CodePipeline动作类型支持情况是分区域的,不同区域对同一动作的版本支持可能存在差异。
解决步骤:
确认区域支持的动作版本
你可以通过AWS CLI命令查看ap-south-1区域支持的ECS Deploy动作版本:aws codepipeline list-action-types --region ap-south-1 --filter "category=Deploy,owner=AWS,provider=ECS"执行后会返回该区域可用的动作版本,通常ap-south-1支持的是版本2。
修改Terraform配置中的动作版本
把你的aws_codepipeline资源里的version字段从"1"改成"2"即可。修改后的配置如下:resource "aws_codepipeline" "pipeline" { name = "${var.cluster_name}-pipeline" role_arn = "${aws_iam_role.codepipeline_role.arn}" artifact_store { location = "${aws_s3_bucket.source.bucket}" type = "S3" } stage { name = "Production" action { name = "Deploy" category = "Deploy" owner = "AWS" provider = "ECS" input_artifacts = ["imagedefinitions"] version = "2" # 这里改成版本2 configuration { ClusterName = "${var.cluster_name}" ServiceName = "${var.app_service_name}" FileName = "imagedefinitions.json" } } } }
额外说明:
版本2的ECS Deploy动作和版本1的核心配置参数基本一致,不需要额外调整其他配置项。修改后重新执行terraform apply应该就能成功创建CodePipeline了。
内容的提问来源于stack exchange,提问作者the-petrolhead
相关产品推荐
相关产品推荐

