Pulumi - 如何从我的堆栈中删除导入的资源而不从 aws 中删除它们?

Pulumi - How can I remove imported resources from my stack without deleting them from aws?

我在文档中没有看到任何关于如何从我的堆栈中删除导入资源的选项。如果我尝试从我的代码中删除资源的引用,我会在 运行 pulumi up:
时收到以下错误 error: Preview failed: refusing to delete protected resource 'urn:pulumi:dev::my-cloud-infrastructure::aws:iam/instanceProfile:InstanceProfile::EC2CodeDeploy'

正如 Pulumi Slack 社区频道中的回答,可以使用命令:
pulumi state delete <urn>

这将从您的状态文件中删除引用,但不会从 aws 中删除。

此外,如果资源受到保护,您首先必须取消保护它,或者 运行 带有标志 --force.

的上述命令

对于“更庞大”的操作,您可以将堆栈导出为 JSON,删除资源并将其重新导入 ():

# 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