跳转到主要内容

Pa-co:为云编排指定的自动化工具

项目描述

Pa-co:为云编排指定的自动化工具

PyPi version t

Pa-co是AWS的云编排工具。它允许您使用声明性YAML自动化云资源的创建和管理。更多信息请参阅paco-cloud.io网站

使用Pa-co

Pa-co可以从PyPI上的paco-cloud包中通过pip安装。

pip install paco-cloud

更多信息请参阅Pa-co安装说明。然后查看Pa-co入门了解如何创建Pa-co项目和将其连接到您的AWS账户。

参与其中

作者

由Kevin Lindsay和Kevin Teague为Waterbear Cloud创建Paco。

Paco的变更日志

9.3.45 (2024-04-08)

新增

  • 新增了'Encrypted'标志,默认在EBS卷上设置为'true'

  • 为ALB SSL证书添加了LBResourceIsEnabled条件,以避免在CostDisabled模式下创建

  • 为网络负载均衡器添加了静态IP支持。

修复

  • 修复了ALB目标组名称生成问题

  • 修复了IAM用户账户代理IAM策略以更新IAM用户访问密钥的问题

  • 修复了IAM用户密码生成算法

  • 修复了AWS更改后的备份库选择语法

9.3.44 (2023-12-21)

新增

  • 在删除ECS服务时,在ECS服务列表服务API调用中添加了try catch以防止失败。

修复

  • 修复了ECS服务目标跟踪禁用时发生的异常。

更改

  • 将CloudFormation模板参数中的Desired、Min和Max Tasks计数从String更改为Number,以解决最近的CloudFormation验证错误。

9.3.43 (2023-09-26)

新增

  • 添加了ECRReplicationConfiguration资源

  • 添加了external_resource到GuardDutyDetectorRegion

  • 为旧ECS跟踪策略名称添加了legacy标志

  • 将me-central-1添加到负载均衡器托管区域

  • 将区域名称添加到部署管道IAM角色中,以防止冲突

  • 将release.version添加到ec2lm PutObject存储桶策略中。

  • 为默认密钥值添加了secrets_manager_default_2023_03_09 legacy标志

  • 添加了对非默认区域的支持

  • 开始添加ECR仓库复制

  • 开始添加对LaunchTemplates的支持

  • 如果部署管道上禁用了监控,则禁用通知规则

修复

  • 修复了ECS任务VPC网络配置

更改

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

  • 将Amazon Live修补命令转换为使用发布版本。

9.3.42 (2023-07-19)

新增

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

  • 添加了新的GitHub OIDC指纹

9.3.41 (2023-06-27)

新增

  • 添加了对IAM角色名称的支持。

  • 添加了CloudWatch日志资源

  • 添加了对IAM用户代理自定义策略权限的条件支持

  • 添加了EC2LM函数以清除codedeploy。

  • 添加了EC2LM函数以运行准备EC2以运行Create AMI命令的命令。

  • 添加了EventBridge资源

  • 为段添加了NACL配置支持

  • 为WAFWebACL规则添加了RuleOverrideAction

  • 添加了SSM函数以调用EC2LM函数以准备Create AMI。

  • 将Sid字段添加到策略Statement()模型对象中

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

  • 为负载均衡器添加了跨区域配置

  • 为负载均衡器添加了跨区域配置

  • 将disable_account_delegates添加到IAMUser中,允许在任何帐户中创建用户

  • 将event_bus字段添加到IEventsRule

  • 将get_arn()函数添加到CloudWatchLogGroup模型对象中

  • 将managed_policy_arns字段添加到IAM用户自定义策略模型对象中

  • 添加了对IAM用户的管理策略支持,可以直接将策略附加到用户。

  • 为WAF规则添加了override_action

  • 添加了对Amazon Linux 2023的支持

  • 为IAMRole应用程序资源添加了对IDP角色的支持

  • 添加了对IMDSV2 EC2元数据身份验证的支持

  • 为EventsRule添加了对合作伙伴集成支持

  • 添加了对me-central-1(UAE)区域的支持

  • 添加了对me-central-1(UAE)区域的支持

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

修复

  • 修复了在列表中使用PacoReference str_ok时的问题

  • 修复了VPC对等表名称,以使其更独特

  • 修复了VPC对等在多区域配置中工作的问题

  • 修复了VPC堆栈删除清理钩子,如果VPC私有托管区域不存在,则失败。

  • 修复了ECR部署实例中的权限

更改

  • 改进了Create AMI命令

  • 当由iam_user_account_delegates生成时,使策略名称唯一

  • 当由iam_user_account_delegates生成时,使策略名称唯一

  • 修改了ECR Deploy Script Manager,为每个ecr_deploy_name生成单独的脚本

  • 将SecurityGroupRule cidr_ip类型从TextLine修改为PacoReference

  • 修改了部署管道,使其在S3配置未显式设置帐户时使用默认帐户来存储S3工件存储桶。

  • 将负载均衡器监听规则中的'host'字段改为列表。

  • 禁用了ASG监控中asg_metrics的自动填充。

9.3.40 ((2023-02-28))

