簡體   English   中英

使用 JQ 從 CloudFormation.template.json 中刪除塊

[英]Using JQ to delete blocks from CloudFormation.template.json

我正在使用 jq(在 bash 上)從 json 模板中刪除塊。 通過使用 CloudFormation 模板中的“類型”元素,我目前正在刪除 50% 的內容:

jq '(del(.Resources | .[] | select(.Type=="AWS::CodePipeline::Pipeline")))' $fileName > newTemplate1.json

我還需要在 Type 塊之前刪除包含“cdkpipelinePipeline”的所有資源:

  { "developcdkpipelinePipeline": {
      "Type": "AWS::CodePipeline::Pipeline",
      "Properties": {
        "RoleArn": {
          "Fn::GetAtt": [
            "developcdkpipelinePipelineRole",
            "Arn"
          ]
        }
    }
  },

    "developcdkpipelinePipelineRole": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "codepipeline.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Tags": [
          {
            "Key": "Application",
            "Value": "develop"
          }
        ]
      },
      "DependsOn": [
        "AuroraNestedStackAuroraNestedStackResource"
      ],
      "Metadata": {
        "aws:cdk:path": "develop-cicd-stack/develop-cdkpipeline/Pipeline/Role/Resource"
      }
    }
  }, 
...

您對如何實現這一目標有任何線索嗎? 我基本上希望從我的模板中刪除這兩個塊。

謝謝你

您可以在管道中使用以下 jq 片段:

with_entries( select(.key|contains("cdkpipelinePipeline")|not) )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM