gpt4 book ai didi

typescript - 如何使用 AWS CDK 检查自定义 VPC 是否已存在?

转载 作者:行者123 更新时间:2023-12-05 06:02:05 26 4
gpt4 key购买 nike

我正在执行 CDK 脚本并使用默认 VPC,我有以下代码:

vpc = ec2.Vpc.fromLookup(this, "UseDefaultVPC", {
isDefault: true
});

要使用现有的 VPC(不是默认的),我有这段代码(将按现有的标签搜索):

vpc = ec2.Vpc.fromLookup(this, "UseCustomVPCAlreadyCreated", {
tags: {
environment: project.environment,
project_name: project.name
}
});

我需要在第一次创建 VPC,并在更新时重新使用。像这样:

尝试使用已有的vpc,如果不存在则创建

try {
vpc = ec2.Vpc.fromLookup(this, "UseCustomVPCAlreadyCreated", {
tags: {
environment: project.environment,
project_name: project.name,
},
});
console.log("Using a custom VPC: ", vpc.vpcId);
} catch (error) {
vpc = new ec2.Vpc(this, "CreateNewVPC", {
cidr: "10.0.0.0/16",
maxAzs: 99, // 99 to use all AZs
});
console.log("VPC does not exist, creating it: ", vpc.vpcId);
}

但是我的 try catch 不起作用。输出是:

它试了两次都失败了,不要去catch:

$ cdk deploy --profile fagianijunior
Using a custom VPC: vpc-12345
Using a custom VPC: vpc-12345
[Error at /WordpressStack] Could not find any VPCs matching {"account":"NNNNNNNNNNNN","region":"us-east-1","filter":{"tag:environment":"staging","tag:project_name":"wordpress"},"returnAsymmetricSubnets":true}
Found errors

最佳答案

您不必检查 VPC 是否存在。 AWS 在使用第二个参数作为标识符创建它时对其进行检查。如果已经有一个具有相同 ID 的 VPC,它会更新它(如果有更改)。如果没有具有给定 id 的 VPC,则会创建它。因此,最后,您只需创建您想要的状态,AWS 要么创建新状态,要么修改现有状态,或者如果您的模板没有变化,则什么都不做。

关于typescript - 如何使用 AWS CDK 检查自定义 VPC 是否已存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67026214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com