新增

  • 将--alarms-only/-a选项添加到paco参数中。

  • 将--ssm参数添加到provision paco命令中,以便在实例上运行SSM命令。

  • 添加并替换了IAM角色资源。

  • 添加了AMI命令来自动创建EC2 AMI。

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

  • 添加了访问密钥IAM用户权限。

  • 添加了AppConfig资源。

  • 将CacheClusterId和PrimaryNodeId添加到Elasticache redis cftemplate输出中。

  • 添加了CloudWatch资源用于Consolidated Monitoring Account配置。

  • 将条件添加到AssumeRolePolicy中。

  • 将DomainName和RegionalDomainName添加到S3存储桶输出中。

  • 为VPC添加了EC2流量日志。

  • 添加了EC2控制器预加载以允许全局引用EIP。

  • 添加了ECSCluster Delete堆栈挂钩,在删除DBClusters时删除服务。

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

  • 添加了GuardDuty资源。

  • 将GuardDuty添加到EventsRule状态中。

  • 添加了IAMPolicy资源。

  • 将Identity Provider角色添加到ECR存储库中。

  • 为ECRRepository添加了图像扫描支持。

  • 将ImageTag参数添加到ECS服务中。

  • 添加了Inspector资源。

  • 将Inspector添加到EventRule源类型中。

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

  • 将Listener Rule TargetGroup ARN参数添加到LB CFTemplate中。

  • 将ListernRuleArn CloudFormation输出添加到负载均衡器中。

  • 为Cloudfront分发添加了日志记录。

  • 将Paco-Resource-Type标签添加到ECS服务中。

  • 添加了PacoService资源。

  • 将只读模式添加到EFS挂载中。

  • 将ResponseHeaderPolicy添加到CloudFront资源中。

  • 将保留删除策略添加到EIP模板中。

  • 将角色添加到resource.iam中。

  • 添加了用于更新实例包的SSM文档。

  • 将Ubuntu 22.04支持添加到paco.ref ami函数中。

  • 将UpdateFunctionConfiguration添加到Lambda IDP角色权限中。

  • 将VPCEIP添加到network.vpc配置中。

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

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

  • 添加了从CFN参数管理服务的能力。

  • 添加了向Lambda IDPRoles发布版本、层和更新函数代码的能力。

  • 将帐户字段添加到ILambda中。

  • 将ec2lm_update_packages()函数添加到EC2LM中。

  • 将assume_role_policies添加到BaseRole中,以允许多语句AssumeRole策略。

  • 将可用区字段添加到VPN客户端端点中。

  • 添加了检查,如果不已附加集群容量提供程序,则不附加。

  • 将codedeploy_stack_name_2022_07_07添加为遗留标志。

  • 将条件添加到Listener Outputs参数中。

  • 将config_scope参数添加到loader中。

  • 将external_repository_arn添加到ECSRepository资源中。

  • 将federated添加到Principal架构中。

  • 添加了文件锁定以允许并行paco调用。

  • 将hash_long_names添加到LoadBalancer get_aws_name()模型对象函数中。

  • 将ignore changes字段添加到Loadbalancer ListenerRule目标组中。

  • 将ignore字段添加到ECSContainer Definitions和单个服务中。

  • 将lambda_version添加到CloudFront lambda函数关联中。

  • 添加了list_split()实用方法。

  • 为GuardDuty添加了监控。

  • 为resource.route53添加了paco范围过滤器。

  • 为resource.route53添加了paco范围过滤器。

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

  • 将response_headers_policy_id添加到CloudFront默认缓存行为中。

  • 将ssm:PutComplianceItems添加到SSM策略中。

  • 为负载均衡器中的SSL证书添加了对ARN的支持。

  • 添加了对EventsRule监控的支持。

  • 添加了对Inspector在EventBridge通知中的支持。

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

  • 为 BotoStacks 添加了对全局资源的支持

  • 为 CFN 网络添加了对自动将 UsePreviousValue 设置为 False 的支持,当 usePreviousValue 不在之前的模板中时返回错误。

  • 在 IAM 删除堆栈钩子中添加了对从角色中删除附加策略的支持

  • 添加了对设置 NAT 实例 AMI 的支持

  • 向 IEBS 添加了标签字段

  • 在 VPC 清理钩子周围添加了 try/except 捕获

  • 在 VPC 清理钩子周围添加了 try/except 捕获

  • 将日志组合并添加到 ECS 集群

  • 允许在 LBApplication 监听器 ssl_certificates 列表中使用 ARN

  • 将 IAM 用户委派资源 arns 中的 IAM 用户更改到 CF 模板中的 ${aws:username}。

  • 将 IAM 用户策略更改为使用 ${aws:username} 而不是显式名称

  • 将 RDS KMS 密钥的 DeletionPolicy 更改为 Retain,以允许从已删除的 RDS 集群保留快照。

  • 将 RDS KMS 密钥的 DeletionPolicy 更改为 Retain,以允许从已删除的 RDS 集群保留快照。

  • 将 ResponseHeaderPolicy 资源名称更改为包含 netenv 和环境名称。

  • 将 StackTemplate 更改为在没有 paco_ctx 或堆栈的情况下可初始化。

  • 将 ecr 仓库 .repository_name 更改为 .full_repository_name

  • 将 paco_ssm 日志组有效期更改为 365 天

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

  • 当 cost_disabled 为 True 时,ALB 不会更新 DNS。

  • 创建 OIDCIdentityProvider CFTemplate

  • 禁用 Cloudformation 信号睡眠

  • 禁用私有托管区域的 DHCP 选项。网络加载失败。

  • 现在由于 Stack() 类正在管理,因此禁用了网络环境控制器堆栈输出的保存。

  • 在删除之前现在将 ECR 仓库清空。

修复

  • 修复了 ASG ECS 集群容量提供者附加

  • 修复了 SystemsManager IAM 用户委派权限中的账户名称

  • 修复了 CodeDeploy 堆栈名称,当 codedeploy_stack_name_2022_07_07 功能标志启用时包括操作名称。

  • 通过将其分解为块来修复 CodePipelineRetryStagesPolicy 配额大小。

  • 修复了 EC2LM EBS 卷附加启动包

  • 修复了 ECR IDP 角色条件

  • 修复了非全局资源资源的 EIP CF 逻辑 ID

  • 修复了 IAM 角色删除钩子以清理附加策略

  • 修复了 RDS CF 模板中的日志导出列表

  • 修复了 SSMSession IAM 权限

  • 修复了 VPC 对等自动化

  • 修复了 VPC 对等,当配置时使用 IAM 角色名称。

  • 修复了 VPC private_hosted_zone。现在它将自己与 VPC 关联,并为 DHCP 选项设置域名。

  • 修复了新 ami 命令生成 EC2 图像时的错误

  • 修复了默认 SecretsString 为 {}

  • 修复了从管理密钥的外部管理标志 IAM 用户访问密钥凭证

  • 修复了资源.route53 路径上的 model_obj

  • 修复了 SSM 端口转发和 CodeDeploy 工具委派的权限

  • 修复了删除集群中 ECS 服务的钩子

更改

  • 实现了 VPC VPN 客户端端点

  • 改进了当引用无法解析为 stack for 时的错误信息

  • 使 ECSASGConfiguration 可部署

  • 使 Route53 HostedZone 尊重它们的 is_enabled() 标志。

  • 使 VPC 对等 vpcid 查找解析为堆栈输出。

  • 修改仪表板名称以包括 NetEnv 和环境名称

  • 修改 ResourceEngine() 以与全局资源接口,而不仅限于 ApplicationEngine() 内部

  • 修改警报以在禁用监控时创建空堆栈

  • 修改 swapon 以在可用时使用 fallocate 代替 dd

  • 将 ASG 移植到 troposphere 4.x

  • 正在将代码移植到 troposphere 4.x

  • 如果它们以 aws、ecs 或 fargate 开头,则将 cp- 前缀添加到 ECS 容量提供者名称

  • 发布阶段脚本现在将删除任务定义中的标签

  • 在 ASG 删除时开始添加 DisableScaleIn 钩子

  • 更新了 gitignore

  • 在删除之前现在将 VPC 私有托管区域清空。

9.3.39 ((2022-07-08))

新增

  • 添加了 ALB 监听器默认操作

  • 将 Paco-Resource-Sub-Type 标签添加到具有值 'Alarms' 的警报堆栈

  • 添加了 S3 注册钩子

  • 向 project.yaml 添加了功能标志选项

  • 向 Paco 上下文添加了 alarms_only 标志。(还需要添加 CLI 参数)

  • 当角色已被删除时,增加IAM策略清理时的异常处理

  • 增加has_kvp()到StackTags()

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

  • 增加s3_buckets到ILambda以明确Lambda权限调用InvokeFunction

  • 允许启用网络但禁用VPC。

  • 将Alarms CF Stacks Paco-Resource-Type更改为名称后附加"-Alarms"。

  • 禁用ECS启动类型为Fargate的PlacementStrategies

修复

  • 修复SSM会话访问的IAM代理权限

更改

  • 将ASG用户数据处理移动到EC2LM。

  • 修改CODEPIPELINE_CODEDEPLOY_INIT_STAGE_HOOK的行为。

9.3.38 ((2022-06-02))

新增

  • 将构建工件添加到.gitignore

修复

  • 修复IAM角色清理堆栈钩子,该钩子从角色中删除策略

9.3.37 ((2022-05-27))

新增

  • 增加堆栈钩子以在删除角色之前清理IAM角色策略

修复

  • 修复CodeDeploy EC2LM启动包中的dpkg purge语法

  • 修复用户数据脚本中的nosync标志和aws s3 EC2LM下载

9.3.36 ((2022-05-25))

新增

  • 为DeploymentPipeliens IAM代理策略添加CodeDeploy支持

  • 在EventsRule中添加对S3事件的支撑

  • 为CodeDeploy AMI Builder添加临时服务钩子代码

9.3.35 (2022-05-06)

