跳转到主要内容

paco.models: 语义云基础设施配置文件格式和对象模型

项目描述

paco.models

语义云基础设施的对象模型。

paco.models 解析由YAML文件组成的 Paco 项目的目录,并将它们加载到完整的对象模型中。

模型中有什么?

该模型定义了常见的逻辑云基础设施概念,例如网络、账户、应用程序和环境。

该模型使用网络和应用程序作为配置的分层树,当它们被放置到环境中时,其值可以被覆盖。环境存在于网络中,包含应用程序,通常表示软件开发生命周期(SDLC)的阶段,例如“开发”、“预发布”和“生产”。

该模型具有一个声明式架构,该架构明确定义了模型中每个对象类型的字段。此架构不仅声明类型(例如,字符串、整数),还可以声明默认值、最小值和最大值、限制到特定值以及定义不变性,以确保如果一个字段具有特定的值,另一个字段的值与该值兼容。模型在加载 Paco 项目时会验证这些字段。

开发中

使用您选择的 Python 工具安装此包。通常设置虚拟环境并在其中使用 pip 安装依赖项

python -m venv env

./env/bin/pip install -e .

使用 PyTest 进行单元测试。如果您使用 VS Code,可以打开“Py Test 启用”设置并运行“发现单元测试”命令。

生成的词汇表

模块 paco.models.gen_vocabulary 由脚本 paco_update_gen_vocabulary 动态生成。

要运行此脚本,首先安装 paco.models(pip install -e .)项目。然后在活动的 AWS 账户中创建一个具有只读访问权限的 IAM 用户,并将它们保存在您的 .aws/credentials 文件中。如果您不使用默认配置文件名称,可以设置 AWS_PROFILE 环境变量。

paco.models 将为您创建一个方便的 profile.sh 来设置此环境

$ source profile.sh

设置您的 AWS 凭据

$ export AWS_DEFAULT_PROFILE=

然后在 sourced profile.sh 后从命令行运行命令

$ paco_update_gen_vocabulary

paco.models 的变更日志

7.8.37 (2024-04-08)

新增

  • 新增 IAM 用户默认密码遗留标志

  • 新增对网络负载均衡器的静态 IP 支持。

  • 新增对基于 Ubuntu ARM 的 ec2 映像的支持。

7.8.36 (2023-12-21)

  • 删除了 ECS SErvice 追踪策略预定义指标的必需标志。

7.8.35 (2023-09-26)

新增

  • 新增 ECRReplicationConfiguration 资源

  • 新增 external_resource 到 GuardDutyDetectorRegion

  • 新增 secrets_manager_default_2023_03_09 和 ecs_tracking_policy_name_2023_08_29 遗留标志。

  • ECR 仓库复制

  • 将 Amazon Linux live patching 发布版本字段改为必需。

  • 实现了 Live Amazon Linux 2023 OS 和内核修补以及版本保留。

  • 在 ECSContainerDefinition 中初始化了命令和 entry_point 列表

7.8.34 (2023-07-19)

新增

  • 为 ECS 服务添加了任务角色

7.8.33 (2023-06-27)

新增

  • 添加了 CloudWatch 日志资源

  • 为 ILoadBalancer 添加了 CrossZone 配置

  • 添加了 EventBridge 资源

  • 将 LBNetwork 添加到词汇文件中

  • 为段添加了 NACL 配置支持

  • 为 WAFWebACL 规则添加了 RuleOverrideAction

  • 为策略声明()模型对象添加了 Sid 字段

  • 为 ALB 监听器添加了 WebACL 支持

  • 为 IAMUser 添加了 disable_account_delegates,以允许在任何帐户中创建用户

  • 为 IEventsRule 添加了 event_bus 字段

  • 为 CloudWatchLogGroup 模型对象添加了 get_arn() 函数

  • 为 IAM User Custom Policy 模型对象添加了 managed_policy_arns 字段

  • 为 IAM 用户添加了 managed_polcies 支持,可以直接将策略附加到用户。

  • 将 me-central-1(UAE)添加到词汇文件中

  • 为 WAF 规则添加了 override_action

  • 为 Amazon Linux 2023 添加了支持

  • 为 RDS 添加了 Aurora 全局集群支持

  • 开始实现 Lambda FunctionURL

  • 将 LoadBalacner ListenerRule 的 'host' 字段更改为列表。

  • 在加载器中的字典合并期间禁用列表合并

修复

  • 修复了 PacoReference str_ok 在列表中使用时的错误

  • 修复了 paco 模型加载器中的列表错误,其中包含 paco.ref 引用。

更改

  • 将 SecurityGroupRule 的 cidr_ip 类型从 TextLine 更改为 PacoReference

  • 重新生成词汇表

  • 更新词汇表

7.8.32 ((2023-02-28))

