模型:语义云基础设施配置文件格式和对象模型
aim.models的Python项目详细描述
aim.型号
语义云基础设施的对象模型。
aim.models
解析组成aim项目的yaml文件目录并加载它们
成为一个完整的对象模型。
模型里有什么?
该模型定义了常见的逻辑云基础设施概念,如网络、帐户、 应用程序和环境。
该模型使用网络和应用程序作为配置的层次树,可以 当它们被放置在环境中时,要让它们的价值观被超越。环境生活在 网络和包含应用程序,通常表示软件开发的阶段 生命周期(SDLC),如"开发"、"准备"和"生产"。
模型有一个声明性架构,该架构显式定义模型中每个对象类型的字段。 此架构不仅声明类型(例如字符串、整数),还可以声明默认值、最小值和最大值, 约束到特定值,并定义不变量,以确保如果一个字段具有特定值,则另一个字段 字段值与此兼容。模型将在加载AIM项目时验证这些字段。
开发
使用您选择的python工具安装这个包。通常设置一个virtualenv pip在其中安装依赖项:
python -m venv env
./env/bin/pip install -e .
有使用pytest的单元测试。如果您使用的是vs代码,则可以打开 "py test enabled"设置并运行"discover unit tests"命令。
aim.models的更改日志
5.0.0(2019-08-26)
添加
新字段
aim.models.reference.filereference
解析路径并替换 由路径指示的文件值的原始值。 iapigatewayrestapi.body_文件位置使用此新字段。apigatewayrestapi和cloudwatchalarm具有 返回可用于创建对流层资源的新dict。
为ACM添加了外部_资源支持
向administrator iamuserpermission添加了只读支持
更改
多维报警现在需要指定一个
aim.ref
作为值。添加了IAM用户架构并为IAM用户加载。
添加了comma list()模式类型,用于将逗号分隔的列表加载到schema.list()
将目标参考生成移动到模型中。模型对象现在有.aim参考和 .aim参考包含其aim.ref参考的部件属性。
已修复
- 未检查不变量的资源。不变量需要由
加载程序(如果它们不包含在
zope.schema.object
字段中),该字段将运行 检查幕后。
更改
将project['ne']重命名为project['netenv']
将NATGateway段修改为AIM引用
4.0.0(2019-08-21)
添加
已将ivpPeering和ivpPeeringRoute添加到VPC对等支持模型中。
添加了在
resources/cloudtrail.yaml
中配置的cloudtrail模式IS3BucketPolicy现在有
principal
和condition
字段。principal
可以是键值字典,其中键可以是"aws"、"service"等。 值可以是字符串或列表。它是aws
字段的替代项,它将 保留以设置更简单的仅限aws的主体。条件
字段是键值筛选器的键值字典。Alarm现在有"获取报警操作"和"获取报警描述"来帮助构建报警。
cloudtrail有一个"get_accounts",它将把cloudtrail.accounts字段解析为一个列表 模型中帐户对象的数目。
iAlarm具有
说明
和
运行库ook_url
字段。函数覆盖了更广泛的ref查找范围
在模型中添加了vpcpeering。
在模型中添加了IElasticache和IElasticacheredis。
更改
monitorconfig/logsets.yaml
已重命名为monitorconfig/logging.yaml
。云表 日志记录在顶级cw_logging
键下。该架构已完全重写 以便正确建模日志组和日志集。iaccount.region、iec2keypair.region和icredentials.aws_default_region不再具有
US-WEST-2
作为默认值。区域需要明确设置。
已修复
- IAlarm.classification现在是必需字段。
3.1.0(2019-08-08)
添加
根目录中的aim-project-version.txt文件现在可以包含aim项目yaml 版本。iproject现在有一个aim_project_version字段来存储此值。
icloudwatchalarm获取命名空间字段。可用于覆盖默认值 例如,资源命名空间使用'cwagent'作为CloudWatch代理度量。
IResource现在有一个资源全名字段。全名是 指定CloudWatch警报中的度量。
iCloudWatchAlarm现在有一个维度字段,它是维度对象的列表。
ITargetGroup现在从IResource继承。它从输出加载资源名。
3.0.0(2019-08-06)
添加
新的
monitorconfig/notificationgroups.yaml
包含通知订阅组。lambda的sdb_缓存字段。
lambda可以有警报。
isnstopic和isnstopics订阅模型sns。
更改
为了保持一致性,所有引用都已重命名为以
aim.ref
开头。警报集、警报集和警报现在都已启用 可在模型中定位
服务插件可以加载其输出
2.0.0(2019-07-23)
添加
订阅报警通知的架构
为resources/s3.yml配置添加了s3resource
添加了lambda resolve参考支持
更改
服务作为入口点插件加载,名为aim.services
重构模型、应用程序、资源和服务。
将iroute53重命名为iroute53资源。
已修复
- CloudWatchAlarms现在验证分类字段值 提供"性能"、"运行状况"或"安全性"。
1.1.0(2019-07-06)
添加
添加了function.ref以便能够查找最新的AMI ID
为架构添加了更多约束。
已将默认值添加到is3bucket.policy
将路径53添加到模式和模型中
在alb中添加重定向到listner规则
更改
字段的描述属性现在用于描述约束。
将codecommit移植到schema和model
重构s3以使用application stackgroup
cpbd工件s3 bucket现在在netenv yaml中使用s3资源
将ALB的侦听器和侦听器规则转换为列表中的听写
删除
- 从aimdemo的fixtures下删除了未使用的yaml配置。
1.0.1(2019-06-19)
- 对python打包元数据的改进。
1.0.0(2019-06-19)
- 第一个开源版本