新增

  • 为Alarms添加自动支持LoadBalancer和TargetGroup

  • 为TG资源添加TargetGroup名称标记

  • 为目标组添加启用/禁用功能

  • 为EC2LM添加Windows PowerShell支持

  • 添加自定义pypi上传脚本

  • 将新文件夹添加到.gitignore

修复

  • 修复Windows SSM CodeDeploy安装

  • 修复CW Alarms中的重复警报

  • 修复ec2lm端口中的拼写错误

更改

  • 将EC2LM脚本移动到自己的模块。

  • 移除debug breakpoints()

9.3.34 (2022-05-01)

更改

  • 测试新的PyPi构建和上传脚本

9.3.33 (2022-05-01)

更改

  • 测试新的PyPi构建和上传脚本

9.3.32 (2022-05-01)

更改

  • 测试新的PyPi构建和上传脚本

9.3.31 (2022-05-01)

更改

  • 测试新的PyPi构建和上传脚本

9.3.30 (2022-05-01)

修复

  • 修复发布阶段脚本

  • 修复LogGroup默认过期时间

  • 修复Cost Disabled堆栈输出

  • 修复ALB上的调试条件

新增

  • 为IAM用户实现密码限制,实现默认_password字段。

  • 将ALBs添加到空闲服务

  • 将环境名称添加到通知规则配置。

  • 添加检查以避免更新KMS堆栈上的标签。

  • 将环境名称添加到通知规则配置。

  • 添加检查以避免更新KMS堆栈上的标签。

  • 为堆栈添加Paco-Resource-Type和Paco-Reference标签

  • 添加对CostDisabled ALBS的支持

  • 添加ec2lm_get_secret_from_json()函数

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

  • 为DeploymentPipelines添加DetectChanges

  • 添加GitHub CodeStar连接支持

  • 为DeploymentPipelines添加DetectChanges

  • 实现新的PacoServiceHook

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

  • 添加CodeDeploy服务支持

更改

  • 开始查看AWS Lambda Layers

  • 当目标为lambda时,从EventsRule中删除RoleArn

  • 移动EC2LM锁文件

9.3.29 (2022-03-25)

新增

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

  • 添加DNS启动包

  • 为HostedZone CF输出添加ARN

  • 为utils添加load_content

  • 添加EventsRule资源状态生成和上传

  • 将项目名称添加到EventsRule Codebuild项目中

  • 修复缺失EC2LM缓存文件的问题

  • 添加对EventsRule通知的支持

  • 将obj_to_dict()函数添加到utils

  • 为SNS主题添加事件桥接通知访问

  • 为EventsRules添加事件模式支持

  • 为EventsRules添加通知

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

更改

  • 当ALB禁用时,ASG自动禁用目标组

  • 使DELETE确认更加稳健

修复

  • 正确修复删除堆栈的确认逻辑

9.3.28 (2022-03-04)

更改

  • 更新paco.models依赖

9.3.27 (2022-03-04)

修复

  • 修复Troposphere升级后的EventsRule目标问题
  • 修复一个边缘情况,即paco命令参数中缺少home

新增

  • 将部署分支添加到GitHub webhook过滤器
  • Codebuild现在支持NO_SOURCE
  • 为ElastiCache添加DNS
  • 为Windows服务器添加安装CodeDeploy的SSM命令
  • 已将 IAM 角色名称和Arn添加到堆栈输出中
  • 已将环境类型添加到CodeBuild部署管道配置中
  • 添加了对CodePipeline和EventPattern事件规则的初步支持

更改

  • 更新了CodeDeploy EC2LM等待部署的逻辑

9.3.26 (2022-02-09)

新增

  • 将构建批配置添加到CodeBuild中

9.3.25 (2022-02-08)

新增

  • 将github访问源配置添加到CodeBuild中

  • 将enable_automatic_backups添加到IEFS

更改

  • 在等待健康检查超时之前,ec2lm_signal_asg_resource现在将等待部署

  • 使用非交互式参数更新了ubuntu包更新命令

  • ec2lm_signal_asg_resource现在在向CloudFormation发出信号之前将等待CodeDeploy部署

  • 默认情况下,在EFS上启用加密

9.3.24 (2022-01-31)

新增

  • 添加了CodeBuild工件配置

9.3.23 (2022-01-27)

新增

  • 将deployment_branch_name添加到CodeBuild GitHub源配置中

  • 将source_security_group_owner添加到SecurityGroup以实现跨账户访问

  • 在CodeBuild VPCConfig服务角色上添加了IAM策略条件

  • 将CodeBuild支持添加到EventsRules

  • 将SubnetId ARNs添加到段的CFN输出中

  • 将CodeBuild支持添加到EventsRule

  • 在netenvs之间自动实现了VPC对等连接

  • 添加了-l --cfn-lint参数以执行额外的CloudFormation错误检测

  • 将VpcConfig添加到codebuild配置中

  • 将可用区配置添加到VPC端点

修复

  • 修复了elasticache安全组CFN参数的逻辑名称

更改

  • 移除了CodeDeployConfiguration Name,允许CF在HOST_COUNT更改时替换资源。

  • 从端口号中移除了字符串值

  • 在segments CF模板中移除了重复的NACLAZ3条目

  • 从windows cloudwatch配置中移除了不必要的维度

  • 实现了VPC端点的启用/禁用

  • SSM等待命令现在将跳过未运行的实例

  • 改进了EC2LM捆绑缓存和更新

9.3.22 (2021-12-17)

新增

  • 实现了IAM角色资源

  • lambda部署命令现在可以上传以.zip结尾的预制作.zip文件。

  • 添加了对paco_buckets.is_bucket_created()的TokenExpired重试支持

  • 添加了对paco_buckets.is_bucket_created()的TokenExpired重试支持

更改

  • 如果没有指定,DeploymentPipeline将默认使用环境帐户。

9.3.21 (2021-11-24)

新增

  • 实现了IDeploymentPipelineConfiguration的'disable_codepipeline'以允许独立构建阶段资源。

  • 实现了CodeBuild GitHub源配置

9.3.20 (2021-11-23)

修复

  • EC2LM:只有当EFS实用程序不存在时,才会安装EFS实用程序

  • EC2LMS:EFS:将tmp目录移动到根目录以用于CIS强化的ubuntu镜像。

  • EC2LMS:EFS:使EFS驱动器的挂载成为幂等的

  • 修复了Ubuntu EFS启动捆绑安装

  • 修复了CIS强化的镜像上的CodeDeploy代理安装

  • 修复了对Route53 HostedZones的外部资源支持

新增

  • 将ec2lm_set_dns_cname()函数添加到EC2LM以进行更具体的DNS修改

  • 将ec2lm_set_dns()函数添加到EC2LM

  • 添加了对ubuntu_18_cis ami类型的支持

  • 添加了对Lambda函数的region支持。

  • 实现了SystemsManagerSession IAM策略

更改

  • 改进了发布阶段部署脚本的可靠性。

  • 自动实现了ManualApproval资源的IAM DeploymentPipeline权限

  • 自动实现了ASG的AlarmSets命名空间

  • 修复了手动批准IAM DeploymentPipeline策略。

  • 修复了手动批准IAM DeploymentPipeline策略。

  • 修复了EBS EC2启动捆绑以与Ubuntu nvme驱动器一起工作

9.3.19 (2021-10-04)

新增

  • 添加了RDS Aurora MySQL无服务器支持

  • 添加了对EBS卷挂载的非paco.ref支持

  • provision在CodeCommit中将显示存储库ssh克隆URL。