新增

  • 为 t4g 实例添加了 Amazon Linux 实例类型的 ARM 支持

  • 添加了 AccessKeys IAM 用户权限

  • 添加了 AppConfig 资源

  • 添加了用于合并监控帐户配置的 CloudWatch 资源

  • 为 AssumeRolePolicy 添加了条件

  • 为 VPC 添加了 EC2 流日志

  • 为 VPC 添加了 EC2 流日志

  • 将 EIP 配置添加到 EC2 全局资源

  • 将 EIP 添加到 paco 引用解析中

  • 添加GuardDuty资源

  • 添加IAM策略资源

  • 将身份提供者角色添加到ECR仓库

  • 将身份提供者角色添加到Lambda函数。

  • 为ECRRepository添加图像扫描支持

  • 添加Inspector资源

  • 为S3Buckets添加生命周期规则支持

  • 为GuardDuty添加监控

  • 添加PacoService IResource

  • 为EFS挂载添加只读模式

  • 添加参考输出查找

  • 为CloudFront资源添加ResponseHeaderPolicy

  • 向资源.iam添加角色

  • 将Ubuntu 22.04支持添加到paco.ref ami功能

  • 将VPCEIP添加到网络.vpc配置。

  • 将VPN客户端端点添加到VPC

  • 添加过滤器以从任何列表中删除Nones以清理列表合并。

  • 添加ECS服务覆盖LogGroup名称的能力,并添加一个布尔值以禁用LogGroup创建。

  • 添加VPC对等连接以关联接受者的私有托管区域与请求者

  • 向ILambda添加账户字段

  • 向BaseRole添加assume_role_policies以允许多语句AssumeRole策略。

  • 向VPN客户端端点添加可用区字段

  • 将codedeploy_stack_name_2022_07_07添加为旧版标志

  • 向loader添加config_scope参数

  • 向ECSRepository资源添加external_repository_arn

  • 向IAM用户访问密钥添加externally_managed字段以允许用户管理自己的密钥。

  • 向Principal架构添加federated

  • 向ECRRepository添加full_repository_name

  • 向get_aws_name() LoadBalancer模型对象添加hash_long_names

  • 向Loadbalancer ListenerRule目标组添加ignore changes字段

  • 向ECSContainer定义和单个服务添加ignore字段

  • 向ECSServices配置添加ignore_image_changes和ignore_capacity_changes

  • 向CodePipeline支持并行操作运行添加input_artifact_action

  • 向CloudFront lambda函数关联添加lambda_version

  • 添加policy_actions,以控制对IDPRoles的访问

  • 为CloudWatch资源添加References区域支持

  • 向CloudFront Default缓存行为添加response_headers_policy_id

  • 为自管理的EC2 nat网关添加对全局EIP的支持

  • 支持设置NAT实例AMI

  • 将t4g实例类型添加到词汇表。

  • 向IEBS添加标签字段

  • 添加ubuntu-18 AMI功能调用查找

  • 为ECSLogging添加AWSLog配置

  • 向EC2资源添加EIPs配置

  • 允许LBApplication监听ssl_certificates列表中的ARN

  • 将resource.iam.roles账户字符串更改为accounts列表。

修复

  • 通过分离netenv、服务器、资源等来修复Outputs缓存

  • 通过分离netenv、服务器、资源等来修复Outputs缓存

  • 修复当启用外部资源时私有托管区域的Route53 HostedZone不变性

  • 修复amazon-linux-nat ec2功能过滤器。

  • 修复amazon-linux-nat ec2功能过滤器。

  • 修复在从合并的列表中过滤出None时的loader错误

  • 修复在从合并的列表中过滤出None时的loader错误

  • 修复resource.route53路径上的model_obj

  • 修复监控通知组过滤

更改

  • 实现VPC VPN客户端端点

  • 使ECSASGConfiguration可部署

  • 移植到troposphere 4.x

  • 如果ECS容量提供者名称以aws、ecs或fargat开头,则使用前缀cp-

  • 删除breakpoint()调用。

  • 开始向Base Roles添加身份提供者支持

7.8.31 ((2022-07-08))

新增

  • 添加ALB监听器默认操作

  • 向IS3Bucket添加PacoServiceHook

  • 将Postgres 12.11添加到生成的词汇表

  • 添加S3注册表挂钩

  • 向project.yaml添加feature_flag选项

  • 向Reference()添加get_object()函数以返回引用的对象

  • 添加paco.ref别名...: key功能

  • 添加prefix_environment_name和新逻辑到ECR仓库名称生成和配置

  • 向references中的get_resolve_ref_obj()添加resolve_from_outputs

  • 向ILambda添加s3_buckets以显式Lambda Permission to InvokeFunction

  • 向AlarmNotifications()模型对象添加to_dict()

  • 向AlarmNotifications()模型对象添加to_dict()

修复

  • 修复metrics中的None引用

  • 修复生成的服务配置以允许没有配置的paco_service_hooks

7.8.30 ((2022-06-02))

新增

  • 向.gitignore添加构建工件

  • 向.gitignore添加构建工件

  • 向Reference()添加netenv辅助函数

  • 为生成服务配置添加了对重复应用程序的支持

  • 将windows_2016添加到词汇表中

7.8.29 ((2022-05-25))

新增

  • 将gen_name()添加到Rerference(),用于生成一个常见的唯一名称

  • 在生成配置的服务中添加了对标准化引用的支持。

  • 在生成配置的服务中添加了对标准化引用的支持。

  • 将gp3设置为默认的EBS卷类型

  • 为ALB和CloudFront安全策略添加了新默认值

