AWS Lambda:如何从配置中删除环境变量

Jac*_*oon 2 lambda amazon-web-services aws-lambda

我有一个lambda函数,该函数曾经使用在lambda配置中设置的加密环境变量,但不再需要它们。我尝试在用户界面中删除env变量,该变量不再显示,但仍在日志中看到:

“在环境变量中找到凭据。”

我也尝试使用update-function-code命令,而没有传递不起作用的env变量。

有什么方法可以从我的lambda函数配置中删除加密的env变量?我想确保删除未使用/不需要的东西。

谢谢!

jrc*_*jrc 8

日志消息来自“botocore”记录器。

这将有效地抑制该消息和其他消息boto3

logging.getLogger("boto3").setLevel(logging.WARNING)
logging.getLogger("botocore").setLevel(logging.WARNING)
Run Code Online (Sandbox Code Playgroud)

  • 当我测试这个时,我只需要第二个,即 botocore 的。另外,我使用环境变量来设置它,以防我需要查看信息级别通知:```LOG_VERBOSITY = os.getenv("LOG_VERBOSITY", "WARNING")logging.getLogger("botocore").setLevel(LOG_VERBOSITY) ) ``` (2认同)

小智 5

我相信这是使用boto的python lambdas内部工作的标准输出。我的所有python Lambda都没有凭据,但是我在python Lambda的所有日志中都有相同的消息。


小智 5

我知道现在有点晚了,但这是我的理解。

语句“在环境变量中找到凭据”。和你配置的环境变量没有任何关系。显然,Lambda 有一组保留的环境变量,当您的代码尝试连接到其他 AWS 服务(如 S3、SNS 等)时,Lambda 会尝试从保留的环境变量中读取凭证以建立与其他服务的连接,并在进程将有关在何处找到凭据的语句记录到“stdout”

根据本文当您配置了 INFO 级别的记录器时,您的代码和 AWS SDK 的所有 .info() 语句都将记录到“stdout”,从而最终记录在 CloudWatch 日志中。尝试将记录器级别设置为“警告”并观察日志。