【问题标题】:Search through values of all AWS Lambda function's environment variables in AWS account搜索 AWS 账户中所有 AWS Lambda 函数的环境变量的值
【发布时间】:2020-02-09 01:44:22
【问题描述】:

我有一个拥有大量 AWS Lambda 函数的 AWS 账户,我想检查所有函数的所有环境变量,并尝试在那里找到使用某些特定值的函数。如果不手动检查 AWS 控制台中的每个功能,我该如何做到这一点? AWS CLI 是否允许这样做?

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-cli


    【解决方案1】:

    是的,AWS CLI 允许您检查 Lambda 环境变量。要使其端到端自动化,您需要将一些命令链接在一起。另外,我默认使用jq 进行繁重的工作。我确信在 JMESPath 中有一种方法可以做到这一点,但我没有时间弄清楚。

    以下是其工作原理的概述:

    1. 通过调用 list-functions 获取 Lambda 函数名称列表,并将该列表作为文本传送到 xargs
    2. 通过调用 get-function-configuration 获取上一步的输出并使用它来获取所有 Lambda 函数配置详细信息。
    3. 将输出传送到jq,确保Environment 字段不为空并搜索所需的变量。在这种情况下,我正在搜索一个名为 customer 的变量,其值为 shared_services
    4. 输出 Lambda 函数名称。

    代码:

    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

    【讨论】:

      【解决方案2】:

      您应该能够使用AWS CLI get-function 获取有关 Lambda 函数的元数据。返回的元数据包括用于下载部署包的预签名 URL。您可以下载部署包,将其解包,然后搜索源代码以查找对您正在查找的环境变量的引用。

      看看这个脚本,看看它是如何轻松完成的: https://gist.github.com/nemaniarjun/defdde356b6678352bcd4af69b7fe529

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-17
        • 2020-09-02
        • 1970-01-01
        • 2017-08-01
        • 2016-11-02
        • 2021-05-09
        相关资源
        最近更新 更多