修复

  • 修复了当帐户ID以零开头时的AWS原则

  • 修复了DeploymentPipeline IAM权限

9.3.18 (2021-09-10)

新增

  • 在cftemplate.lb中添加了安全组的服务钩子

  • 添加了TargetGroup的启用/禁用

  • 将HealthCheckPort添加到TargetGroups

  • 将WebACL paco.ref支持添加到cloudfrom webacl_id字段。

  • 添加了WAFv2资源

修复

  • 修复了RDS cftemplate中存储_encrypted的实现

9.3.17 (2021-08-26)

更改

  • LogGroups现在在RDS、ASG和S3Buckets中不受change_protected标志的影响

  • 默认启用s3 Bucket加密

新增

  • 实现了跨帐户桶的S3 Bucket复制

  • 实现了bucket_owner_preferred用于S3 Bucket资源

  • 将backup_restore_bucket RDS选项字段添加到RDSSQLServerExpress资源中。

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

  • 添加了ec2lm_replace_secret_in_file_from_json()函数到EC2LM

  • 增加了对Ubuntu 18的支持

  • 在DeploymentPipeline源中增加了BitBucket支持

  • 增加了IASGPatchManager以实现自动Windows补丁管理

修复

  • 如果cloudfront中的hosted_zone未定义,则防止创建记录集。

  • 修复了IAM策略名称生成,现在支持127个字符,之前仅为64个。

  • 修复了codedeploy启动包。

  • 修复了RDS参数组,允许空参数。

9.3.16 (2021-06-25)

修复

  • 修复了当使用多个服务时ECSService警报的问题。

新增

  • 增加了-h/--hooks-only标志,用于更新EC2配置而不影响堆栈。

9.3.15 (2021-06-08)

新增

  • 实现了SQLServerExpress RDS。
  • 实现了使用SSM文档的Windows SSM Agent更新。
  • 向IListenerRules添加了redirect_path。
  • 在network.vpc中实现了VPC Endpoints,用于ssm、ssmmessages和ec2messages。
  • 自动化ALB访问日志存储桶策略。
  • 增加了VPCEndpoints CFTemplate。

更改

  • IAM控制现在在resource.iam操作上打印用户的SwitchRole URL。

9.3.14 (2021-05-11)

更改

  • 使ASG实例密钥对可选。

新增

  • 为ECS服务中的binpack.memory添加了默认PlacementStrategy。

  • 将子环境缓存添加到网络环境控制器。

  • 将Arn输出添加到S3云形成模板。

修复

  • 修复了paco init cookiecutter AlarmSets缺少分类字段的问题。

9.3.13 (2021-05-04)

新增

  • 添加了paco.models 7.8.10依赖项。

9.3.12 (2021-05-04)

新增

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

9.3.11 (2021-04-23)

新增

  • 增加了禁用ECS服务的支持。

  • 将资源组名称添加到ACM botostack名称中。

修复

  • 修复了ECS docker_exec脚本。

  • 修复了CodeStart NotifciationRule名称过滤器在生成资源名称时的错误。

  • 修复了ALB中唯一的监听器SSL证书名称。

  • 修复了如果规则没有任何事件ID时,DeploymentPipeline通知规则的问题。

9.3.10 (2021-04-19)

新增

  • 将重启服务功能添加到ecs脚本中。

9.3.9 (2021-04-19)

新增

  • 将日志添加到SSM实例EC2LM更新运行命令中。
  • 将docker-exec命令添加到ECS ScriptManager脚本中。

更改

  • 改进了ECR Deploy脚本,使其能够使用与源相同的标签标记目标镜像。

9.3.8 (2021-04-09)

修复

  • 修复了ECR部署脚本中发布阶段脚本名称的问题。

  • 修复了在Ubuntu上codedeploy EC2启动包的问题。

  • 修复了CodeBuild IAM权限策略的唯一密钥。

  • 通过添加缓存修复了SNS主题策略重复的问题。

新增

  • 为监听CloudWatch警报通知的SNS主题添加了IAM策略声明。

  • 为警报描述添加了paco注册表覆盖。

  • 如果资源配置缺失,则DeploymentPipeline的通知规则将继承应用程序通知配置。

更改

  • 改进了处理警报操作时的错误处理。

  • 格式化了资源状态s3存储桶键。

9.3.7 (2021-04-06)

新增

  • 在paco工作存储桶中增加了对资源状态的支持。

修复

  • 修复了SNS主题跨帐户+跨区域策略。

9.3.6 (2021-04-02)

新增

  • 增加了对跨帐户+跨区域SNS Lambda订阅的支持。

  • 将通知规则添加到DeploymentPipelines中。

  • 为ASGs添加了脚本管理器中的ECS实用工具。

修复

  • 修复了CF对LBv2证书的处理。

  • 移除了cloudfront在证书上强制使用us-east-1的功能。相反,抛出异常。

  • 当调用时,iotpolicy.get_outputs()现在将获取策略arn,如果它不存在。

  • 修复了EC2LM凭据丢失的竞态条件代码。

9.3.5 (2021-03-15)

修复

  • 为7.8.4添加了paco.models依赖项。

9.3.4 (2021-03-15)

新增

  • 为环境和资源组添加了import_from功能。

  • LogGroup堆栈将在堆栈删除时使用堆栈钩子删除组。

修复

  • 容量提供者状态管理器现在处理ASG创建。

9.3.3 (2021-03-11)

新增

  • Route 53具有A别名支持。

修复

  • ECS容量提供者配置确保集群附加到正确的提供者。

  • CloudFront viewer_certificate在工厂为None时正确处理。

  • EC2启动包:修复了一个竞态条件,其中实例在附加之前尝试使用其IAM角色。

9.3.2 (2021-02-24)

新增

  • CloudFront支持OriginRequestPolicyIdCachePolicyId,这可以在CloudFront资源中通过新的cache_policy_idorigin_request_policy_id字段设置,用于CloudFront的cache_behaviors字段。

9.3.1 (2021-02-05)

新增

  • 新增 EC2LM 异步运行命令的便利函数:ec2lm_async_runec2lm_async_run_wait

更改

  • ECS 发布阶段命令以异步方式运行。

9.3.0 (2021-02-04)

更改

  • 已弃用的 resource.snstopics 已被移除。CloudWatch Alarms 现在通过 resource.sns 发出警报。

9.2.5 (2021-02-03)

  • 添加了对外部 CW Log Groups 的日志记录。

9.2.4 (2021-01-29)

  • script_manager 添加到 ASG 以进行 ECR 部署。

9.2.3 (2021-01-13)

修复

  • 更新依赖 paco.models 7.7.4。

9.2.2 (2021-01-13)

更改

  • ASG 启动选项字段 codedeploy_agent 现默认为 False。

修复

  • paco.sub 将现在查找堆栈输出以解决引用堆栈的引用。

  • 修复了 DynamoDB 引用字符串。

  • 向 CodeBuild 发布阶段添加了 DescribeImages 权限。

9.2.1 (2021-01-05)

新增

  • 允许将 Managed Instance Protection 设置为 ENABLED/DISABLED 用于 ECS ASG Capacity Provider。

9.2.0 (2021-01-05)

新增

  • ECS 服务可以指定其容量提供者。

  • ECS 集群可以指定整个集群的默认容量提供者。

  • ECS 发布阶段命令。通过 SSM 启动任务并通过 CodeBuild 执行,等待成功然后继续到下一个 CodePipeline 阶段。

更改

  • ECS CodePipeline 部署代理角色权限更为严格/安全。

