Да, интерфейс командной строки AWS позволяет проверять переменные среды Lambda. Чтобы автоматизировать это от начала до конца, вам нужно объединить несколько команд. Также я по умолчанию использовал jq
для тяжелой работы. Я уверен, что есть способ сделать это в JMESPath, но у меня не было времени выяснить это.
Вот краткий обзор того, как это работает:
- Получитьсписок имен лямбда-функций путем вызова
list-functions
и передачи этого списка в виде текста на xargs
- Возьмите вывод из предыдущего шага и используйте его для получения всех деталей конфигурации лямбда-функции, вызвав
get-function-configuration
. - Канал, который выводит на
jq
, убедитесь, что поле Environment
не равно нулю, и найдите нужную переменную. В этом случае я ищу переменную с именем customer
, которая имеет значение shared_services
. - Вывести имя лямбда-функции.
Код:
aws lambda list-functions --query 'Functions[*].[FunctionName]' --output text | xargs -I {} aws lambda get-function-configuration --function-name {} | jq -r 'select((.Environment) and select(.Environment.Variables.customer == "shared_services"))| .FunctionName'
Вывод
copy_snaps_shared_services
snapshot_by_customer
Ссылки
JQ Руководство
JQ Наличие ключа перед повторением
Примеры использования CLS AWS
AWS Lambda GetКонфигурация функций
Функции лямбда-списка AWS