aws-cli - 如何使用 AWS CLI 获取特定 VPC 的 RDS 终端节点
问题描述
我有命令列出我在我的 aws 帐户中运行的所有 RDS 端点,但我想找到 RDS 的 RDS 端点,它在与我想从中使用它的 ec2 实例相同的 VPC 中运行。
我有多个 VPC 和多个 RDS,所以当我发出命令时,它会给我所有正在运行的 RDS。我如何过滤这个以显示同一 VPC 中的那个?
我运行命令 -
aws rds --region us-east-2 describe-db-instances --query "DBInstances[*].Endpoint.Address"
我得到 -
"acme-networkstack.vbjrxfom0phf.us-east-2.rds.amazonaws.com",
"acme-aws-beta-network.vbjrxfom0phf.us-east-2.rds.amazonaws.com",
"acme-demo.vbjrxfom0phf.us-east-2.rds.amazonaws.com",
"acme-dev.vbjrxfom0phf.us-east-2.rds.amazonaws.com"
我只想要一个与我正在从中运行 CLI 命令的实例位于同一 VPC 中的端点。
谢谢!
厄尼
解决方案
describe-db-instances
有一组有限的过滤器,不包括 VPC。我建议的解决方案结合使用来自主机的元数据信息并jq
仅选择与 VPC 匹配的端点。
首先,您可以获得 WarrenG 建议的 VPC ID。
#!/bin/bash
mac=`curl -s http://169.254.169.254/latest/meta-data/mac`
VPC_ID=`curl -s http://169.254.169.254/latest/meta-data/network/interfaces/macs/$mac/vpc-id`
然后结合使用 AWS CLIjq
来获得所需的输出。
aws rds describe-db-instances | jq -r --arg VPC_ID "VPC_ID" '.DBInstances[] |select (.DBSubnetGroup.VpcId==$VPC_ID) | .Endpoint.Address'
我没有从脚本运行它,但它可以从命令行运行。如果它在脚本中不起作用,请告诉我。
参考
https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html
推荐阅读
- python - 如何使用带有变长双嵌套数组的 tensorflow from_generator?
- vue.js - 如何正确地将信息发送到 Vue.js 中的 API
- python - 运行 python 脚本时 Windows Defender CPU 使用率高
- java - 在同一个包中组织类的任何方式
- sql - SQL Developer 新列重置标识列设置
- copy - 从 S3 AVRO 文件复制到 Redshift 结果中的所有 Null 值的表
- ios - Angular :enter 动画不在 IOS 设备上运行
- javascript - Fade In without jQuery (fadeIn) - CSS 过渡不透明度和显示
- macos - Tableview 更新暮光区中的值
- internet-explorer - 是否有相当于“复制为卷曲”的 Internet Explorer?