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.")

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

相关内容

热门资讯

透视安卓版!hhpoker有辅... 透视安卓版!hhpoker有辅助的吗,wepoker有辅助工具吗,积累教程(切实是有挂)-哔哩哔哩1...
透视总结!wpk真的有透视嘛(... 透视总结!wpk真的有透视嘛(透视)开挂辅助app(竟然真的有挂)-哔哩哔哩1、这是跨平台的wpk真...
透视ai代打!aapoker ... 透视ai代打!aapoker ai插件,pokernow辅助工具,指南书教程(都是有挂)-哔哩哔哩1...
透视辅助器!we poker游... 透视辅助器!we poker游戏下(透视)开挂辅助app(总是真的是有挂)-哔哩哔哩1、进入游戏-大...
透视免费!wepoker辅助器... 透视免费!wepoker辅助器软件下载,we poker辅助器v3.3,绝活教程(原来是有挂)-哔哩...
透视苹果版!hhpoker怎么... 透视苹果版!hhpoker怎么开透视(透视)开挂辅助攻略(果然是真的挂)-哔哩哔哩1、打开软件启动之...
透视安装!淘宝买wepoker... 透视安装!淘宝买wepoker透视有用吗,hhpoker为什么一直输,妙计教程(其实真的是有挂)-哔...
透视科技!wpk安卓下载辅助(... 透视科技!wpk安卓下载辅助(透视)开挂辅助攻略(真是真的是有挂)-哔哩哔哩一、wpk安卓下载辅助软...
透视数据!德普之星怎么开辅助,... 透视数据!德普之星怎么开辅助,wepoker智能辅助插件,模块教程(原来是有挂)-哔哩哔哩;1、下载...
透视代打!hhpoker为什么... 透视代打!hhpoker为什么一直输(透视)开挂辅助攻略(一贯有挂)-哔哩哔哩1、下载好hhpoke...