【问题标题】:Pulumi - How can I remove imported resources from my stack without deleting them from aws?Pulumi - 如何从堆栈中删除导入的资源而不从 aws 中删除它们?
【发布时间】:2021-05-15 15:13:27
【问题描述】:
我在文档中没有看到有关如何从我的堆栈中删除导入资源的任何选项。如果我尝试从我的代码中删除资源的引用,我会在运行 pulumi up 时收到以下错误:
error: Preview failed: refusing to delete protected resource 'urn:pulumi:dev::my-cloud-infrastructure::aws:iam/instanceProfile:InstanceProfile::EC2CodeDeploy'
【问题讨论】:
标签:
amazon-web-services
pulumi
【解决方案1】:
正如 Pulumi Slack 社区频道中的回答,可以使用命令:
pulumi state delete <urn>
这将从您的状态文件中删除引用,但不会从 aws 中删除。
此外,如果资源受到保护,您首先必须取消保护它或使用标志 --force 运行上述命令。
【解决方案2】:
对于“笨重”的操作,您可以将堆栈导出为 JSON,删除资源并将其重新导入 (docs):
# Get the current stack as json:
pulumi stack export --file stack.json
# Delete what you don't want from your stack file and then:
pulumi stack import --file stack.json