【问题标题】:How do I use --query parameter in aws rds describe-db-instances command如何在 aws rds describe-db-instances 命令中使用 --query 参数
【发布时间】:2017-08-02 20:38:52
【问题描述】:

这是 describe-db-instances 的概要

 [--db-instance-identifier <value>]
 [--filters <value>]
 [--cli-input-json <value>]
 [--starting-token <value>]
 [--page-size <value>]
 [--max-items <value>]
 [--generate-cli-skeleton <value>]

我想知道我应该为 -db-instance-identifier, --filters, ... 使用什么值?

如果我想使用 aws rds describe-db-instances --query,我必须在 --query 中使用哪些值? 下面是我从互联网上获得的示例:这些值来自 (DBInstanceArn, Engine, DBInstanceIdentifier in --query) ???

aws rds describe-db-instances \
    --query 'DBInstances[*].[DBInstanceArn,Engine,DBInstanceIdentifier]' \
    --output text

语法是什么 --query 'DBInstances[*].[DBInstanceArn,Engine,DBInstanceIdentifier]'

【问题讨论】:

  • 如何使用“aws rds describe-db-instances --query”?
  • 欢迎来到 StackOverflow!不幸的是,你的问题不清楚。请编辑您的问题,让我们知道您要完成什么,到目前为止您已经尝试过什么以及遇到了什么错误。有关提出好问题的提示,请参阅:How do I ask a good question?
  • 你只是要a link to the documentation吗?

标签: amazon-web-services aws-cli


【解决方案1】:

--query 参数在大多数 aws cli 命令中都可用。它可以帮助您控制命令执行的输出。您可能想阅读http://docs.aws.amazon.com/cli/latest/userguide/controlling-output.html#controlling-output-filter,其中详细介绍了它的一般工作原理。

aws rds describe-db-instances 的情况下(您可以检查doc 或运行aws rds describe-db-instances help 以了解输出值),该命令的执行将返回一个很长的数据库属性列表,对于每个您运行的数据库:

{
    "DBInstances": [
        {
            "PubliclyAccessible": true,
            "MasterUsername": "TestDB",
            "MonitoringInterval": 0,
            "LicenseModel": "general-public-license",
            "VpcSecurityGroups": [
                {
                    "Status": "active",
                    "VpcSecurityGroupId": "sg-5a69722b"
                }
            ],
            "CopyTagsToSnapshot": false,
            "OptionGroupMemberships": [
                {
                    "Status": "in-sync",
                    "OptionGroupName": "default:mysql-5-6"
                }
            ],
            "PendingModifiedValues": {
                "MasterUserPassword": "****"
            },
            "Engine": "mysql",
            "MultiAZ": false,
            "DBSecurityGroups": [],
            "DBParameterGroups": [
                {
                    "DBParameterGroupName": "default.mysql5.6",
                    "ParameterApplyStatus": "in-sync"
                }
            ],
            "AutoMinorVersionUpgrade": false,
            "PreferredBackupWindow": "06:52-07:22",
            "DBSubnetGroup": {
                "Subnets": [
                    {
                        "SubnetStatus": "Active",
                        "SubnetIdentifier": "subnet-50dea718",
                        "SubnetAvailabilityZone": {
                            "Name": "us-east-1d"
                        }
                    },
                    {
                        "SubnetStatus": "Active",
                        "SubnetIdentifier": "subnet-c5bba9a0",
                        "SubnetAvailabilityZone": {
                            "Name": "us-east-1b"
                        }
                    },
                    {
                        "SubnetStatus": "Active",
                        "SubnetIdentifier": "subnet-5ff24a05",
                        "SubnetAvailabilityZone": {
                            "Name": "us-east-1a"
                        }
                    },
                    {
                        "SubnetStatus": "Active",
                        "SubnetIdentifier": "subnet-98a39da4",
                        "SubnetAvailabilityZone": {
                            "Name": "us-east-1e"
                        }
                    },
                    {
                        "SubnetStatus": "Active",
                        "SubnetIdentifier": "subnet-42b42c4e",
                        "SubnetAvailabilityZone": {
                            "Name": "us-east-1f"
                        }
                    },
                    {
                        "SubnetStatus": "Active",
                        "SubnetIdentifier": "subnet-4d28a961",
                        "SubnetAvailabilityZone": {
                            "Name": "us-east-1c"
                        }
                    }
                ],
                "DBSubnetGroupName": "default",
                "VpcId": "vpc-1b70fd62",
                "DBSubnetGroupDescription": "default",
                "SubnetGroupStatus": "Complete"
            },
            "ReadReplicaDBInstanceIdentifiers": [],
            "AllocatedStorage": 5,
            "DBInstanceArn": "arn:aws:rds:us-east-1:325979260958:db:testdb",
            "BackupRetentionPeriod": 0,
            "DBName": "TestDB",
            "PreferredMaintenanceWindow": "wed:10:19-wed:10:49",
            "DBInstanceStatus": "creating",
            "IAMDatabaseAuthenticationEnabled": false,
            "EngineVersion": "5.6.35",
            "AvailabilityZone": "us-east-1e",
            "DomainMemberships": [],
            "StorageType": "gp2",
            "DbiResourceId": "db-5VK47WZ6OTS5VEA7OJUF4XH5OI",
            "CACertificateIdentifier": "rds-ca-2015",
            "StorageEncrypted": false,
            "DBInstanceClass": "db.t2.micro",
            "DbInstancePort": 0,
            "DBInstanceIdentifier": "testdb"
        }
    ]
}

您可能对所有这些元素不感兴趣,但想专门获取列表的子部分。那是您将使用--query 参数指定属性的时候

我可以通过运行以下命令将元素数量限制为DBInstanceArnEngineDBInstanceIdentifier

$ aws rds describe-db-instances --query 'DBInstances[*].[DBInstanceArn,Engine,DBInstanceIdentifier]'
[
    [
        "arn:aws:rds:us-east-1:325979260958:db:testdb",
        "mysql",
        "testdb"
    ]
]

query 参数中使用的语法是JMESPath。由于该命令的输出是一个 JSon 文档,它可以帮助您解析它。

【讨论】:

  • 弗雷德里克,非常感谢您的大力帮助。我非常感谢它。
猜你喜欢
  • 2012-03-20
  • 2022-12-10
  • 2022-06-24
  • 2017-10-11
  • 1970-01-01
  • 1970-01-01
  • 2020-10-27
  • 1970-01-01
  • 2019-06-14
相关资源
最近更新 更多