CLI AWS EC2: прохождение переменных среды в критериях фильтра - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь передать переменную среды в критерии фильтра при запуске CLI для AWS EC2.

Например, я хочу передать переменные среды для vpc-id и cidr-block в этом фрагменте кода

$ aws ec2 describe-subnets --filter 'Name=vpc-id,Values=vpc-0ce822f7ef200f28k',"Name=cidr-block,Values=10.0.0.0/24" --query "Subnets[].SubnetId" --output=text --region=us-west-1
subnet-0ec2d15eda8f20484

и я пытаюсь это:

aws ec2 describe-subnets --filter 'Name=vpc-id,Values=$EC2_VPC_ID','Name=cidr-block,Values=$EC2_CIDR_BLOCK' --query "Subnets[].SubnetId" --output=text --region=us-west-1

Но это не работает.Он перепробовал несколько комбинаций, таких как -

aws ec2 describe-subnets --filter "Name=vpc-id,Values='$EC2_VPC_ID'","Name=cidr-block,Values='$EC2_CIDR_BLOCK'" --query "Subnets[].SubnetId" --output=text --region=us-west-1

aws ec2 describe-subnets --filter "Name=vpc-id,Values=$EC2_VPC_ID","Name=cidr-block,Values=$EC2_CIDR_BLOCK" --query "Subnets[].SubnetId" --output=text --region=us-west-1

aws ec2 describe-subnets --filter 'Name=vpc-id,Values='$EC2_VPC_ID'','Name=cidr-block,Values='$EC2_CIDR_BLOCK'' --query "Subnets[].SubnetId" --output=text --region=us-west-1

Ни одна из них не работает !!!

Кстати, это работало раньше и недавно перестало работать.

aws ec2 describe-subnets --filter 'Name=vpc-id,Values='$EC2_VPC_ID'','Name=cidr-block,Values='$EC2_CIDR_BLOCK'' --query "Subnets[].SubnetId" --output=text --region=us-west-1

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Нельзя передавать переменные в одинарных кавычках в BASH или в сценарии оболочки.Это основной 1-0-1 сценариев оболочки.Он должен иметь двойные кавычки вокруг переменных.

Например:

a=2

echo $a
echo "$a"
echo '$a'

Вывод будет:

2
2
$a
0 голосов
/ 26 сентября 2018

Это работает (в Amazon Linux):

aws ec2 describe-subnets --filter "Name=vpc-id,Values=$EC2_VPC_ID,Name=cidr-block,Values=$EC2_CIDR_BLOCK" --query "Subnets[].SubnetId" --output text
...