반응형
각각을 위해 사용하기 위해 리팩터링한 후 테라폼 리소스를 유지하는 방법은 무엇입니까?
현재 저는 인프라에서 작은 리팩터를 하고 있습니다. 내 프로젝트의 현재 버전은 다음과 유사합니다: 그리고 변수를 재사용하기 위해 for_each를 사용하려고 합니다.
resource "google_cloud_scheduler_job" "job" {
name = "Create_All_Dossier_Summary"
description = "desc1"
schedule = "0 19 * * 1"
time_zone = "America/Sao_Paulo"
attempt_deadline = "320s"
retry_config {
retry_count = 1
}
http_target {
http_method = "POST"
uri = "<some-url>"
}
}
그리고 다음과 같은 것으로 업그레이드하려고 합니다:
variable "description" {
default = ["desc1", "desc 2"]
}
resource "google_cloud_scheduler_job" "job" {
for_each = toset(var.description)
name = "Create_All_Dossier_Summary"
description = each.value
schedule = "0 19 * * 1"
time_zone = "America/Sao_Paulo"
attempt_deadline = "320s"
retry_config {
retry_count = 1
}
http_target {
http_method = "POST"
uri = "<some-url>"
}
}
구성은 괜찮지만 실행 후에 테라폼이 제 오래된 것을 파괴하고 있습니다. 테라폼은 제가 원하는 것이 아닙니다. 첫 번째 것이 이미 있고 구성이 같기 때문에 저는 단지 두 번째 것을 만들려는 것입니다.
이 리팩터를 수행한 후 테라포름에게 첫 번째 리소스를 다시 만들지 말라고 할 수 있는 방법이 있습니까?
Plan: 2 to add, 0 to change, 1 to destroy.
# google_cloud_scheduler_job.job will be destroyed
# google_cloud_scheduler_job.job["desc 2"] will be created
# google_cloud_scheduler_job.job["desc1"] will be created
BTW: 저는 물체의 목록을 사용하려고 합니다. 저는 여기서 문자열의 목록을 사용했습니다. 왜냐하면 그것이 시연하기 쉽기 때문입니다.
Terraform 구성에서 리소스의 네임스페이스/주소가 변경되면 다음과 같은 하위 명령을 사용하여 해당 ID의 이름을 변경해야 합니다:
terraform state mv google_cloud_scheduler_job.job 'google_cloud_scheduler_job.job["desc 2"]'
두 번째 리소스 주소는 구문에서 의 사용으로 인해 셸이 인수로 올바르게 해석하려면 완전히 리터럴 문자열로 캐스팅되어야 합니다.
CI 내부에서 실행되는 테라폼 코드와 관련하여 여기에 설명된 '이동' 블록을 사용하는 것이 더 낫다고 생각합니다. 수동 터미널 명령을 수행하지 않고 '테라폼 적용'을 통해 모든 작업을 수행하도록 하는 방법입니다. 당신의 블록은 이렇게 보여야 합니다.
moved {
from = google_cloud_scheduler_job.job
to = google_cloud_scheduler_job.job["desc 2"]
}
나는 보통 for_each와 블록을 한 후 바로 넣지만, 여기가 그것에 가장 적합한 장소인지 확신할 수 없다
반응형
'개발하자' 카테고리의 다른 글
Kubernetes 서비스 외부 IP 보류 중 (0) | 2023.05.07 |
---|---|
펄럭이는 앱에 젤로케이터 패키지를 추가할 때 오류가 발생했습니까? (0) | 2023.05.06 |
iOS 시뮬레이터에서 릴리스 모드로 앱을 실행하는 중 문제 발생 Flooth (0) | 2023.05.05 |
사용 가능한 모든 언어 목록 보기 (0) | 2023.05.04 |
Python을 사용하여 두 개의 궤적 쌍 사이의 지시선과 추종선 (0) | 2023.05.04 |