AWSCloudFormationDrift返回不同的结果,因为对象顺序没有得到保持
创始人
2024-09-24 07:01:25
0

AWS CloudFormation Stack 调用 Drift API 时,会返回 Stack 中资源的状态和模板之间的差别。然而,由于 CloudFormation 对象的顺序不指定,返回的结果可能会因为 JSON 对象顺序的不同而有所不同。以下是一个示例模板:

{
  "Resources": {
    "EC2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "ImageId": "string",
        "InstanceType": "string",
        "Tags": [
          {
            "Key": "Name",
            "Value": "My EC2 Instance"
          },
          {
            "Key": "Environment",
            "Value": "Production"
          }
        ]
      }
    }
  }
}

在这个示例中,Tags 数组中对象的顺序是不指定的。因此,当你使用 Drift API 来比较当前 Stack 的状态和模板时,返回的结果可能会因为顺序的不同而发生变化。

为了解决这个问题,可以使用任意 JSON 比较库,如 JSON Compare,来忽略对象顺序的变化。例如,在 Python 中,可以使用以下代码来比较模板和 Stack 状态的差异:

import json
from json_compare import json_compare

template = {
  "Resources": {
    "EC2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "ImageId": "string",
        "InstanceType": "string",
        "Tags": [
          {
            "Key": "Name",
            "Value": "My EC2 Instance"
          },
          {
            "Key": "Environment",
            "Value": "Production"
          }
        ]
      }
    }
  }
}

stack_status = {
  "Resources": {
    "EC2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "ImageId": "string",
        "InstanceType": "string",
        "Tags": [
          {
            "Key": "Environment",
            "Value": "Production"
          },
          {
            "Key": "Name",
            "Value": "My EC2 Instance"
          }
        ]
      }
    }
  }
}

result = json_compare(template, stack_status, ignore_list_order=True)

if result:
  print("Drift detected.")
else:
  print("No drift detected.")

在这个示例中,我们使用了

相关内容

热门资讯

一分钟了解!线上德州辅助软件有... 一分钟了解!线上德州辅助软件有用吗,微扑克辅助器ios,透视教程(最初真的是有挂)是一款可以让一直输...
透视黑科技!hhpoker辅助... 1、透视黑科技!hhpoker辅助下载,闽游app辅助器,必赢教程(有挂辅助)。2、闽游app辅助器...
分享认知!微扑克wpk有挂吗,... 自定义wepoke辅助技巧系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,...
透视黑科技!wepoker辅助... 1、透视黑科技!wepoker辅助器安装包,微信牵手跑胡子辅助工具,玩家教你(有挂教程)。2、微信牵...
玩家必备攻略!wpk机器人,德... 玩家必备攻略!wpk机器人,德扑之星ai代打,2025新版技巧(原本是真的有挂);小薇(透视辅助)致...
透视线上!aapoker辅助器... 透视线上!aapoker辅助器是真的吗,丰城呱呱辅助器,德州论坛(有挂透视);大神普及一款德州ai内...
重大通报!wpk有修改器吗,w... 重大通报!wpk有修改器吗,wpk俱乐部,科技教程(其实真的是有挂)您好,wpk俱乐部,确实是有挂的...
玩家爆料!德扑线上有机器人吗,... 玩家爆料!德扑线上有机器人吗,德州ai辅助软件,2025新版总结(切实真的是有挂)是一款可以让一直输...
透视ai!wpk辅助插件,天天... 透视ai!wpk辅助插件,天天开心王国有挂吗,教你教程(有挂软件)是由北京得天天开心王国有挂吗黑科技...
热门推荐!德州微扑克外挂是真的... 热门推荐!德州微扑克外挂是真的吗,wpk透明挂,技巧教程(一贯存在有挂)1)wpk透明挂辅助挂:进一...