You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法删除绑定AWS资源的Pulumi Stack,求解决Terraform错误

无法销毁Pulumi Node.js栈,Terraform AWS Provider提示InvalidClientTokenId错误

问题背景

尝试销毁绑定AWS S3资源的Pulumi栈时,持续收到Terraform AWS Provider的InvalidClientTokenId错误,提示安全令牌无效。但新创建的同名不同栈可以正常创建和销毁,说明AWS凭据本身有效。此前通过重建Pulumi配置文件的常规销毁流程失效,尝试设置aws:skipRequestingAccountId、重置AWS凭据、使用STS会话令牌均未解决问题。

解决方案

1. 检查并重置栈的AWS配置

当前栈可能存储了旧的或错误的AWS凭据,优先检查并更新配置:

# 查看栈当前的AWS配置
pulumi config get aws:accessKeyId
pulumi config get aws:secretAccessKey
pulumi config get aws:region

# 移除旧配置(如果存在错误条目)
pulumi config rm aws:accessKeyId
pulumi config rm aws:secretAccessKey

# 重新设置有效凭据
pulumi config set aws:accessKeyId "你的有效Access Key ID"
pulumi config set aws:secretAccessKey "你的有效Secret Access Key" --secret
pulumi config set aws:region "你的AWS区域"

# 刷新配置后尝试销毁
pulumi config refresh
pulumi destroy -s projectmikey/inlineNode/dev

2. 跳过资源状态刷新直接销毁

销毁前的资源状态刷新可能触发了凭据验证问题,尝试跳过刷新步骤:

pulumi destroy -s projectmikey/inlineNode/dev --skip-refresh

3. 手动修改Pulumi状态文件

如果上述方法无效,可直接修改栈的状态文件,移除关联的AWS资源后再销毁:

# 导出当前栈状态到文件
pulumi stack export -s projectmikey/inlineNode/dev > stack-state.json

编辑stack-state.json,删除resources数组中所有与目标AWS资源对应的条目(包括s3-website-bucket、index、bucketPolicy),然后导入修改后的状态:

pulumi stack import -s projectmikey/inlineNode/dev < stack-state.json

最后执行销毁:

pulumi destroy -s projectmikey/inlineNode/dev

4. 直接从Pulumi状态中删除资源

使用pulumi state delete命令逐个移除栈中的AWS资源,再销毁栈:

# 逐个删除状态中的资源
pulumi state delete aws:s3/bucket:Bucket::s3-website-bucket -s projectmikey/inlineNode/dev
pulumi state delete aws:s3/bucketObject:BucketObject::index -s projectmikey/inlineNode/dev
pulumi state delete aws:s3/bucketPolicy:BucketPolicy::bucketPolicy -s projectmikey/inlineNode/dev

# 销毁空栈
pulumi destroy -s projectmikey/inlineNode/dev

内容的提问来源于stack exchange,提问作者calendo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 20:00:02