Pa-co:为云编排指定的自动化工具
项目描述
Pa-co:为云编排指定的自动化工具
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账户。
参与其中
-
给我们一个Git Star,并通过#PacoCloud在社交媒体上分享。社区讨论在/r/paco_cloud进行。
-
在paco-cloud的Gitter上与我们聊天。
-
在GitHub上提交功能请求和错误报告。
-
为了开发Pa-co,git克隆此项目以及paco.models。
作者
由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支持
OriginRequestPolicyId
和CachePolicyId
,这可以在CloudFront资源中通过新的cache_policy_id
和origin_request_policy_id
字段设置,用于CloudFront的cache_behaviors
字段。
9.3.1 (2021-02-05)
新增
- 新增 EC2LM 异步运行命令的便利函数:
ec2lm_async_run
和ec2lm_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 输出
id
和domain_name
。 -
支持 CloudFront 的 LambdaFunctionAssociations。
-
支持 Lambda@Edge。
-
支持 Cognito。
-
支持 ECS Fargate。
-
ALB 目标组现在可以使用
target_type
字段。 -
支持 ECS TargetTracking 服务扩展。
-
DeploymentPipeline 中的
CodeBuild.Build
动作现在支持一个ecr_repositories
列表,可以声明Push
、Pull
或PushAndPull
权限。 -
向 PacoBuckets 添加了
upload_fileobj
方法。 -
已添加到资源模型对象的 StackHooks 在堆栈创建后会添加到堆栈中。
更改
-
新增
BotoStack
,包含ACM
和IoTPolicy
资源类型。 -
set_parameter
对于paso.stack.Stack
现在将替换同名的参数。这允许通过钩子更改参数。
修复
-
CodeCommit 用户Arn可以从正确的Stack中查找。
-
CloudFront处理未指定
ssl_protocols
和https_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
能够将SecurityGroups
和Subnets
作为单个安全组列表参数传递。
修复
-
如果没有
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_size
和update_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"}'
新增
-
部署管道现在可以使用GitHub.Source作为源。
-
集成了Parliament库来检查/验证所有角色使用的IAM策略。 https://github.com/duo-labs/parliament
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_account
和enabled
字段。 -
删除了 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 同时有
service
和aws
字段时,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)
- 首次开源发布。