我正在使用Terraform在AWS上管理IaC。我的terraform项目创建了一个s3存储桶,后来我将s3存储桶terraform移到了另一个项目。所以我删除了项目中所有与s3相关的代码。运行terraform apply
时出现错误,提示Error: error deleting S3 Bucket (xxxx): BucketNotEmpty: The bucket you tried to delete is not empty
我知道terraform会尝试删除存储桶,因为我从那里删除了代码。
我尝试使用terraform refresh
,但遇到了禁止的错误:Error: Forbidden: Forbidden
status code: 403, request id: 8351F9C3663AF8FB, host id:
。
我知道我可以从本地删除terraform状态文件,但这需要我导入所有资源。我该如何解决这个问题?我正在使用本地状态而不是远程状态。
答案 0 :(得分:4)
首先,您需要通过运行terraform state rm <resource-id>
从状态文件中删除资源,然后需要从代码库中删除关联的配置。运行init
,plan
之后,您将看到不需要更改
答案 1 :(得分:0)
经过一番搜索,我发现解决方案是使用terraform state rm
从本地状态文件中删除s3资源。
答案 2 :(得分:0)
您可以通过以下方式删除添加到 Terraform 的任何资源:-
列出所有状态:- 地形状态列表
删除您想要的状态:- 地形状态 rm
答案 3 :(得分:0)
第 1 步:列出状态
$ terraform 状态列表
data.terraform_remote_state.rg
azurerm_subnet.vsubnet
azurerm_virtual_network.vnet
第 2 步:删除选中状态。
$ terraform state rm azurerm_subnet.vsubnet
删除了 azurerm_subnet.vsubnet
已成功移除 1 个资源实例。