7.8.28 (2022-05-06)

新增

  • 为警报添加了对负载均衡器和目标组的自动支持

  • 为ITargetGroup添加了启用/禁用功能

  • 为ITargetGroup添加了监控功能

7.8.27 (2022-05-01)

更改

  • 测试PyPi构建和上传

7.8.26 (2022-05-01)

更改

  • 测试PyPi构建和上传

7.8.25 (2022-05-01)

新增

  • 为IAM用户实现了默认密码字段,以解决密码限制。

  • 为ILoadBalancer添加了cost_disabled字段,允许禁用ALB

  • 为ICloudWatchLogRetention()添加了默认的30天

  • 为负载均衡器添加了get_aws_name()

  • 为CostDisabled ALB添加了支持

  • 为CodeBuild添加了项目环境变量支持

  • 添加了对GitHub CodeStar连接的支持

  • 为部署管道添加了DetectChanges

  • 实现了新的PacoServiceHook

  • 为paco.ref别名添加了netenv支持

  • 为强制输出查找添加了resolve_from_outputs布尔值

  • 添加了更多的CodeDeploy服务挂钩以实现蓝/绿部署

  • 在部署管道中为CodeDeploy操作添加了服务钩子模式

修复

  • 修复了加载器中别名和服务过程回调的错误

  • 修复了LogGroup过期默认值

更改

  • 开始查看AWS层

  • 移除了IDeploymentPipelineCodeStarConnectionSourceAction的所有者和仓库字段的必要性。

7.8.24 (2022-03-25)

更改

  • 分离了组、所有者和模式配置的FilePermissions

新增

  • 为ECRRepository资源添加了生命周期策略

  • 将ubuntu_20添加到instance_ami paco.ref函数

  • 为instance_ami paco.ref函数添加了对CIS加固的Ubuntu 18 AMI的支持

  • 为SNS主题添加了对事件桥接通知访问的支持

  • 为EventsRules添加了对事件模式的支持

  • 为EventsRules添加了通知

  • 为BitBucket的CodePipeline源配置添加了CodeStar连接的ARN字段

7.8.23 (2022-03-04)

修复

  • 修复了IRDSClusterInstances的taggedValue参数

新增

  • 为ElastiCache添加了DNS
  • 为CodeBuild部署管道配置添加了环境类型
  • 添加了别名功能,以在一个位置集中管理常用配置
  • 为Reference()添加了get_environment_name方法

7.8.22 (2022-02-09)

新增

  • 为CodeBuild添加了构建批配置

7.8.21 (2022-02-08)

新增

  • 为CodeBuild添加了GitHub源配置

  • 为IEFS添加了enable_automatic_backups

修复

  • 修复了加载器的get_all_nodes()在obj有效时返回False的问题

更改

  • 默认启用EFS的静态加密

7.8.20 (2022-01-31)

新增

  • 为CodeBuild添加了工件配置

7.8.19 (2022-01-27)

新增

  • 为CodeBuild GitHub源配置添加了deployment_branch_name

  • 为ISecurityGroup添加了source_security_group_owner以支持跨账户访问

  • 为Peering配置添加了peer_type

  • 为CodeBuild添加了vpc_config配置

  • 为VPC端点配置添加了可用区

修复

  • 修复了netenv之间的VPC对等连接

  • 修复了get_resolve_ref_obj,如果值是整数

7.8.18 (2021-12-17)

更改

  • 更新了生成的词汇表。

新增

  • 实现了IAM角色资源

7.8.17 (2021-11-24)

新增

  • 为IDeploymentPipelineConfiguration添加了'disable_codepipeline',允许阶段资源独立构建。

  • 添加了CodeBuild GitHub源配置

7.8.16 (2021-11-23)

更改

  • 将IECSService的deployment_minimum_healthy_percent最小值从1更改为0。

新增

  • 通过度量词汇查找添加了命名空间,以自动为CWAgent和AWS/EC2的ASG命名空间

  • 为ILambda资源添加了区域

  • 实现了SystemsManagerSession IAM代理策略

  • 为IAM权限添加了ManualApproval到isPacoDeploymentPipelinePermissionPolicyValid

  • 为Route53记录集类型添加了AAAA

  • 将ubuntu_18_cis ami_type添加到词汇表

7.8.15 (2021-10-04)

新增

  • 为CodeCommit添加了import_from逻辑

  • 将TLSv1.2_2021设置为最低的CloudFront协议版本

7.8.14 (2021-09-10)

更改

  • 更新了生成的词汇表

新增

  • 将安全组服务挂钩添加到注册表

  • 将SPF Route53记录集类型添加到验证

  • 为负载均衡器添加了HealthCheckPort

  • 添加了WAFv2 WebACL资源

7.8.13 (2021-08-26)

新增

  • 将布尔值bucket_owner_preferred添加到S3Bucket资源中

  • 为目标存储桶实现了S3复制配置

  • 将备份恢复存储桶选项字段添加到RDSSQLServerExpress资源

  • 添加了对netenvs的import_from支持

  • 将ECR存储库字段添加到IASG以实现自动权限

  • 向部署管道添加BitBucket支持

  • 添加IASGPatchManager以实现自动Windows补丁更新