修复

  • resource/iam.yaml:DeploymentPipeline 中的 CodeBuild 权限正确解析。

9.1.0 (2020-12-23)

新增

  • 对 LBNetwork 类型:网络负载均衡器的初始支持。

  • 新增用于配置 DynamoDB 表的 DynamoDB 资源。

  • 新增 S3BucketPolicy 堆栈模板。

  • 支持 AWS Backup 中 BackupPlanRules 的 copy_actions,以允许跨账户备份。

  • IAM 策略和 S3 存储桶策略现在支持所有允许的 AWS 条件。

更改

  • EC2LM cfn-init 包现在使用 Python 3 cfn-init 2.0 包,而不是安装 Python 2 和旧的 cfn-init 1.4 包。

9.0.2 (2020-11-12)

修复

  • 需要 paco.models 7.6.1 与 codedeploy_agent 字段。

9.0.1 (2020-11-12)

新增

  • 使用 paco lambda invoke <paco-ref-parts> 从 CLI 调用 Lambda。

修复

  • 初始化多个 netenv,以防另一个 netenv 已由服务初始化。

9.0.0 (2020-11-07)

迁移

  • 需要在 ECSServices 资源中添加一个 DesiredTasks 堆栈参数。这必须在尝试向该 ECSServices 添加扩展配置之前完成。

新增

  • Lambda 触发器支持 CognitoUserPool 资源。

  • Paco 对秘密的引用可以在末尾有附加部分,以便解析到秘密值的 JSON 字段。

  • ECSServices 有一个新的 setting_groups 字段,它允许在容器定义之间共享相同的秘密和环境的集合。

  • ApiGatewayRestApi 模板提供方便的 enable_cors

  • ApiGatewayRestApi 提供嵌套资源。

  • Describe 命令具有 --output spa 选项,包含最小化 HTML。内容适用于用于 SPA。

  • ApiGatewayRestApi 支持启用 CORS 所需的所有字段。

  • ApiGatewayRestApi 可以执行跨账户 Lambda 集成。Lambda 将添加 Lambda 权限,允许来自其他账户的 API 网关调用它。

  • ApiGatewayRestApi 的输出

  • paco provision 有一个新的 -a, --auto-publish-code 选项,该选项将比较 Lambda 资源本地或目录或文件的 md5 哈希值,这些资源使用 zipfile: 与本地路径。如果本地代码已更改,则将创建新的工件并将其打包并上传到 S3 存储桶。

  • CloudFront 输出 iddomain_name

  • 支持 CloudFront 的 LambdaFunctionAssociations。

  • 支持 Lambda@Edge。

  • 支持 Cognito。

  • 支持 ECS Fargate。

  • ALB 目标组现在可以使用 target_type 字段。

  • 支持 ECS TargetTracking 服务扩展。

  • DeploymentPipeline 中的 CodeBuild.Build 动作现在支持一个 ecr_repositories 列表,可以声明 PushPullPushAndPull 权限。

  • 向 PacoBuckets 添加了 upload_fileobj 方法。

  • 已添加到资源模型对象的 StackHooks 在堆栈创建后会添加到堆栈中。

更改

  • 新增 BotoStack,包含 ACMIoTPolicy 资源类型。

  • set_parameter 对于 paso.stack.Stack 现在将替换同名的参数。这允许通过钩子更改参数。

修复

  • CodeCommit 用户Arn可以从正确的Stack中查找。

  • CloudFront处理未指定ssl_protocolshttps_port字段的CustomOriginConfig。

8.0.0 (2020-09-17)

迁移

  • Paco服务插件API已更改并重命名。添加了新的paco.extends包,它为服务提供了扩展Paco的单套API。还创建了扩展Paco的文档。

新增

  • 为应用程序级别的IAMUser类型添加了新的IAMUser StackTemplate。

  • 添加了新的PinpointApplication资源类型。实现最小化以支持仅使用事务消息的服务。

更改

  • 使用Troposphere 2.6.2,通过monkey-patch troposphere.elasticloadbalancingv2.LoadBalancer,使LBApplication能够将SecurityGroupsSubnets作为单个安全组列表参数传递。

修复

  • 如果没有resource/snstopics.yaml,则SNSTopic控制器不应加载。

  • resource.s3的配置使用错误的resource_ref。

  • ALB创建的Route53 RecordSets现在使用Route53账户,而不是默认使用当前账户。

  • CloudFront域别名现在使用账户的hosted_zone作为paco引用。

  • PyLance检测到修复和清理:https://github.com/microsoft/pylance-release

    • 移除未使用的reseng_lbclassic。
    • 仪表板:添加了错误处理的缺失导入。
    • RDS Aurora:修复了默认DB参数组变量的问题。
    • AWS Config:控制器修复。
    • IAM控制器:移除了未使用的get_role函数。
    • S3控制器:空桶错误消息使用正确的变量名。

7.2.0 (2020-07-14)

新增

  • 使用S3.Source的DeploymentPipeline将获得更宽松的访问权限,以便允许此操作。

  • DeploymentPipeline现在支持ECR.Source,可以直接与ECS.Deploy一起使用。

  • Aurora支持:RDSAurora和DBClusterParamaterGroup StackTemplates。

  • ASG有新的ssh_access字段,允许管理实例上的SSH公钥对的用户和组。

  • GitHub.Source操作带有WebHook用于sourcebuilddeploy风格的CodePipeline。

  • 初始ECS容量提供程序支持asg.ecs.capacity_provider(实验性)。

更改

  • ECR存储库有一个account字段,而不是硬编码到工具中。如果留空,它假定与环境的相同账户。

  • 现在可以使用account字段将机密部署到特定账户。

修复

  • EC2LM配置加载导致ECS代理在刚启动的实例上挂起。

7.1.1 (2020-06-23)

修复

  • 没有ECS配置的EC2实例在尝试制作启动脚本时失败。

7.1.0 (2020-06-22)

新增

  • CodeCommit用户有权限授予仓库读取或只读权限。

  • 初始ECS集群支持和ASG EC2LM支持ECS。

  • 添加了新的resource.sns控制器和模板。这允许配置新的"location"-style SNS Topics和Subscriptions。订阅已分割到自己的资源中,以便它们可以访问完整的订阅属性集。

  • S3桶中的CloudTrail日志现在可以使用KMS进行CMK加密。Paco将在与中央S3桶相同账户和区域的单个密钥中创建密钥。可以使用CloudTrail的kms_users字段授予IAM用户解密日志文件的权限。

  • 在paco.cftemplates.test包中启动paco.cftemplates测试套件的测试。

更改

  • 当服务插件初始化时,它们传递配置作用域的model_obj。

  • Lambda Paco日志组作为逗号分隔的字符串提供给其环境变量。

  • PacoContext的home属性现在是一个pathlib.Path对象。

修复

  • 启动项目更新为使用更新的ASG滚动更新语法。

7.0.0 (2020-05-09)

迁移

  • 使用 EC2 启动管理器(EC2LM)功能的自动扩展组不再将缓存 ID 存储在 UserData 中。而是通过 SSM 运行命令更新现有 ASG 的配置更改。此更改将允许在不循环 ASG 中新实例的情况下进行配置更改 - 例如,可以向 CloudWatch Agent 添加一个新指标,然后 SSM 运行命令将在所有实例上执行 ec2lm_launch_bundles

