Я создаю ресурс шлюза API под названием 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
}
После успешного создания API при следующем запуске terraform apply
я получаю следующую ошибку:
Error: Error creating API Gateway Resource: ConflictException: Another resource with the same parent already has this name: lang
Вышеупомянутый ресурсный блок абсолютно, определенно единственный с таким именем. Я достаточно погуглил по этому поводу, чтобы понять, что terraform жалуется на то, что ресурс под названием lang уже существует и не может быть воссоздан. Я не знаю, как его сначала уничтожить.
Я попытался добавить это в свой сценарий:
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
}
}
...но безрезультатно.
Должно ли свойство create_before_destroy
не разрушать API и не приводить к его воссозданию, или только этап?
Как я могу внести изменения в ресурс lang, если блок ресурсов не может этого сделать? Мне это кажется фундаментальной круговой проблемой.
lang
(не ресурс TF) уже существует? Вы создавали его вручную с помощью AWS console / cli / sdk? - person Marcin   schedule 23.02.2021