Как использовать переменную среды в команде AWS CLI - PullRequest
0 голосов
/ 10 июля 2019

Я запускаю эту команду, и она работает:

aws elb describe-load-balancers --query 'LoadBalancerDescriptions[?VPCId==`vpc-#########`]|[].LoadBalancerName' --region us-east-2

Если я попытаюсь использовать переменную environemnt, она не будет работать:

aws elb describe-load-balancers --query 'LoadBalancerDescriptions[?VPCId==`$VPC_ID`]|[].LoadBalancerName' --region us-east-2

Я знаю, что VPC_ID действителен - echo $ VPC_ID возвращает правильное значение

Что я не вижу?

Спасибо !!!!!


Я также пробовал эту команду с теми же результатами:

Это прекрасно работает: aws elb describe-load-balancers --output text --query 'LoadBalancerDescriptions[?Instances[?InstanceId==`i-0############`]].[LoadBalancerName]' --region us-east-2

Это ничего не возвращает: aws elb describe-load-balancers --output text --query 'LoadBalancerDescriptions[?Instances[?InstanceId=="$InstanceID"]].[LoadBalancerName]' --region us-east-2

Я знаю, что переменная среды $ InstanceID заполнена и правильна - я выполняю echo $ InstanceID и получаю правильный вывод идентификатора.

Ответы [ 2 ]

1 голос
/ 11 июля 2019

Понял !!

Переменная среды должна быть в скобках - {}

Это работает -

aws elb describe-load-balancers --output text --query "LoadBalancerDescriptions[?Instances[?InstanceId=='${InstanceID}']].LoadBalancerName" --region us-east-2

0 голосов
/ 11 июля 2019

Я могу воспроизвести это, используя следующее:

export MY_VPC_ID=vpc-1234
echo 'LoadBalancerDescriptions[?VPCId==`$MY_VPC_ID`]|[].LoadBalancerName'

OUTPUT

LoadBalancerDescriptions[?VPCId==`$MY_VPC_ID`]|[].LoadBalancerName

Я считаю, что это связано с тем, как bash интерпретирует кавычки, как показано в этом другом посте. Оценка переменных в строке

Можете ли вы попробовать использовать это?

echo "LoadBalancerDescriptions[?VPCId==\"$MY_VPC_ID\"]|[].LoadBalancerName"

OUTPUT : LoadBalancerDescriptions[?VPCId=="vpc-1234"]|[].LoadBalancerName

...