AWS CLI - результат с использованием запроса jmespath - PullRequest
0 голосов
/ 06 февраля 2019

У меня проблема, поэтому вы спасете мою жизнь: -)

, когда я запускаю следующую команду из aws-shell

cloudformation describe-stacks --query Stacks[*].[StackName,StackId,CreationTime,LastUpdatedTime,Parameters[?ParameterKey==\`PARAM_NAME1\`].ParameterValue,Parameters[?ParameterKey==\`PARAM_NAME2\`].ParameterValue] --output text

результат делится на 3 строки:

автоматизация-X arn: aws: cloudformation: XX Нет
PARAM_VALUE1
PARAM_VALUE2

, но моя цель состоит в том, чтобы иметь только одну строку (например)

Automation-X arn: aws: cloudformation: XX Нет PARAM_VALUE1 PARAM_VALUE2

, то есть с PARAM_VALUE1 и PARAM_VALUE2 в первой и единственной строке.

кто-нибудь может мне помочь?

Я ценю это, заранее спасибо

Я забыл указать, что результатом команды является много строк (более 1000), и каждая строка состоит из6 параметров

1 Ответ

0 голосов
/ 06 февраля 2019

Выражение

Parameters[?ParameterKey==`PARAM_VALUE1`].ParameterValue

возвращает проекцию, которая сама возвращает массив из ParameterValue с.Хотя этот массив содержит только один элемент, режим aws --output text по-прежнему интерпретирует его как новую строку.Чтобы исправить это, вам нужно преобразовать проекцию в одно значение, используя трубу |, чтобы остановить проекцию, затем выберите первый элемент в массиве:

aws cloudformation describe-stacks --query 'Stacks[*].[StackName,StackId,CreationTime,LastUpdatedTime,Parameters[?ParameterKey==`PARAM_NAME1`].ParameterValue|[0],Parameters[?ParameterKey==`PARAM_NAME2`].ParameterValue|[0]]' --output text

Вы увидите |[0] добавляется к каждому параметру в запросе.

...