[AWS] --query를 이용하여 리소스 정보를 테이블 형태로 예쁘게 출력하는 방법

HYEOB KIM·2022년 5월 30일
1

aws

목록 보기
19/62

aws cli를 이용해 리소스에 대한 정보를 볼 수 있습니다.

예를 들어, aws elbv2 describe-target-groups 를 통해 elb에 대한 정보를 JSON 형태로 볼 수 있습니다.

% aws elbv2 describe-target-groups
{
    "TargetGroups": [
        {
            "TargetGroupArn": "arn:aws:elasticloadbalancing:ap-northeast-2:",
            "TargetGroupName": "test-hyeob-tg",
            "Protocol": "HTTP",
            "Port": 80,
            "VpcId": "vpc-09",
            "HealthCheckProtocol": "HTTP",
            "HealthCheckPort": "traffic-port",
            "HealthCheckEnabled": true,
            "HealthCheckIntervalSeconds": 30,
            "HealthCheckTimeoutSeconds": 5,
            "HealthyThresholdCount": 5,
            "UnhealthyThresholdCount": 2,
            "HealthCheckPath": "/",
            "Matcher": {
                "HttpCode": "200"
            },
            "LoadBalancerArns": [
                "arn:aws:elasticloadbalancing:ap-northeast-2:"
            ],
            "TargetType": "instance",
            "ProtocolVersion": "HTTP1",
            "IpAddressType": "ipv4"
        }
    ]
}

여기서 JSON 형태는 너무 지저분할 때, --query 를 이용해 원하는 속성을 선정해 테이블 형태로 나타낼 수 있습니다.

  • 어떤 속성값의 value가 리스트 형태일 때, [*]를 이용하면 모든 항목을 조회할 수 있습니다.
  • 테이블로 나타내고 싶은 항목에 대해서 {}로 묶어주고, key:value 형태로 입력합니다.

예시

아래의 항목들을 선정해 CLI 환경에서 리소스 정보를 테이블 형태로 나타내보겠습니다.

% aws elbv2 describe-target-groups \
--query "TargetGroups[*].{Name:TargetGroupName, ARN:TargetGroupArn, Port:Port, Protocol:Protocol, TargetType:TargetType, LoadBalancerARN:LoadBalancerArns[*], VPC_ID:VpcId}" \
--output table

profile
Devops Engineer

0개의 댓글