반응형
다른 지역에 Terraform 코드 파이프라인 배포
저는 새로 출시된 지역(자카르타)에 서비스를 배치하려고 합니다. 하지만 Codepipeline을 사용할 수 없는 것 같아 가까운 지역(싱가포르)에 Codepipeline을 만들어 자카르타 지역에 배치해야 합니다. 또한 테라폼에 코드파이프라인을 설치하는 것도 처음이라 제대로 하는지 잘 모르겠어요.
추신. 이 모든 인프라의 기본 지역은 "자카르타" 지역입니다. 배포 부품이 없는 상태에서 문제가 발생하므로 배포 부품은 제외합니다.
resource "aws_codepipeline" "pipeline" {
name = local.service_name
role_arn = var.codepipeline_role_arn
artifact_store {
type = "S3"
region = var.codepipeline_region
location = var.codepipeline_artifact_bucket_name
}
stage {
name = "Source"
action {
name = "Source"
category = "Source"
owner = "AWS"
provider = "CodeStarSourceConnection"
version = "1"
output_artifacts = ["SourceArtifact"]
region = var.codepipeline_region
configuration = {
ConnectionArn = var.codestar_connection
FullRepositoryId = "${var.team_name}/${local.repo_name}"
BranchName = local.repo_branch
OutputArtifactFormat = "CODEBUILD_CLONE_REF" // NOTE: Full clone
}
}
}
stage {
name = "Build"
action {
name = "Build"
category = "Build"
owner = "AWS"
provider = "CodeBuild"
version = "1"
input_artifacts = ["SourceArtifact"]
output_artifacts = ["BuildArtifact"]
run_order = 1
region = var.codepipeline_region
configuration = {
"ProjectName" = local.service_name
}
}
}
tags = {
Name = "${local.service_name}-pipeline"
Environment = local.env
}
}
위는 제가 만든 Terraform 구성인데 다음과 같은 오류가 나타납니다:
│ Error: region cannot be set for a single-region CodePipeline
루트 블록에서 영역을 제거하려고 하면 테라폼이 기본 영역인 자카르타 영역에 액세스하려고 합니다(그리고 자카르타에서 코드 파이프라인을 사용할 수 없기 때문에 실패합니다).
│ Error: Error creating CodePipeline: RequestError: send request failed
│ caused by: Post "https://codepipeline.ap-southeast-3.amazonaws.com/": dial tcp: lookup codepipeline.ap-southeast-3.amazonaws.com on 103.86.96.100:53: no such host
다른 지역의 공급자를 설정해야 합니다. 예를 들어:
provider "aws" {
alias = "singapore"
region = "ap-southeast-1"
}
그런 다음 별칭을 사용하여 해당 지역에 파이프라인을 배포합니다:
resource "aws_codepipeline" "pipeline" {
provider = aws.singapore
name = local.service_name
role_arn = var.codepipeline_role_arn
# ...
}
이 오류가 발생합니다. 오류: 단일 지역 코드 파이프라인에 대해 지역을 설정할 수 없습니다
단일 영역 파이프라인을 생성하려는 경우 이 오류 상태를 제공할 수 없습니다. 따라서 코드 파이프라인 리소스 블록의 articipal_store 인수에서 영역을 제거하십시오. 이렇게 하면 문제가 해결됩니다.
반응형
'개발하자' 카테고리의 다른 글
Kubernetes yaml 파일로 동적 값을 설정하는 방법 (0) | 2023.07.13 |
---|---|
TypeScript: 개체가 'null'일 수 있습니다 (0) | 2023.07.12 |
주피터 노트북에서 문서를 올바르게 포맷할 수 있는 방법이 있나요? (0) | 2023.07.11 |
Python 사전에서 고유 키 수 계산 (1) | 2023.07.10 |
두 요소 "점프" 사이의 부드러운 전환 (0) | 2023.07.10 |