修复

  • 修复了RDSClusterDefaultInstance的可监控性

7.8.12 (2021-06-08)

新增

  • 实现了SQLServerExpress RDS

  • 将redirect_path添加到IListenerRules

  • 更新了生成的词汇表

  • 添加了'windows'通用的AMI类型

  • 添加了VPC端点配置

  • 将elb account id映射添加到词汇表中

  • 将windows_2019添加到ami_types词汇表中

  • 将布尔值添加到base obj_hash()方法中

修复

- Fixed exception in get_formatted_model_context when handling exceptions.

7.8.11 (2021-05-11)

修复

  • 修复了RDSClusterDefaultInstance中缺少event_notifications字段的问题

  • 修复了CodeCommit模型对象中未初始化的repo_by_account

7.8.10 (2021-05-04)

新增

  • 将区域字段添加到DeploymentPipeline配置中

7.8.9 (2021-04-23)

新增

  • 添加了对ASGs上禁用Target Groups的支持

  • 添加了对ECSServices中禁用服务的支持

7.8.8 (2021-04-19)

修复

  • 将resolve_ref添加到ApplicationEngine模型对象中,以修复一些paco ref查找问题

7.8.7 (2021-04-09)

新增

  • 将CW_ALARM_DESCRIPTION_HOOK添加到Paco注册表中
  • 将notification_groups字段添加到CW警报描述中

修复

  • 修复了Parent基类obj_hash方法中未初始化的值引发的异常

7.8.6 (2021-04-06)

新增

  • 将codestar_notification_access布尔值添加到sns主题的访问策略中

7.8.5 (2021-04-02)

新增

  • 将监控和notification_events添加到DeploymentPipeline中
  • 为ASGs添加了脚本管理器中的ECS实用程序

更改

  • 修改了负载均衡器和CloudFront SSL安全策略的默认设置

7.8.4 (2021-03-15)

新增

  • 添加了ImportFrom功能

7.8.3 (2021-03-11)

新增

  • 添加了额外的EC2实例大小

7.8.2 (2021-02-24)

新增

  • 向ICloudFrontDefaultCacheBehavior架构中添加了新的cache_policy_idorigin_request_policy_id字段。

7.8.1 (2021-02-05)

新增

  • force_dns_enabled添加到IDNSEnablable

7.8.0 (2021-02-04)

更改

  • 已删除原始的弃用snstopics资源,只保留新的sns资源。

7.7.6 (2021-02-03)

  • external_resource添加到ICloudWatchLogGroup

7.7.5 (2021-01-29)

  • 为ECR部署添加script_managerIASG

7.7.4 (2021-01-13)

更改

  • EC2 launch_options.codedeploy_agent默认设置为True。现在默认为False。

修复

  • 修复了DynamoDB表的resolve_ref。

7.7.3 (2021-01-05)

新增

  • ECS ASG容量提供者有一个managed_instance_protection字段。

7.7.2 (2021-01-05)

新增

  • ECS服务有一个capacity_providers字段用于ECS容量提供者。

  • ECS集群有一个capacity_providers字段,如果没有指定launch_type,则为默认值。

7.7.1 (2020-12-31)

新增

  • 为DeploymentPipeline CodeBuild操作添加ReleasePhases。

7.7.0 (2020-12-23)

更改

  • 添加了对网络负载均衡器的支持。添加了新的IloadBalancer基类和IApplicationLoadBalancerINetworkLoadBalancer类。将LBApplication类重命名为ApplicationLoadBalancer

新增

  • AlarmDescription元数据现在包括一个'ref'字段,它是Alarm资源的paco.ref部分。

  • IS3BucketPolicyIStatementcondition字段添加了对有效AWS约束的约束。

  • IBackupPlan有一个新的copy_actions字段。

  • 为DynamoDB添加了初始架构。

修复

  • 现在IAccount的AdminIAMUsers是一个包含name的容器。

  • 负载均衡器的IListener的ListenerRules现在是一个包含name的容器。

  • CloudFront的CloudFrontOrigins现在是一个包含name的容器。

  • CloudFront的CloudFrontFactories现在是一个包含name的容器。

7.6.1 (2020-11-12)

新增

  • codedeploy_agent添加到EC2LaunchOptions字段中。

7.6.0 (2020-11-07)

修复

  • 跨账户netenv引用被正确检测,不会混淆。

  • add_stack_hooks可以在模板初始化之前或之后调用,并注册。

  • IoTPolicy现在与Services一起工作。

