terraform - 创建 API 网关资源的 Terraform 错误抱怨具有相同父级的另一个资源已经具有此名称
问题描述
我正在创建一个名为“lang”的 API Gateway 资源:
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”资源,我该如何更改?这对我来说似乎是一个基本的循环问题。
解决方案
令人讨厌的是,这是一个深夜的错字...
我(故意)复制粘贴了该resource "aws_api_gateway_resource" "lang"
块,并且在为自己的目的浏览和更新所有副本时忘记重命名副本。
推荐阅读
- php - $request->get_param('some_param') 的问题
- python - 如何将多个数组放入一个带有标题 Python 的 csv 文件
- visual-studio-code - .vscode/settings.json 和 .code-workspace 有什么区别
- php - 403 The request could not be seen response when hit the Cowin API
- swift - FSCalendar - 我想在 longPressGesture 上选择日期。迅速
- android - 比较两个 Android Rect 位置的更优雅的方法?
- python - 通过 pip -r requirements.txt 安装依赖项
- python - Django 模板四舍五入到最近的非零
- angular - 如何在 Angular 11 中重新渲染元素
- sql - 会计在 SQL(ssms) 中计算借方贷方