- 首先,在Terraform中创建命名空间:
resource "aws_codepipeline" "my-pipeline" {
name = "my-pipeline"
role_arn = "${aws_iam_role.pipeline-role.arn}"
artifact_store {
location = "${var.artifact_store_location}"
type = "S3"
}
stage {
name = "Source"
action {
name = "Source"
category = "Source"
owner = "AWS"
provider = "S3"
version = "1"
configuration {
BucketName = "${var.source_s3_bucket}"
ObjectKey = "${var.source_s3_object}"
}
output_artifacts = ["source"]
}
}
stage {
name = "Build"
action {
name = "Build"
category = "Build"
owner = "AWS"
provider = "CodeBuild"
version = "1"
configuration {
ProjectName = "${var.build_project_name}"
}
input_artifacts = ["source"]
output_artifacts = ["build"]
}
}
stage {
name = "Deploy"
action {
name = "Deploy"
category = "Deploy"
owner = "AWS"
provider = "ECS"
version = "1"
configuration {
ClusterName = "${var.cluster_name}"
ServiceName = "${var.service_name}"
FileName = "${var.build_artifact_name}"
}
input_artifacts = ["build"]
}
}
}
resource "aws_codepipeline" "my-pipeline2" {
name = "my-pipeline2"
...
}
- 对于每个操作,使用前缀“namespace-”,在AWS中创建唯一的名称:
stage {
name = "Deploy"
action {
name = "namespace-Deploy"
category = "Deploy"
owner = "AWS"
provider = "ECS"
version = "1"
configuration {
ClusterName = "${var.cluster_name}"
ServiceName = "${var.service_name}"
FileName = "${var.build_artifact_name}"
NameSpace = "${var.app_namespace}"
}
input_artifacts =