新增

  • add_paco_suffix字段添加到S3Bucket资源中。

  • Lambda触发器为CognitoUserPool

  • 指向本地路径的路径字段现在可以使用~/展开到主目录路径。

  • IECSServices 字段包含 setting_groups

  • IApiGatewayResource 字段包含 child_resourcesenable_cors

  • 新方法 Project.get_all_resources_by_type() 依赖于 Project 资源注册表,该注册表包含按类型分组的所有应用程序资源。轻松跨应用程序查询!

  • loader 有一个 validate_local_paths,允许从可能没有本地路径的 CI/CD 或其他环境中加载模型。

  • 新增 IBinaryFileReference 用于加载二进制文件。

  • 支持 CloudFront LambdaFunctionAssociation 和 Lambda@Edge 的初始支持。

  • 初始支持 Cognito,并为 ICognitoUserPoolICognitoIdentityPool 提供资源类型。

  • TargetGroup 字段有一个 target_type

  • ECSServices 支持使用 Fargate。

  • ECSService 有一个用于服务扩展的 target_tracking_scaling_policies

  • 为错误配置的 AlarmSets 提供有用的错误信息。

  • monitoring 添加到 ECSServicesECSCluster

  • ecr_repositories 添加到 IDeploymentPipelineBuildCodeBuild 以简化声明 ECR 仓库权限。

  • add_stack_hooks 添加到 paco.models.base.Resource

更改

  • YAML 文件加载现在考虑了大小写敏感的文件系统,但允许目录名和文件名既可以是小写也可以是大写。

  • 将 ApiGatewayRestApi 的 IApiGatewayMethod 重命名为 resource_name,从 resource_id 更改,以更好地反映名称与网关资源的匹配。

  • IAWSCertificateManager 重命名为 IACM,以匹配其资源类型名称。

  • ApiGatewayRestApi 在其 CloudFormation 导出中不提供名称。

7.5.0 (2020-09-17)

新增

  • 添加了 paco.models.registry,作为一个包含扩展或更改 Paco 的配置的地方。

  • 添加了 IIAMUserResource 作为应用程序级别的 IAMUser 资源。

  • 添加了 AWS Pinpoint 支持的 IPinpointApplication 的最小模式。

  • AlarmSets 和 CWLogging 被加载到 project.monitor 中。这些用于 paco describe 功能。

  • extend_base_schema 钩子添加到 loader,允许服务在 loader 加载之前扩展模式。

  • 容器加载器可以加载空对象(没有字段,只有名称的对象)。

更改

  • paco.modes.services.list_service_plugins 已更改为 list_enabled_services。以字典格式返回仅启用的服务。

  • IIAMUserProgrammaticAccess 已更改为 IEnablable 并默认为 True。

  • ICloudFrontCustomErrorResponse 字段 error_caching_min_ttl 的默认值为 300。

  • PyLance 检测到的修复:重新排列 IRDS 模式,使其不再提供 IResourcehttps://github.com/microsoft/pylance-release

7.4.0 (2020-07-14)

新增

  • DeploymentPipeline 现在有一个 ECR.Source 操作。

  • 添加了与 IDeployable 相同的 IEnablable,但默认为 true。

  • 添加了 IRDSMysqlAuroraIRDSPostgresqlAurora 以支持 Aurora。

  • 将用户和组添加到 resource/ec2.yaml 并将 ssh_access 添加到 IASG。

  • ECSSerivce 添加了部署最大百分比、部署最小健康百分比和健康检查宽限期秒数的额外字段。

  • ISecretManagerSecret 现在有一个 account 字段,用于指定它属于特定账户。

更改

  • IDeploymentPipelineStageAction 使用 IEnablable,以便默认启用部署操作。

  • ISNSTopic 使用 IEnablable,以便默认启用主题。

7.3.0 (2020-06-22)

新增

  • ICodeCommitUser 有一个权限字段,可以是 ReadWrite 或 ReadOnly。

  • IDeploymentPipelineBuildCodeBuild 有一个 buildspec 字段。

  • 新增 paco.models.gen_vocabulary,从 AWS API 调用动态生成词汇表。添加了 AWS AMI Ids 词汇表。

  • paco.ref function 现在支持使用 : 语法将额外上下文传递给函数。

  • 新增 paco.aws 包,其中包含 paco.ref function 调用。第一个调用是 paco.aws.ami_id:latest.amazon-linux-2-ecs

  • ECS 集群支持初始 EC2 自动扩展组。

  • 新增 resource/sns.yaml 文件,包含 SNS 全局资源,允许跨任何组合的账户/地区部署 SNS 主题和订阅。

  • AWS Config 支持已在 resource/config.yaml 中添加。

  • ICloudTrail 现在有一个 kms_users 字段,它是一个列表,包含了被授权访问加密 CloudTrail 日志的 IAM 用户。

更改

  • ISNSTopics 有一个 locations 字段。这仅适用于 resource/sns.yaml

  • IASG 的 instance_iam_role 字段不再是一个必填字段。

  • home / config_folder 现在是一个 pathlib.Path 对象。

7.2.0 (2020-05-09)

新增

  • 添加了 IASG.launch_options.ssm_agent 来指示是否应该安装 SSM Agent。

  • 添加了支持 RDS for Postgresql 的 IRDSPostgresql。在词汇表中添加了 Mysql 和 Postgresql 的完整 RDS EngineVerions 列表。

更改

  • instance_ami_type 的词汇表已扩展,包括操作系统的主要版本或其他重要属性。

  • 为 IDeploymentPipelineSourceGitHub 添加了 poll_for_source_changes

  • Lambda:code:zipfile 现在可以是一个指向本地目录的路径。

