Skip to main content

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_days andsnapshot_window字段。

  • IRDS 有新license_model的 ,cloudwatch_logs_exportdeletion_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 作为全部内容。

改变了

  • ISecurityGroupRulesource_security_group被移动到 IIngressRule 并且 IEgressRule(终于!)有一个destination_security_group字段。

  • load_resources已删除,您现在可以简单地将 apply_attributes 应用于应用程序,它将通过 app.groups.<groupname>.resources.<resourcename> 递归,而无需任何外部摆弄。

  • 将 deepdiff CLI 函数移到aim项目中。

  • IApplication 现在是 IMonitorable。应用程序级别的警报必须指定它们的命名空间和维度。

  • 将 RDS 更改primary_domain_nameprimary_hosted_zoneIDNS 对象

固定的

  • 警报覆盖现在被强制转换为字段的架构。当架构需要一个 float() 时,修复了在 int() 中加载的“阈值:10”。

6.0.0 (2019-09-27)

添加

  • ICloudWatchAlarms 具有enable_ok_actionsenable_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 现在有principalcondition字段。 principal可以是键值字典,其中键是“AWS”、“服务”等,值可以是字符串或列表。它是该领域的替代品aws,将保留用于设置更简单的仅限 AWS 的委托人。该condition字段是键值过滤器的键值字典。

  • 警报现在具有“get_alarm_actions”和“get_alarm_description”来帮助构建警报。

  • CloudTrail 有一个“get_accounts”,它将 CloudTrail.accounts 字段解析为模型中的 Account 对象列表。

  • IAlarm 有descriptionrunbook_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)

  • 第一个开源版本

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

目标.models-6.1.0.tar.gz (102.7 kB 查看哈希)

已上传 source