新增

  • Paco 桶:Paco 可以为其内部使用创建自己的 S3 桶 - 每个 account/region 组合一个桶。这些可以用于存储 CloudFormation 模板和 Lambda 代码工件。

  • 新 Paco 命令:paco lambda deploy <lambda-scope>,可以直接更新 Lambda 的代码工件。

  • 安全组对 CIDR IPv6 的支持

  • 除非显式将 launch_options.ssm_agent 设置为 false,否则 SSM 代理将安装在所有自动扩展组上

  • 如果 GitHub.Source 动作的 poll_for_source_changes 为 false,则将 GitHub WebHook 用于 CodePipeline。

  • 对 RDS PostgreSQL 的支持

  • 支持带有 resource/ssm.yaml 的 SSM 文档

  • EC2LM:Ubuntu 16 用于 EFS

  • 对 ElasticSearchDomain 资源的监控支持

更改

  • Lambda 资源现在可以使用 code.zipfile 作为指向本地目录的路径。Paco 将压缩该目录的内容并将工件上传到 Paco 桶,并在 Lambda 首次创建时使用该 S3 位置。Lambda 代码工件的所有更新都必须使用 paco lambda 命令应用。

  • 自动扩展组堆栈现在有 MinInstancesInService 参数。

  • Troposphere 依赖项已更新到 2.6.1 版本,该版本包括对 IoT Analytics 管道的支持。

6.2.0 (2020-04-04)

迁移

  • ASG 轮滚动更新策略行为已更改。已删除 update_policy_max_batch_sizeupdate_policy_min_instances_in_service 字段,并且这些设置仅通过 rolling_update_policy 字段控制。

新增

  • IoT 支持!IoT Core 有新的 IoTPolicy 和 IoTTopicRule 类型,IoT Analytics 有 IoTAnalyticsPipeline。

更改

  • 所有 Paco 警告现在都以前缀 "WARNING:" 开头,并且只有在传递 -w、--warn 标志时才会显示。

  • 所需的 DeepDiff 版本是 4.3.2。此版本修复了需要处理弃用警告抑制的需求。

6.1.1 (2020-03-14)

新增

  • 扩展了部署管道的阶段/操作以包括 S3.Deploy

修复

  • SLRoles 模板未完全迁移到 StackTemplate API。

  • 可以在服务应用程序中创建 CodePipeline 资源。

6.1.0 (2020-03-09)

新增

  • 新私有 PyPI Starter 项目。

6.0.1 (2020-03-08)

修复

  • 删除了 {{['.gitignore']|join}} cookiecutter 文件,该文件意外返回并破坏了对不支持 | 字符的文件系统的安装。

  • ALB 规则的目标组修复被合并到代码中的错误位置。

  • 恢复了 StackOrders,在重构后不再被尊重。

6.0.0 (2020-03-06)

破坏性更改

  • 将 Paco 工作目录合并到单个 .paco-work 目录中。在新 Paco 内部文档页面上进行了文档化。要将现有 Paco 项目迁移到此新结构

    cd <my-paco-project>
    git mv aimdata .paco-work
    git mv Outputs .paco-work/outputs
    git mv build .paco-work/build
    

    这些命令假设您正在使用 git 来管理 Paco 项目。如果是这样,请更新您的 .gitignore 文件以忽略 .paco-work/build。

  • 备份存储库的 IAM 角色("BackupVaults--Backup")不一致地命名了 CloudFormation 堆栈。将在新堆栈中创建新的 IAM 角色。旧堆栈将保留,但可以安全地删除。

    将进行备份存储库的堆栈更新。每个 AWS::Backup::BackupSelection 资源都将有 "Selection: " 前缀在 SelectionName 上,这将使用新角色替换旧 BackupSelection 资源。AWS CloudFormation 文档中声明 BackupSelection 的 SelectionName 仅是显示名称,但这是不正确的。

  • 删除了 Resource/NotificationGroups.yaml 文件名别名。现在仅使用文件名 resource/snstopics.yaml 加载此文件。

  • EventsRule 类型目标字段已从目标列表更改为 IEventTarget 对象列表。这允许指定有关目标的其他信息,例如 input_json 字段。旧格式为

    type: EventsRule targets: - paco.ref some.ref

    新格式为

    类型:事件规则 目标:- 目标:paco.ref some.ref 输入_json: '{"cat":"dog"}'

新增

5.1.1 (2020-02-19)

修复

  • 修复了ElasticsearchDomain的security_group字段。

5.1.0 (2020-02-19)

新增

  • 可以强制要求在特定的git分支上进行,才能更改特定的环境。此功能的文档已添加到新的Paco工作流程页面。

修复

  • 添加了Elasticsearch输出引用的正确名称。

5.0.1 (2020-02-17)

新增

  • ASG有了新的字段desirec_capacity_ignore_changes,可以设置。

修复

  • 如果CloudFormation参数设置了ignore_changes,它会破坏确认更改CLI。

5.0.0 (2020-02-17)

破坏性更改

  • 破坏性更改:Lambda现在在CloudFormation中创建它的日志组。它还允许额外的应用特定日志组。Lambda的执行角色现在将日志组权限限制为它需要的日志组。

    如果您有现有的Lambda,您需要删除日志组,然后重新提供Lambda(并确保在删除日志组后Lambda没有被调用,否则它将重新创建它)。这将允许Lambda日志组处于CloudFormation状态。

新增

  • IAM的服务链接角色。新的IAM控制器方法add_service_linked_role,可以用来添加服务链接角色。

  • ElasticsearchDomain资源。

  • 模板参数可以忽略更改。如果为True,则在堆栈更新期间不会更改该参数。

  • ASG有一个新的实例_ami_ignore_changes字段,该字段将标记InstanceAMI参数具有ignore_changes。

  • 事件规则可以是State=ENABLED或State=DISABLED,由enabled_state布尔字段设置。

更改

  • 事件规则使用随机后缀而不是前缀命名。这使得在AWS CLI和API中使用--name-prefix选项进行list-rules更容易。

  • 创建了新的CFTemplate.create_output,使创建和注册输出更容易。

4.0.0 (2020-02-05)

破坏性更改

  • 破坏性更改:这将更改由generate_secret_string创建的任何密钥的密钥。完成了secrets.generate_secret_string的完整实现,CloudFormation资源中的每个属性都有表示,这样表达默认值就不会触发新密钥的创建。

新增

  • 为CFTemplate添加了新的warn_template_changes方法。这是一个钩子,允许模板打印关于更改可能产生的意外副作用警告。SecretsManager模板是第一个实现此警告钩子的。

文档

  • 改进了入门文档和"paco init project" CLI消息。

3.5.5 (2020-01-29)

修复

  • EFS资源可以处于禁用状态。

  • 当禁用时,EIP资源将被删除。

  • ALB资源正确地删除了ALB。

  • ASG资源被正确禁用。

3.5.4 (2020-01-21)

新增

  • CloudFrontCacheBehaviours支持min_ttl和max_ttl字段。

修复

  • CodeCommit存储库策略重构,以绕过每个IAM用户最多10个策略的限制。

3.5.3 (2020-01-16)

新增

  • 如果生成的CloudFormation模板达到最大堆栈大小51,200字节的80%或更高,则发出警告。

修复

  • AWS备份在模板中缺少组名。现在为每个BackupVault创建一个堆栈。

3.5.2 (2020-01-08)

修复

  • paco init project在cookiecutter运行后创建.gitignore。这避免了在文件名中包含|字符,某些文件系统不喜欢这种字符。

  • 修复了资源/s3.yaml buckets在验证和提供时被运行两次的bug。

3.5.1 (2020-01-06)

