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_id
和origin_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_manager
到IASG
。
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
基类和IApplicationLoadBalancer
和INetworkLoadBalancer
类。将LBApplication
类重命名为ApplicationLoadBalancer
。
新增
-
AlarmDescription元数据现在包括一个'ref'字段,它是Alarm资源的paco.ref部分。
-
为
IS3BucketPolicy
和IStatement
的condition
字段添加了对有效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_resources
和enable_cors
。 -
新方法
Project.get_all_resources_by_type()
依赖于 Project 资源注册表,该注册表包含按类型分组的所有应用程序资源。轻松跨应用程序查询! -
loader 有一个
validate_local_paths
,允许从可能没有本地路径的 CI/CD 或其他环境中加载模型。 -
新增
IBinaryFileReference
用于加载二进制文件。 -
支持 CloudFront LambdaFunctionAssociation 和 Lambda@Edge 的初始支持。
-
初始支持 Cognito,并为
ICognitoUserPool
和ICognitoIdentityPool
提供资源类型。 -
TargetGroup 字段有一个
target_type
。 -
ECSServices 支持使用 Fargate。
-
ECSService 有一个用于服务扩展的
target_tracking_scaling_policies
。 -
为错误配置的 AlarmSets 提供有用的错误信息。
-
将
monitoring
添加到ECSServices
和ECSCluster
。 -
将
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
模式,使其不再提供IResource
。 https://github.com/microsoft/pylance-release
7.4.0 (2020-07-14)
新增
-
DeploymentPipeline 现在有一个
ECR.Source
操作。 -
添加了与
IDeployable
相同的IEnablable
,但默认为 true。 -
添加了
IRDSMysqlAurora
和IRDSPostgresqlAurora
以支持 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_size
和update_policy_min_instances_in_service
已被移除。相反,使用 ASG 字段的rolling_update_policy
并设置max_batch_size
和min_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 中支持
users
和groups
。使用不变性来防止用户名重复组名。
更改
-
暂时禁用 .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具有
description
和cache_clusters
字段,而IElastiCacheRedis具有snapshot_retention_limit_days
和snapshot_window
字段。 -
IRDS具有新的
license_model
、cloudwatch_logs_export
和deletion_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_name
和primary_hosted_zone
更改为 IDNS 对象。
修复
- 警报覆盖现在转换为字段的模式。修复了当模式期望一个 float() 时,“threshold: 10” 载入为 int() 的问题。
6.0.0 (2019-09-27)
新增
-
ICloudWatchAlarms 有
enable_ok_actions
和enable_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 现在有
principal
和condition
字段。principal
可以是一个键值字典,键可以是 'AWS'、'Service' 等,值可以是 String 或 List。它是aws
字段的替代,aws
字段将保留用于设置简单的 AWS 唯一主体。condition
字段是一个键值字典的键值过滤器。 -
警报现在有 'get_alarm_actions' 和 'get_alarm_description' 来帮助构建警报。
-
CloudTrail 有 'get_accounts',它将 CloudTrail.accounts 字段解析为模型中 Account 对象的列表。
-
IAlarm 有
description
和runbook_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)
- 第一个开源版本。
项目详情
下载文件
下载适合您平台文件的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。