删除资源后如何强制Pulumi创建资源

How to force Pulumi to create a resource after deleting one

我试图重命名 Pulumi 中的 aws.lambda.Permission 资源。 似乎在 Pulumi 中重命名资源是不可能的。具体原因不知道,不过没关系。

所以,我希望 Pulumi 创建一个新的并删除现有的。但问题是 AWS 不允许我们创建具有相同内容的重复 Permission 资源。因此,Pulumi 未能创建新的,因为新的完全相同Permission只是名称不同。

我想我需要一些选项让 Pulumi 在创建之前删除现有的。 Pulumi有提供吗?

I was trying to rename aws.lambda.Permission resource in Pulumi. It seems that renaming resources is impossible in Pulumi. I don't know the detailed reason, but that's ok.

这是云提供商的限制 API。如果你想要一个新名称的资源,你必须创建一个全新的资源

So, I expected Pulumi to create a new one and delete the existing one

Pulumi 默认情况下会先创建再删除,以减少负载均衡器后面的对象的停机时间。这就是我们推荐使用自动命名的原因。有关详细信息,请参阅 here

I think that I need some options to make Pulumi delete the existing one before creating at this point. Does Pulumi provide any?

是,使用deleteBeforeReplace

const loggingPermission = new aws.lambda.Permission("loggingPermission", {
    action: "lambda:InvokeFunction",
    "function": loggingFunction.name,
    principal: "logs.eu-west-1.amazonaws.com",
    sourceArn: pulumi.interpolate`${defaultLogGroup.arn}:*`,
}, { deleteBeforeReplace: true } );