gpt4 book ai didi

python - 自动检查并从 CloudFormation 模板中删除资源 #20611

转载 作者:行者123 更新时间:2023-12-03 07:39:47 25 4
gpt4 key购买 nike

是否有任何方法可以从 sam 部署命令中排除模板中的某些资源?

我的意思是,它的工作方式与 sam validate 类似,但如果不符合我的规则,则会对模板进行修改。

例如,我想检查我的 CloudFormation 模板是否具有 "Type": "AWS::CodePipeline::Pipeline" 部分,如果有,请将其删除。

您有任何工具或参数可以实现这一目标吗?它也可能发生在 CDK Synth 命令中,因为这就是我生成模板的方式(代码几乎不可编辑),或者发生在 sam deploy 命令(或任何其他库)中。

有关信息,我还在运行我的堆栈,从 GitLab 运行程序部署命令,因此我无法提示它。

谢谢!

最佳答案

我遇到了类似的问题,但我必须在合成之后从模板中提取一些内容。我不知道您的设置,但也许我为我的问题找到的解决方案在您的用例中也很有用。

当然,我有一个用 CDK 编写的 CodePipeline 。该管 Prop 有合成步骤,其中制作了标准安装和合成 Material 。我将标准命令提取到 synth.sh 文件中,并通过提取所需的命令扩展了该文件。我为此使用了jqjq 是一个非常强大的用于 JSON 处理的 CLI 工具,因此您可以将它与您的 template.json 一起使用。 CodeBuild 默认包含 jq

对于您提供的场景,它会是这样的:

#! /usr/bin/env bash

npx cdk synth
fileName=$(find . -name "*.template.json") #find the template file
jq '(del(.Resources | .[] | select(.Type=="AWS::CodePipeline::Pipeline")))' $fileName > newTemplate.json #or $fileName if You want to override the template

对于其他类型也同样如此。您可以定义一个 JSON 文件,在其中指定应删除的内容并再次使用 jq 迭代文件条目。

关于python - 自动检查并从 CloudFormation 模板中删除资源 #20611,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72491111/

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