我有一个拥有大量AWS Lambda函数的AWS账户,我想检查所有函数的所有环境变量,并尝试在其中查找使用某些特定值的函数。如何在不手动检查AWS控制台中每个功能的情况下做到这一点? AWS CLI允许吗?
答案 0 :(得分:2)
是的,AWS CLI允许您检查Lambda环境变量。为了使其端到端自动化,您需要将一些命令链接在一起。另外,我默认使用jq
进行繁重的操作。我敢肯定,在JMESPath中有一种方法可以做到这一点,但是我没有时间弄清楚它。
以下是其工作原理的概述:
list-functions
获取Lambda函数名称列表,并将该列表作为文本通过管道传递到xargs
get-function-configuration
将其用于获取所有Lambda函数配置详细信息。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 Manual
JQ Presence of Key before Iterating
AWS CLI Usage Examples
AWS Lambda Get Function Configuration
AWS Lambda List Functions
答案 1 :(得分:1)
您应该能够使用AWS CLI get-function来获取有关Lambda函数的元数据。返回的元数据包括用于下载部署程序包的预签名URL。您可以下载部署包,解压缩它,然后在源代码中搜索对您正在寻找的环境变量的引用。
看一下这个脚本,看看如何轻松完成它: https://gist.github.com/nemaniarjun/defdde356b6678352bcd4af69b7fe529