命令行工具包,帮助了解有关aws rds参数组的信息。
rdspg的Python项目详细描述
命令行工具包,帮助了解有关aws rds参数组的信息。
安装
pip install rdspg
目的
在分析rds的参数组时,aws在blog post中建议只能使用diff:
There is no AWS CLI command to compare two parameter groups simultaneously; this feature is only available by using the RDS console. You can then compare the plain text files that list the parameter groups using a Linux tool such as the diff command, or a source code editor like Notepad++.
我认为我们可以做得更好。这个工具是为了帮助我们使这项任务容易得多。还添加了一些其他功能来帮助分析更改。
权限配置
此工具需要特定的IAM权限才能工作。示例策略:
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "rds:DescribeDBInstances", "rds:DescribeDBParameters", "rds:DescribeDBParameterGroups", "rds:DescribeDBClusters", "rds:DescribeDBClusterParameterGroups", "rds:DescribeDBClusterParameters", "rds:ListTagsForResource" ], "Resource":"*" } ] }
用法
- 列出参数组:
$ rdspg list DBParameterGroupName DBParameterGroupFamily Description ------------------------------- ------------------------ ---------------------------------------------------------- default.aurora-postgresql9.6 aurora-postgresql9.6 Default parameter group for aurora-postgresql9.6 default.aurora5.6 aurora5.6 Default parameter group for aurora5.6 default.postgres9.3 postgres9.3 Default parameter group for postgres9.3 default.postgres9.4 postgres9.4 Default parameter group for postgres9.4 default.postgres9.5 postgres9.5 Default parameter group for postgres9.5 default.postgres9.6 postgres9.6 Default parameter group for postgres9.6 my-parameter-group postgres9.6 My Parameter Group
- 获取参数组中的参数,过滤掉默认值:
$ rdspg get my-replica ParameterName ParameterValue ApplyMethod ApplyType ------------------------------- ---------------- ------------- ----------- autovacuum_analyze_scale_factor 0.1 immediate dynamic checkpoint_segments 512 immediate dynamic checkpoint_timeout 300 immediate dynamic checkpoint_warning 60 immediate dynamic default_statistics_target 100 immediate dynamic hot_standby_feedback 1 immediate dynamic log_autovacuum_min_duration 0 immediate dynamic log_connections 1 immediate dynamic log_disconnections 1 immediate dynamic
- 获取参数组的映射->;实例:
$ rdspg mapping ParameterGroup DBInstances ------------------- --------------------------------- default.postgres9.4 <not-used> default.postgres9.5 db-replica-9-5-a,db-replica-9-5-b default.postgres9.6 db-replica-9-6-a,db-replica-9-6-b
- 比较两个参数组之间的差异:
$ rdspg diff my-replica-a my-replica-b ParameterName my-replica-a my-replica-b ------------------- -------------- --------------------- checkpoint_timeout 300 450 checkpoint_warning 60 <not-set> checkpoint_segments 512 32
- 以TerraForm模板格式导出参数组:
$ rdspg terraform my-parameter-group resource "aws_db_parameter_group" "my-parameter-group" { name = "my-parameter-group" family = "postgres9.5" description = "My awesome parameter group" parameter { name = "autovacuum_analyze_scale_factor" value = "0.01" apply_method = "immediate" } parameter { name = "autovacuum_vacuum_scale_factor" value = "0.01" apply_method = "immediate" } }
- 所有命令都适用于带有--cluster标志的db集群
$ rdspg list --cluster DBClusterParameterGroupName DBParameterGroupFamily Description ----------------------------- ------------------------ -------------------------------------------------------- customers-p-cluster aurora-postgresql9.6 Managed by Terraform default.aurora-postgresql1 aurora-postgresql1 Default cluster parameter group for aurora-postgresql1 default.aurora-postgresql9.6 aurora-postgresql9.6 Default cluster parameter group for aurora-postgresql9.6 default.aurora5.6 aurora5.6 Default cluster parameter group for aurora5.6