7.1.0 (2020-04-04)

迁移

  • ASG 字段的 update_policy_max_batch_sizeupdate_policy_min_instances_in_service 已被移除。相反,使用 ASG 字段的 rolling_update_policy 并设置 max_batch_sizemin_instances_in_service

新增

  • 为 IIAMUserPermissionCustomPolicy 添加了新的 managed_policies,以便轻松添加 AWS 管理策略。

  • 添加了 IIoTAnalyticsPipeline、IIoTTopicRule 和 IIoTPolicy 架构和实现,以支持核心 IoT 数据摄取和分析。

  • IListener 有一个 ssl_policy,用于设置 SSL 监听器的 SslPolicy。

7.0.2 (2020-03-14)

修复

  • 恢复 cfn-init wget 命令。

7.0.1 (2020-03-14)

新增

  • IDeploymentPipelineDeployS3 为 Stages/Actions 添加了 input_artifacts 字段。

7.0.0 (2020-03-06)

迁移

  • NotificationGroups 已更名为 SNSTopics。迁移:git mv resource/NotificationGroups.yaml resource/snstopics.yaml

  • IEventsRule 现在有一个 IEventTarget,而不是仅仅是一个指向目标的 paco.ref。这允许您指定目标的 input_json。

新增

  • IManagedPolicy 有一个 policy_name 字段,可以用来指定 AWS 中的 IAM 策略的名称。

  • IDeploymentPipelineSourceGitHub 用来模拟 CodePipeline 的 GitHub.Source actions。

  • IDeploymentPipeline 有一个 stages 字段,可以用来创建比预制的 source/build/deploy 字段更灵活的 Stages 和 Actions。

更改

  • IS3Resource 现在有一个 IS3Buckets 而不是字典,并且已经清理了全局存储桶的引用。

修复

  • 所有具有字典的 IVPC 架构都已替换为 INamed 对象,以便它们可以提供 paco_ref。

6.4.1 (2020-02-19)

新增

  • 为 IProject 配置添加了新的 IVersionControl 架构。

6.4.0 (2020-02-17)

新增

  • IElasticsearchDomain 架构。

  • ASG 有 instance_ami_ignore_changes 字段来指示 AMI Id 正在外部更新。

  • paco.ref 函数现在可以调用任何任意的 Python 函数。

  • 为 IEventRule 添加了 enabled_state。

  • 为 ILambda 添加了 log_group_names 和 expire_events_after_days,允许其管理日志组并设置保留期。

更改

  • 移除了多余的 ICodeCommitRepositoryGroups,现在 ICodeCommit 是 ICodeCommitRepositoryGroup 的容器。

修复

  • 修复了加载带有空配置的环境时 loader 抛出的错误。

6.3.7 (2020-02-05)

新增

  • 为 Secrets 添加了 generate_secret_string 的完整字段集。

修复

  • Lambda.add_environment_variable 没有传递父级。

6.3.6 (2020-01-29)

新增

  • 当 cfn-init 文件包含 !Sub 和 !Join 时无法解析的错误信息。

6.3.5 (2020-01-23)

修复

  • Ubuntu awscli 安装时有多余的空白字符,这可能会停止 UserData。

6.3.4 (2020-01-16)

新增

  • 为 ICodeCommit 添加了 external_resource 字段。

6.3.3 (2020-01-09)

新增

  • TextReference 类已被重命名为 PacoRefernce,现在可以传递 schema_constraint,该约束指定其名称或必须引用的模式。

  • 在 cfn-init 中支持 usersgroups。使用不变性来防止用户名重复组名。

更改

  • 暂时禁用 .credentials 上的 chmod 400 检查,以支持没有权限的文件系统。

  • CodeCommit 包含 CodeCommitRepositoryGroups 和 CodeCommitRepostory 对象,而不是两级的字典。修复了文档并简化了 loader。

修复

  • Lambad.add_environment_variable 传递父级。

6.3.2 (2020-01-06)

更改

  • 清理架构,移除了所有实际上不使用 IMapping 的架构。

  • 移除了 IApplication 的未使用 managed_udpates 字段。

6.3.1 (2020-01-03)

新增

  • IRoute53HealthCheck 有 ip_address 字段。

  • resource/snstopics.yaml 是 resource/notificationgroups.yaml 的别名

  • 添加了 raise_invalid_reference 方法,当引用查找失败时显示有用的信息。

修复

  • cfn-init 包设置现在只加载项目,现在加载所有包类型。

  • ICloudWatchLogSource的log_stream_name字段是必需的,如果为空,代理将不会启动。

6.3.0 (2019-12-03)

新增

  • ICloudWatchDashboard用于云监控仪表板资源。

  • Route53健康检查有domain_name和enable_sni字段。

更改

  • 模式检查中的不变错误具有非混淆的错误信息。

6.2.1 (2019-11-29)

  • AIM到paco重命名修复。

6.2.0 (2019-11-28)

