У меня работает следующая команда, она возвращает список приложений и среды (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)