aim.models:语义云基础设施配置文件格式和对象模型
项目描述
目标模型
语义云基础设施的对象模型。
aim.models解析组成 AIM 项目的 YAML 文件目录并将它们加载到完整的对象模型中。
模型中有什么?
该模型定义了常见的逻辑云基础架构概念,例如网络、帐户、应用程序和环境。
该模型使用网络和应用程序作为配置的分层树,当它们被放置到环境中时,它们的值可以被过度使用。环境存在于网络中并包含应用程序,通常代表软件开发生命周期 (SDLC) 的各个阶段,例如“开发”、“登台”和“生产”。
该模型有一个声明性模式,该模式明确定义了模型中每个对象类型的字段。此模式不仅声明类型(例如字符串、整数),还可以声明默认值、最小值和最大值、限制到特定值,并定义不变量,以确保如果一个字段具有特定值,则另一个字段值与之兼容。该模型将在加载 AIM 项目时验证这些字段。
发展
使用您选择的 Python 工具安装此软件包。通常设置一个 virtualenv 并 pip 在其中安装依赖项:
python -m venv env
./env/bin/pip install -e .
有使用 PyTest 的单元测试。如果您使用的是 VS Code,您可以打开“Py Test Enabled”设置并运行“Discover Unit Tests”命令。
目标模型的变更日志
6.1.0 (2019-11-06)
添加
-
可以使用环境应用程序密钥的新“app{suffix}”语法在同一环境中多次配置应用程序。
-
INotificationGroups 有一个区域字段,如果它是 ['ALL'] 的默认值,它将应用于项目的所有活动区域。否则将仅在选定区域中提供。
-
ICloudFormationInit 用于建模 AWS::CloudFormation::Init,可应用于 IASG.cfn_init 字段。
-
ICloudWatchLogAlarm 架构。ICloudWatchAlarm 现在具有“类型:警报”,如果是“类型:LogAlarm”,将创建一个 ICloudWatchLogAlarm,可用于将警报连接到 LogGroup 的 MetricFilter。
-
IDBParameterGroups 资源。
-
IElastiCache 有
descriptionandcache_clusters字段,而 IElastiCacheRedis 有snapshot_retention_limit_daysandsnapshot_window字段。 -
IRDS 有新
license_model的 ,cloudwatch_logs_export和deletion_protection字段。 -
global_role_nameIAM Role 的字段可以设置为 True,并且 RoleName 不会被散列。只能用于全局角色,否则如果这些角色在每个环境中重叠,事情就会崩溃! -
monitoring.health_checks其中可以包含 HealthCheck 资源。用于 Route53 健康检查的 IRoute53HealthCheck 资源。 -
region_name如果设置了属性,则可以覆盖overrode_region_name属性。 -
为 IAM 用户添加了 CodeBuild IAM 权限
-
resolve_ref向 DeploymentPipelineConfiguration添加了方法 -
在 ASG 资源中添加了 EIP 应用程序资源和支持“eip”字段,用于将 EIP 与单个实例 ASG 关联。
-
向词汇表添加了 AWS Cli 安装命令。
-
添加
dns到 EIP 应用资源 -
添加
cftemplate_iam_user_delegates_2019_10_02了 legacy 标志以使用户委托角色堆栈名称与其他人一致。 -
route53_hosted_zone_2019_10_12为 Route53 CFTemplate 重构添加了 legacy 标志。 -
route53_record_set_2019_10_16为 Route53 RecordSet 重构添加了 legacy 标志。 -
添加
availability_zone用于将 ASG 锁定到单个可用区。 -
添加
parameter_group到 IElastiCache 应用程序资源 -
添加
vpc_associations到 IPrivateHosted。 -
添加
vpc_config到 ILambda 应用程序资源 -
添加
secrets_manager到 IIEnvironmentDefault。 -
添加
ttl到 IDNS -
向实例 AMI ID function.ref 查找添加了缓存。
-
添加了 EBS 应用程序资源。添加
ebs_volume_mounts到 IASG 以将卷挂载到单个实例组。 -
launch_options作为 IEC2LaunchOptions 对象添加到 IASG。初始选项是 update_packages,它将在启动时更新 linux 分发包。 -
将 resolve_ref() 添加到 base.py 中的 Resource 作为全部内容。
改变了
-
ISecurityGroupRule
source_security_group被移动到 IIngressRule 并且 IEgressRule(终于!)有一个destination_security_group字段。 -
load_resources已删除,您现在可以简单地将 apply_attributes 应用于应用程序,它将通过 app.groups.<groupname>.resources.<resourcename> 递归,而无需任何外部摆弄。 -
将 deepdiff CLI 函数移到
aim项目中。 -
IApplication 现在是 IMonitorable。应用程序级别的警报必须指定它们的命名空间和维度。
-
将 RDS 更改
primary_domain_name为primary_hosted_zoneIDNS 对象
固定的
- 警报覆盖现在被强制转换为字段的架构。当架构需要一个 float() 时,修复了在 int() 中加载的“阈值:10”。
6.0.0 (2019-09-27)
添加
-
ICloudWatchAlarms 具有
enable_ok_actions和enable_insufficient_data_actions布尔值,当警报进入 OK 或 INSUFFICIENT_DATA 状态时将发送到通知组。 -
references.get_model_obj_ref将 aim.ref 解析为模型对象,并且不会尝试进行 Stack 输出查找。 -
服务插件根据
initilization_order每个插件可以提供的整数加载。如果未提供整数,则无序插件的加载从 1000 开始计数。 -
方法、资源、模型和阶段的最小 API 网关模型。
-
用于 Lambda 的 S3Bucket NotificationConfiguration。
-
S3Bucket 必须
get_bucket_name()返回完整的计算存储桶名称。 -
项目 ['resource'] 的 IGlobalResources 包含来自 ./Resources/ 目录的配置。S3 和 EC2 等资源现在实现 INamed 并加载到 project['resource'] 中。
-
ISNSTopic对 AIM 项目中的所有帐户都有
cross_account_access哪些授权。sns:Publish -
IAccountContainer 和 IRegionContainer 是用于存放帐户和区域信息的轻量级容器。想要以多账户、多区域方式设置资源的服务可以使用它们。
改变了
-
CloudTrail 将 CloudWatchLogGroup 定义为子对象而不是目标引用。
-
警报已
get_alarm_actions_aim_refs重命名为 from,get_alarm_actions因为警报只能提供 aim.refs 并且需要从堆栈中获取 ARN。 -
NotificationGroups 现在是资源。现在他们有正常的工作目标。参考。
5.0.0 (2019-08-26)
添加
-
aim.models.reference.FileReference解析路径并将原始值替换为路径指示的文件的值的新字段。IApiGatewayRestApi.body_file_location 使用这个新字段。 -
ApiGatewayRestApi 和 CloudWatchAlarm 具有
cfn_export_dict返回可用于创建对流层资源的新字典的属性。 -
向 ACM 添加了 external_resource 支持
-
为管理员 IAMUserPermission 添加了只读支持
改变了
-
多维警报现在需要指定一个
aim.ref作为值。 -
为 IAM 用户添加了 IAMUser 架构和加载。
-
添加了 CommaList() 模式类型,用于将逗号分隔的列表加载到 schema.List()
-
将目标参考生成移动到模型中。模型对象现在具有 .aim_ref 和 .aim_ref_parts 属性,其中包含它们的 aim.ref 引用。
-
将 project['ne'] 重命名为 project['netenv']
-
修改 NatGateway 段以瞄准参考
固定的
- 不变量没有被检查资源。如果不变量不包含在
zope.schema.Object字段中,则加载程序需要对其进行检查,这将在后台运行检查。
4.0.0 (2019-08-21)
添加
-
IVPCPeering 和 IVPCPeeringRoute 已添加到模型中以支持 VPC 对等互连。
-
添加了在
Resources/CloudTrail.yaml. -
IS3BucketPolicy 现在有
principal和condition字段。principal可以是键值字典,其中键是“AWS”、“服务”等,值可以是字符串或列表。它是该领域的替代品aws,将保留用于设置更简单的仅限 AWS 的委托人。该condition字段是键值过滤器的键值字典。 -
警报现在具有“get_alarm_actions”和“get_alarm_description”来帮助构建警报。
-
CloudTrail 有一个“get_accounts”,它将 CloudTrail.accounts 字段解析为模型中的 Account 对象列表。
-
IAlarm 有
description和runbook_url字段。 -
CodePipeBuildDeploy.resolve_ref() 函数涵盖更广泛的 ref 查找
-
向模型添加了 VPCPeering。
-
向模型添加了 IElastiCache 和 IElastiCacheRedis。
改变了
-
MonitorConfig/LogSets.yaml已重命名为MonitorConfig/Logging.yaml. CloudWatch 日志记录位于顶级cw_logging键下。架构已完全重新设计,以便正确建模 LogGroups 和 LogSets。 -
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 获取一个命名空间字段。可用于覆盖默认资源命名空间,例如,对 CloudWatch 代理指标使用“CWAgent”。
-
IResource 现在有一个 resource_fullname 字段。全名是为 CloudWatch 警报中的指标指定所需的名称。
-
ICloudWatchAlarm 现在有一个维度字段,它是一个维度对象列表。
-
ITargetGroup 现在继承自 IResource。它从输出加载 resource_name。
3.0.0 (2019-08-06)
添加
-
MonitorConfig/NotificationGroups.yaml包含通知订阅组的新功能。 -
Lambda 的 sdb_cache 字段。
-
Lambda 可以有警报。
-
ISNSTopic 和 ISNSTopicSubscription 模型 SNS。
改变了
-
aim.ref为了保持一致性,所有参考文献都已重命名。 -
AlarmSets、AlarmSet 和 Alarm 现在都实现了 INamed 并且可以在模型中定位
-
服务插件可以加载它们的输出
2.0.0 (2019-07-23)
添加
-
订阅警报的通知架构
-
为 Resources/S3.yml 配置添加了 S3Resource
-
添加了 Lambda resolve_ref 支持
改变了
-
服务加载为名为 entry_point 的插件
aim.services -
重构模型应用程序、资源和服务。
-
将 IRoute53 重命名为 IRoute53Resource。
固定的
- CloudWatchAlarms 现在验证提供了“性能”、“健康”或“安全”的分类字段值。
1.1.0 (2019-07-06)
添加
-
添加了 function.ref 以便能够查找最新的 AMI ID
-
为模式添加了更多约束。
-
向 IS3Bucket.policy 添加了默认值
-
将 Route53 添加到架构和模型
-
在 ALB 中添加了对 Listner 规则的重定向
改变了
-
字段的描述属性现在用于描述约束。
-
将 CodeCommit 移植到架构和模型
-
重构 S3 以使用 Application StackGroup
-
CPBD 工件 s3 存储桶现在使用 NetEnv yaml 中的 S3 资源
-
将 ALB 的侦听器和侦听器规则转换为列表中的 dicts
已移除
- 从固定装置下的目标演示中删除了未使用的 yaml 配置。
1.0.1 (2019-06-19)
- 对 Python 打包元数据的改进。
1.0.0 (2019-06-19)
- 第一个开源版本
项目详情
aim.models -6.1.0.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 20b15772356c3b99607f512f5c25bb805abef999bcf8546b9acfd0cbd86d3b0e |
|
| MD5 | 4cd5596d5391042f91d6d39700494797 |
|
| 布莱克2-256 | a39f2f5ab4eb015f872d1307b677942729039edb38aeb9fb294f94f7d71ce1d1 |