更改

  • 包重命名:`paco.models`现更名为`paco.models`,与重命名为`paco`的工具保持一致。

  • 顶级目录已重命名,以与模型中的名称一致:NetworkEnvironments --> netenv Resources --> resource Services --> service Accounts --> account MonitorConfig --> monitor 加载器将查找`NetworkEnvironments`,如果存在则使用旧名称。

新增

  • 添加了对AWS Backup Vault的支持。现在可以在NetworkEnvironment YAML文件中存在全局backup_vaults字段。这些字段可以在EnvironmentDefault和EnvironmentRegion配置部分中覆盖。

  • 添加了对IASG的block_device_mappings支持。

6.1.0 (2019-11-06)

新增

  • 可以使用新的"app{后缀}"语法在相同环境中多次配置应用程序,以用于环境的应用程序键。

  • INotificationGroups具有regions字段,如果其默认值为['ALL'],则将应用于项目的所有活动区域。否则,它只会在所选区域中配置。

  • ICloudFormationInit用于建模AWS::CloudFormation::Init,可以应用于IASG.cfn_init字段。

  • ICloudWatchLogAlarm模式。ICloudWatchAlarm现在有"type: Alarm",如果它是"type: LogAlarm",则将创建一个ICloudWatchLogAlarm,可以用来将警报连接到LogGroup的MetricFilter。

  • IDBParameterGrouups资源。

  • IElastiCache具有descriptioncache_clusters字段,而IElastiCacheRedis具有snapshot_retention_limit_dayssnapshot_window字段。

  • IRDS具有新的license_modelcloudwatch_logs_exportdeletion_protection字段。

  • IAM角色的global_role_name字段可以设置为True,RoleName将不会进行哈希处理。只能用于全局角色,否则如果这些角色在环境中重叠,则会导致问题!

  • monitoring.health_checks可以包含HealthCheck资源。IRoute53HealthCheck资源用于Route53健康检查。

  • 如果设置了overrode_region_name属性,可以覆盖region_name属性。

  • 为IAM用户添加了CodeBuild IAM权限。

  • 添加了DeploymentPipelineConfiguration的resolve_ref方法。

  • 添加了EIP应用程序资源,并为ASG资源添加了支持'eip'字段,以将EIP与单个实例ASG相关联。

  • 将AWS Cli安装命令添加到词汇表。

  • dns添加到EIP应用程序资源。

  • 添加了cftemplate_iam_user_delegates_2019_10_02旧版标志,以使用户委托角色堆栈名称与其他名称一致。

  • 添加了route53_hosted_zone_2019_10_12旧版标志,用于Route53 CFTemplate重构。

  • 添加了route53_record_set_2019_10_16旧版标志,用于Route53 RecordSet重构。

  • 添加了availability_zone,以将ASG锁定到单个可用区。

  • 添加了parameter_group到IElastiCache应用程序资源。

  • 添加了vpc_associations到IPrivateHosted。

  • 添加了vpc_config到ILambda应用程序资源。

  • 添加了secrets_manager到IIEnvironmentDefault。

  • 添加了ttl到IDNS。

  • 添加了对实例AMI ID功能.ref查找的缓存。

  • 添加了EBS应用程序资源。为IASG添加了ebs_volume_mounts,以将卷挂载到单个实例组。

  • 为IASG添加了launch_options,作为IEC2LaunchOptions对象。初始选项是update_packages,它将在启动时更新linux发行版的软件包。

  • 将resolve_ref()添加到base.py中的Resource,作为通配符。

更改

  • ISecurityGroupRule source_security_group 已移动到 IIngressRule 和 IEgressRule(终于!)并具有一个 destination_security_group 字段。

  • load_resources 已移除,现在您可以直接将 apply_attributes 应用到 Application 上,它将递归地遍历 app.groups..resources. 而无需任何外部操作。

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

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

  • 将 RDS 的 primary_domain_nameprimary_hosted_zone 更改为 IDNS 对象。

修复

  • 警报覆盖现在转换为字段的模式。修复了当模式期望一个 float() 时,“threshold: 10” 载入为 int() 的问题。

6.0.0 (2019-09-27)

新增

  • ICloudWatchAlarms 有 enable_ok_actionsenable_insufficient_data_actions 布尔值,当警报进入 OK 或 INSUFFICIENT_DATA 状态时,将发送到通知组。

  • references.get_model_obj_ref 将 paco.ref 解析为模型对象,并且不会尝试执行 Stack 输出查找。

  • 服务插件根据插件提供的 initilization_order 整数加载。如果没有提供整数,无序插件的加载从 1000 开始计数。

  • 为方法、资源、模型和阶段提供最小 API 网关模型。

  • S3Bucket 通知配置用于 Lambdas。

  • S3Bucket 有 get_bucket_name() 返回完整的计算桶名称。

  • IGlobalResources 为 project['resource'] 包含来自 ./Resources/ 目录的配置。S3 和 EC2 等资源现在实现了 INamed 并加载到 project['resource'] 中。

  • ISNSTopic 有 cross_account_access,它为 AIM 项目中的所有账户授予 sns:Publish 权限。

  • IAccountContainer 和 IRegionContainer 是轻量级容器,用于账户和区域信息。它们可以被需要以多账户、多区域方式设置资源的 Services 使用。