修复

  • 修复启动项目:在paco init project中检查aws_second_region。

更改

  • 启动项目paco-project-version提升到6.3。

3.5.0 (2020-01-03)

新增

  • Route 53健康检查支持ip_address字段。

  • 在YAML中具有重复键错误时,有适当的错误消息。

  • 文档有多个账户设置页面。

更改

  • 网络环境 "networks" 现在可以是(几乎)空的。这可以用于不需要网络的函数即服务环境。尽管如此,network: 配置仍然需要存在,但只需包含 aws_accountenabled 字段。

  • 删除了 cfn-init 参数和仪表板变量的 .ending 格式。

  • cfn-init 启动包在 cfn-init 完成后发送 cfn-signal。

  • paco provision account 配置账户。

修复

  • 如果 ASG 的整个 VPC 被禁用,则移除禁用的 ASG。

  • 可以在不抛出错误的情况下启用/禁用部署管道。

  • 如果账户缺少 account_id,则抛出错误。

  • 在请求 MFA 之前,如果 .credentials 文件缺失,则抛出错误。

  • cfn-init 使用 Amazon Linux 的正确基本路径,其中 cfn-init 预安装在 /opt/aws。

  • 对于日志集和日志组,可以保留空白 log_group expire_events_after_days 而不抛出错误。

  • ALB 的 Route 53 记录集堆栈与 Route53 所在的同一账户一起配置。

  • 部署管道不再将 'data' 账户硬编码为 CodeCommit 原则,而是使用 CodeCommit 仓库使用的实际账户。

  • 来自插件之外的通知警报恢复正常。

  • 清理 wordpress 单层模板。

  • 如果不存在,则创建 ~/.aws/cli/cache 目录。

  • 日志警报错误地添加了资源维度。

3.4.1 (2019-12-04)

修复

  • 在 paco-cloud 分发中包含 paco.cookiecutters 数据文件。

3.4.0 (2019-12-03)

新增

  • 新 CloudWatch 仪表板资源。

  • Route53 健康检查支持 domain_name 或 load_balancer 字段。

修复

  • 包含 paco.stack_grps 包!

  • Route53 健康检查警报再次获取命名空间。

更改

  • 最终 AIM --> Paco 重命名:日志度量命名空间从 AIM/ 更改为 Paco/

3.3.1 (2019-11-29)

修复

  • 在 wordpress 单层模板中为 AMI Id 设置占位符。

  • AIM 对 paco 重命名创建的各种修复。

  • ALB AWS::ElasticLoadBalancingV2::ListenerCertificate 已恢复。

  • 修复了 Route53 堆栈组中的区域参考查找。

文档

  • 概览页面在移动设备上工作。

3.3.0 (2019-11-28)

更改

  • 将依赖关系从 aim.models 更改为 paco.models

  • 将所有 aim 事物重命名为 paco

3.2.0 (2019-11-27)

  • AIM 已重命名为 Paco:用于云编排的预定自动化。CLI 现在是 paco,带有 PACO_HOME 环境变量。PyPI 包位于 paco-cloud

  • paco 支持 AWS 备份服务。使用备份计划和备份选择创建备份保险库。

3.1.0 (2019-11-06)

新增

  • DBParameterGroups 模板。

  • LogGroups 模板如果存在,则添加 MetricFilters。

  • 对于 IAM 角色的 RoleName,尊重 global_role_names 字段。

  • 可以在应用程序级别配置警报,而不必特定于资源上下文。

  • 可以配置 Route53HealthChecks。这些是全局资源,应用程序区域附加到健康检查名称。CloudFormation 模板和 CloudWatch 警报在 us-east-1 中配置,因为 AWS 将度量值硬编码到那里。

  • Lambda 模板将 Lambda 权限授予同一应用程序中的事件规则,该应用程序将其作为目标引用。

  • 新事件规则模板。

  • 为 Cloudfront、IAM 管理策略和 IAM 角色模板添加了 change_protected 支持。

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

  • 添加了 EIP 应用资源以及 ASG 资源中的支持 'eip' 字段,以将 EIP 与单个实例 ASG 关联。

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

  • 添加了对 ASG 在单个子网中启动的支持。

  • 将 ResourceGroupid 添加到 ElastiCache 应用资源。

  • 将缓存添加到实例 AMI ID 函数.ref 查找。

  • 将 swap、wget 安装程序和获取标记值辅助函数添加到 EC2 启动管理器,并将所有脚本移动到单独的文件中,该文件从 S3 复制并执行。

  • 将 VPC 关联添加到 VPC 私有托管区域。

  • 在 Lambda 函数 cftemplate 中添加了 VpcConfig。

  • 在网络环境中添加了 secrets_manager

  • 为 yaml.py 添加了对 !Ref 和 !Sub 的支持。

  • 在 StackGroups 中添加了“嵌套栈组”功能。这允许我们在 StackGroup 中将 StackGroup 嵌套在 Stack 的位置。这是为了允许按顺序创建 Route53 RecordSets,但允许使用与当前 StackGroup 中填充不同的 Stack 名称。

  • 添加了 Route53RecordSet CFTemplate 和 ctl_route53.add_record_set() 方法。

  • 添加了 EBS 应用资源。将 ebs_volume_mounts 添加到 IASG,以便将卷挂载到单实例组。通过 EBS Launch Bundle 实现 ebs_volume_mounts

更改

  • 修复了 AssumeRolePolicyDocument 中如果 Principal 同时有 serviceaws 字段时,aws 字段被忽略的 bug。

  • 改进了 CLI。现在会尊重详细输出标志。是/否问题保持一致,可以用 'y'、'n'、'yes' 或 'no' 回答。对格式进行了清理。只有在运行 provision 子命令时才提示配置更改。

  • ALB 警报现在以 LBApplication 后缀提供,并与 Resource.type 字段匹配。

  • 将 IAM 用户的默认密码复杂性提高,以满足密码约束。

  • 更新了一些 aim init project 的 cookiecutter 模板。

  • 将 Route53 CFTemplate 移植到 troposphere,并将区域分离到它们自己的堆栈中。为此变更添加了旧版标志 route53_hosted_zone_2019_10_12

  • 通过将重复代码合并到单个方法中,清理了 Stack() 中过期令牌处理。

  • 重构了 EC2 Launch Manager 用户数据脚本管理。公共函数现在存储在 S3 中,以减少用户数据大小。

  • 修改了 LogGroup 名称,包括网络环境名称。

  • 重构了创建 Route53 RecordSets 的方式。以前的设计直接在资源模板中创建 RecordSets。新设计使用 Route53 Controller 在自己的堆栈中创建 RecordSets,使用账户全局名称。这是因为 CloudFormation 不允许修改 RecordSets,除非您正在修改创建它的堆栈。这使得在删除记录并重新创建它之前无法在资源之间移动 DNS。有了全局控制器,我们可以简单地重写 RecordSets 到新值。添加了 route53_record_set_2019_10_16 旧版标志来处理现有的 RecordSets。

  • 将 app_engine.get_stack_from_ref 移动到 StackGroup。

修复

  • 修复了几个 AWS 令牌过期重试失败的 AWS 令牌。

  • AWS 会话缓存没有正确缓存。

  • NotificationGroups 控制器没有正确设置引用,也没有正确解析它们。

3.0.0 (2019-09-27)

