JQ скрипт для регистрации информации о здоровье стебля эластичных бобов в теме SNS - PullRequest
0 голосов
/ 11 января 2020

У меня работает следующая команда, она возвращает список приложений и среды (dev, demo, prod, et c.)

aws --profile mfa elasticbeanstalk describe-environments | jq -r '[.Environments[] | {Env: .EnvironmentName, App: .ApplicationName}]' #this one is formatted correctly

Я пытаюсь отправить параметр приложения и Параметр env для скрипта, чтобы выполнить следующую задачу.

aws --region us-west-2 elasticbeanstalk update-environment \
--application-name APP_NAME \
--environment-name ENV_NAME \ 
--option-settings Namespace=aws:elasticbeanstalk:sns:topics,OptionName="Notification Topic 
ARN",Value=arn:aws:sns:us-west-2:000000000000:alarm-ec2-health-status`

Я прочитал сообщения в http://blog.differentpla.net/blog/2019/01/11/jq-reduce/ и попытался использовать jq Reduce, а также jq foreach, но я получил ошибки, когда делать это на jqplay.

Я не могу понять, как выбрать значения для использования в качестве переменных в foreach. Я могу заставить его работать в Reduce, но тогда я не знаю, как затем отправить его в виде команды на AWS.

Используя примеры, я могу получить как приложения, так и envs, которые будут подсчитаны с использованием Reduce. , Но я не могу использовать это для отправки команд CLI на AWS из того, что я вижу.

reduce .[] as $item (
  {}; # initial value
  .[$item.App,$item.Env] +=1
)

Используя foreach, я не могу понять, как получить значения для того, что я считаю $ line .Env и $ line.App, чтобы я мог подключиться к своему сценарию. Я попробовал:

foreach (inputs, null) as $line 
  (.[];
   $line.App, $line.Env) 
...