gpt4 book ai didi

amazon-web-services - AWS CDK - 从资源的逻辑 ID 中排除阶段名称

转载 作者:行者123 更新时间:2023-12-03 07:14:59 29 4
gpt4 key购买 nike

我有一个 CDK 项目,最初是通过 CLI 部署的。我现在将其包装在管道构造中。

旧:

Project  
|
Stacks
|
Resources

新:

Project
|
Pipeline
|
Stage
|
Stacks
|
Resources

我遇到的问题是,有些资源我不想在应用程序中删除,但是添加阶段会导致逻辑 ID 从 Stage-Stack-Resource 更改为 堆栈资源。我发现this article声称您可以向资源提供“默认”ID,并使其在创建逻辑 ID 的过程中不被使用。但是由于某种原因,当我将默认 ID 传递给阶段时,它只是使用该“默认”文字值而不是省略它。

最终目标是我可以保留现有的 cloudformation 资源,但通过此管道部署它们。

最佳答案

您可以像这样手动覆盖逻辑 ID:

S3 示例:

const cfnBucket = s3Bucket.node.defaultChild as aws_s3.CfnBucket;
cfnBucket.overrideLogicalId('CUSTOMLOGICALID');

但是,如果您最初没有指定逻辑 ID 并且现在指定了,CloudFormation 将删除原始资源并使用新的自定义逻辑 ID 创建一个新资源,因为 CloudFormation 通过逻辑 ID 来识别资源。


Stage 是您定义的内容,与 CloudFormation 无关。您可能在堆栈名称或资源名称中使用它,这就是它包含在逻辑 ID 中的原因。

根据您的项目描述,不删除任何资源的唯一选择是:使管道阶段之一使用与部署的 CLI 完全相同的堆栈名称和资源名称(不带 stage)版本。

关于amazon-web-services - AWS CDK - 从资源的逻辑 ID 中排除阶段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75023049/

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