更改

  • CloudTrail 将 CloudWatchLogGroup 定义为子对象而不是 paco.ref。

  • 警报的 get_alarm_actions_paco_refs 已重命名为 get_alarm_actions,因为警报只能提供 paco.refs 并且需要从堆栈中获取 ARNs。

  • NotificationGroups 现在是资源。现在它们有常规的 paco.ref。

5.0.0 (2019-08-26)

新增

  • 新增字段 paco.models.reference.FileReference,它解析路径并用路径指示的文件的值替换原始值。IApiGatewayRestApi.body_file_location 使用这个新字段。

  • ApiGatewayRestApi 和 CloudWatchAlarm 有一个 cfn_export_dict 属性,它返回一个新字典,可以用于创建 Troposphere 资源。

  • 为 ACM 添加了外部资源支持。

  • 为管理员 IAMUserPermission 添加了只读支持。

更改

  • 多维度警报现在需要指定作为值的 paco.ref

  • 添加了 IAMUser 模式和 IAM用户的加载。

  • 为将逗号分隔列表加载到 schema.List() 中添加了 CommaList() 模式类型。

  • 将 aim 引用生成移动到模型。模型对象现在具有 .paco_ref 和 .paco_ref_parts 属性,它们包含它们的 paco.ref 引用。

  • 将 project['ne'] 重命名为 project['netenv']。

  • 修改了 NatGateway 段以使用 aim 引用。

修复

  • 资源没有检查不变量。如果它们不包含在 zope.schema.Object 字段中,则加载器需要检查不变量,该字段将在幕后运行检查。

4.0.0 (2019-08-21)

新增

  • 已向模型添加 IVPCPeering 和 IVPCPeeringRoute 以支持 VPC 对接。

  • Resources/CloudTrail.yaml 中添加了 CloudTrail 模式配置。

  • IS3BucketPolicy 现在有 principalcondition 字段。principal 可以是一个键值字典,键可以是 'AWS'、'Service' 等,值可以是 String 或 List。它是 aws 字段的替代,aws 字段将保留用于设置简单的 AWS 唯一主体。condition 字段是一个键值字典的键值过滤器。

  • 警报现在有 'get_alarm_actions' 和 'get_alarm_description' 来帮助构建警报。

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

  • IAlarm 有 descriptionrunbook_url 字段。

  • CodePipeBuildDeploy.resolve_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现在有一个paco_project_version字段来存储此值。

  • ICloudWatchAlarm添加了一个namespace字段。可以用来覆盖默认的资源命名空间,例如,使用'CWAgent'用于CloudWatch代理指标。

  • IResource现在有一个resource_fullname字段。这是在CloudWatch Alarm中指定指标所需的全名。

  • ICloudWatchAlarm现在有一个dimensions字段,它是一个Dimension对象的列表。

  • ITargetGroup现在从IResource继承。它从输出中加载resource_name。

3.0.0 (2019-08-06)

新增

  • 新增了包含通知订阅组的MonitorConfig/NotificationGroups.yaml

  • Lambda的新sdb_cache字段。

  • Lambda可以有警报。

  • ISNSTopic和ISNSTopicSubscription用于建模SNS。

更改

  • 所有引用都已重命名,以paco.ref开头,以保持一致性。

  • AlarmSets、AlarmSet和Alarm现在都实现了INamed接口,并在模型中可定位。

  • 服务插件可以加载它们的输出。

2.0.0 (2019-07-23)

新增

  • 警报订阅的Notifications架构。

  • 为Resources/S3.yml配置添加了S3Resource。

  • 添加了Lambda resolve_ref支持。

更改

  • 服务作为名为paco.services的入口点插件加载。

  • 重构了模型的应用程序、资源和服务。

  • 将IRoute53重命名为IRoute53Resource。

修复

  • CloudWatchAlarms现在验证'performance'、'health'或'security'分类字段值的提供。

1.1.0 (2019-07-06)

新增

  • 添加了function.ref以查找最新的AMI ID。

  • 为架构添加了更多约束。

  • 为IS3Bucket.policy添加了默认值。

  • 将Route53添加到架构和模型中。

  • 将ALB中的监听器和监听规则列表转换为字典。

更改

  • 现在使用Fields的描述属性来描述约束。

  • 将CodeCommit迁移到架构和模型中。

  • 重构S3以使用Application StackGroup。

  • CPBD工件s3存储桶现在在NetEnv yaml中使用S3资源。

  • 将ALB的监听器和监听规则列表转换为字典。

已移除

  • 已从fixtures下的pacodemo中移除未使用的yaml配置。

1.0.1 (2019-06-19)

  • 改进了Python打包元数据。

1.0.0 (2019-06-19)

  • 第一个开源版本。

项目详情


发布历史 发布通知 | RSS源

下载文件

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

源代码分发

本版本中没有可用的源代码分发文件。请参阅有关生成分发存档的教程。

构建的分发

paco.models-7.8.37-py3-none-any.whl (247.2 kB 查看哈希值)

上传时间 Python 3

由以下支持