新增

  • 在 AIM 项目中由 paco 创建了一个新的目录 aimdata。这用于记录 AIM 配置的状态。用于在 AWS 中创建堆栈的 CloudFormation 模板以及 AIM 项目 YAML 文件的最新副本都进行了缓存。这些文件用于加快后续运行,更重要的是,可以在实际应用到 AWS 之前,展示 AIM 运行之间的变化,以便更容易审查新的更改。

  • CLI:显示上一次 AIM 运行和本次运行在 AIM 项目 YAML 配置中的更改差异。可以使用 -d--disable-validation 标志来

  • CLI:在更新 CF 模板之前显示更改并请求验证。可以使用 -y 标志来禁用此功能。

  • CLI:提供删除处于 CREATE FAILED 状态的堆栈的选项,以便可以在此处提供新的堆栈。

  • AWS 凭证现在可以持续长达 12 小时。您可以将 .credentials 字段设置为 mfa_session_expiry_secs: 43200 # 12 hours 来启用此功能。默认值仍为 1 小时。

  • 设置了 change_protected 标志为 true 的资源将不会更新其 CloudFormation 堆栈。

  • API Gateway REST API 现在可以有模型、方法和阶段。它支持通过假设角色或 Lambda 权限的 'AWS_PROXY' 或 'AWS' 与 Lambda 集成。

  • S3Bucket 为 Lambda 提供了通知配置。Lambda 将检测同一应用中的 S3Bucket 是否通知 Lambda,并将自动添加 Lambda 权限以允许 S3 调用 Lambda。

  • Lambda AWS::SNS::Subscription 资源现在具有区域属性。

  • CloudWatchAlarms 模板具有 notification_region 类属性,可以在需要将通知组订阅发送到单个区域时设置。

  • CloudFront 支持原点 ID。

  • EFS 资源支持。

更改

  • 重大更新!CF 模板名称已被重构,使其在 AWS 控制台中列出时更加用户友好。这需要删除和重新配置 AWS 资源。模板现在具有创建名称的新一致方式,因此这应该是最后一次此类更改。

  • CLI:现在使用一致的 paco.ref 语法引用 NetworkEnvironments,例如 aim provision netenv <ne>.<env>.<region>

  • 所有堆栈都创建时已设置终止保护。

  • CF 模板基类 paco.cftemplates.cftemplates.CFTemplate 具有创建一致 AWS 名称的新方法:create_resource_name()create_resoruce_name_join()create_cfn_logical_id()create_cfn_logical_id_join()

  • 控制台消息已重新设计,以便在列中显示相关信息。

  • CF 模板基类方法 gen_parameter 已重命名为 create_cfn_parameter

  • S3 控制器现在依赖于来自 S3Bucket 模型对象的桶名称。

  • Lambda 代码.s3_bucket 字段现在可以是 paco.ref 或纯桶名称。

  • 您可以在不指定区域的情况下进行配置,它将包括环境中的所有区域。

  • NotificationGroups 从 project['resource']['notificationgroups'] 加载。

修复

  • 如果需要,CloudTrail 会生成自己的 CloudWatch LogGroup。CloudTrail 和 CloudWatch LogGroup 的输出。

  • APIGateway、SNSTopics 和 Lambda 现在尊重 enabled 字段。

2.0.0 (2019-08-26)

修复

  • snstopic 输出引用和 lambda 告警引用修复。

  • 添加了 IAM Users 功能,用于创建 IAM Users、配置控制台访问、分配权限和访问密钥。

新增

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

  • 添加了 StackOutputsManger()。现在创建并维护 $AIM_HOME/ResourceMap.yaml,它将包括使用资源 yaml 字典路径引用的所有堆栈输出的完整列表。

  • ALB 输出包括 TargetGroup 完整名称。

  • 添加了 Minimal APIGatewayRestApi 模板。

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

  • Administrator IAMUserPermission 添加了只读支持。

更改

  • 自动生成 CloudFront 参数列表,例如安全组和目标 arn 列表。

  • 合并了 CFTemplates 和 Stack,以及其他 Stack 清理。

  • CloudWatch Alarms 多维警报现在期望一个 paco.ref。CloudWatch Alarms 现在是 Troposphere。

1.4.0 (2019-08-21)

新增

  • CloudTrail 资源添加了基本的 CloudTrail 配置。

  • 为 CloudWatch Agent 将需要的所有组创建 LogGroups。使用 paco.models 中的新日志模式。

  • 添加了 CloudFront 应用程序资源。

  • 添加了 VPC Peering 应用程序资源。

  • 自动将堆栈输出传递到另一个堆栈的参数中。

1.3.1 (2019-08-07)

修复

  • Python 打包,还包括 version.txt。

1.3.0 (2019-08-07)

更改

  • CloudWatchAlarms 现在检查 namespace 和 dimesions 字段,可以用来覆盖一个主要维度和 resource_name 的默认值。

修复

  • Python 分发不包括 README.md 和 CHANGELOG.md。

1.2.0 (2019-08-06)

新增

  • 删除资源可能会在您的帐户中留下悬空的 CloudFormation 模板。NetworkEnvironments 的控制器现在跟踪它们已配置的模板,并警告您有关未使用的模板。

  • 可以将 NotificationGroups 配置为 SNS 主题和订阅。使用 aim provision notificationgroups

  • CloudWatch 警报描述是包含环境、区域、应用程序、资源组和警报针对的资源元数据的 JSON。

  • CloudWatch 警报不会通知它们订阅的 SNS 主题。

  • 以一致的方式重写了传递给控制器的命令。控制器的参数现在可以全部为小写。

  • 将帐户初始化添加到 'aim init project'。

更改

  • AIM 引用有了新的格式!它更简单,更一致。每个引用现在都以 paco.ref 开始。

  • 创建了 paco.utils 以清理 PacoContext 对象。

1.1.0 (2019-07-24)

新增

  • 将日志功能添加到监控中。日志将由配置的 CloudWatch Agent 消费并发送到 CloudWatch 日志组。

  • 将 --nocache 添加到 cli 中,以强制更新堆栈。

  • CLI 报告来自 AIM 项目配置文件的人类可读验证错误。

  • 添加了 "aim ftest" 命令,用于在 "aim init project" 模板上运行功能测试。该命令将在未来扩展,以便您可以测试自己的 aim 项目。

  • Resources/S3.yaml 现在是功能性的:例如,aim validate S3。

  • 将区域添加到 cftemplates,以便我们可以进行 . 和 . 的内联替换。

  • 添加了 LambdaPermission 和 CWEventRule cftemplates。

  • 添加了 CloudWatchController 和 LambdaController。

修复

  • cookiecutter 生成的 .credentials 文件未包含在 git 仓库中,因为 cookiecutter .gitignore 文件导致它被忽略。

1.0.0 (2019-07-06)

新增

  • https://paco.waterbear.cloud/en/latest/ 上提供了初始文档,包含 AIM 项目网站。

  • 添加了 init 命令,具有使用底层的 cookiecutter 项目创建 AIM 项目起始模板的能力。

  • 在 ALB 中添加了对 Listner 规则的重定向。

更改

  • 文档和重构 AIM CLI。

  • 将 yaml.py 移动到 paco.core。

  • 重构 S3 控制器。

  • 将 Route53 配置移植到模型中。

  • 将 CodeCommit 配置移植到模型中。

  • 重构 S3 以使用 Application StackGroup。

  • CPBD 艺术品 s3 存储桶现在在 NetEnv yaml 中使用 S3 资源。

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

删除

  • 删除了已弃用的配置。

0.6.0 (2019-06-21)

  • 文档和清理 AIM CLI。

  • 清理后的验证和供应功能正常。

0.5.0 (2019-06-21)

  • 首次开源发布。

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面