Saya membuat sumber daya API Gateway bernama lang:
resource "aws_api_gateway_resource" "lang" {
path_part = "lang"
parent_id = aws_api_gateway_resource.api.id
rest_api_id = aws_api_gateway_rest_api.root_api.id
}
Setelah berhasil membuat API, ketika menjalankan terraform apply
kali berikutnya, saya mendapatkan kesalahan ini:
Error: Error creating API Gateway Resource: ConflictException: Another resource with the same parent already has this name: lang
Blok sumber daya di atas tentu saja satu-satunya yang memiliki nama itu. Saya sudah cukup banyak mencari di Google untuk menyadari bahwa terraform mengeluh bahwa sumber daya yang disebut lang sudah ada dan tidak dapat dibuat ulang. Yang saya tidak tahu adalah bagaimana cara menghancurkannya terlebih dahulu.
Saya telah mencoba menambahkan ini ke skrip saya:
resource "aws_api_gateway_deployment" "deployment" {
rest_api_id = aws_api_gateway_rest_api.root_api.id
stage_name = var.envName
triggers = {
redeployment = sha1(jsonencode(aws_api_gateway_rest_api.root_api.body))
}
lifecycle {
create_before_destroy = true
}
}
... tidak berhasil.
Haruskah properti create_before_destroy
pada dasarnya tidak menghancurkan API dan menyebabkannya dibuat ulang atau hanya panggungnya saja?
Bagaimana saya bisa membuat perubahan pada sumber daya lang jika blok sumber daya tidak dapat melakukannya? Bagi saya, ini tampaknya merupakan masalah melingkar yang mendasar.
lang
API (bukan sumber daya TF) sudah ada? Apakah Anda membuatnya secara manual menggunakan konsol AWS/cli/sdk? - person Marcin   schedule 23.02.2021