从aws rds describe-db-instances访问AWS RDS Arn

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从aws rds describe-db-instances访问AWS RDS Arn相关的知识,希望对你有一定的参考价值。

我正在使用Ansible访问我帐户中的某些RDS群集。我有与此相关的命令。

这是输入数据。

"stdout_lines": [
            "{",
            "    "DBInstances": [",
            "        {",
            "            "PubliclyAccessible": false, ",
            "            "MasterUsername": "xxxxx", ",
            "            "MonitoringInterval": 0, ",
            "            "LicenseModel": "general-public-license", ",
            "            "VpcSecurityGroups": [",
            "                {",
            "                    "Status": "active", ",
            "                    "VpcSecurityGroupId": "xxxx"",
            "                }",
            "            ], ",
            "            "InstanceCreateTime": "xxxxxx", ",
            "            "CopyTagsToSnapshot": false, ",
            "            "OptionGroupMemberships": [",
            "                {",
            "                    "Status": "in-sync", ",
            "                    "OptionGroupName": "xxxxx"",
                         ........
            "            "DBInstanceArn": "arn:aws:rds:region:xxxx:db:xxxx", ",
                          .......

[在运行下面的命令时,以[0 [数组中的项目为目标,我收到此输出。

“ {{(registered.stdout_lines | from_json)['DBInstances'] [0] ['DBInstanceArn']}}”“

ok: [localhost] => {
    "msg": "arn:aws:rds:region :xxxx:db:xxxx"
}

通过这样指定,我可以找到所需的项目。我需要阵列ID,因为其中有3个。我试图以此方式运行它。但是我得到了所有数据。

 - name: Show
      set_fact:
         var: "item.db_instance_arn"
       with_items: "{{rds.instances}}"
       register: variable

我也得到我想要的事实。我只是无法输出该个人事实。

是否有办法击中数组中的所有项目并输出我需要的一个变量?

谢谢。新年快乐!

答案

您将需要(registered.stdout | from_json),而不是(registered.stdout_lines | from_json) }},因为stdout_linesliststr,但是from_json想要str-令您惊讶的是,您的问题没有包含您遇到的错误消息,因为它肯定会产生一个

然后,理清了JSON解析之后,您将要使用map filter,因为正如您所观察到的,map是一个DBInstances,这意味着您需要像这样有效地迭代其对象:] >

list

[如果愿意,可以使用使用- debug: msg: my DB ARNs are {{ (registered.stdout | from_json).DBInstances | map(attribute="DBInstanceArn") | list }} 语法的json_query filter,尽管大多数时候我发现它不透明而不是有用的:

json_query

以上是关于从aws rds describe-db-instances访问AWS RDS Arn的主要内容,如果未能解决你的问题,请参考以下文章

使用 RDS 上的 MariaDB 从本地计算机解决与 AWS 的连接问题

AWS:无法从我的机器连接到 RDS 数据库

如何从 aws rds 导出 postgres 数据库

无法通过 AWS.RDS.Signer 连接到 RDS

aws rds proxy参数

无法从 SQL WORKBENCH 连接到 AWS RDS mysql