python - AWS Lambda 读取作为源代码上传的 zip 文件的内容

标签 python amazon-web-services aws-lambda

我有两个文件:

MyLambdaFunction.py

config.json

我将这两个文件压缩在一起以创建 MyLambdaFunction.zip。然后我通过 AWS 控制台将其上传到我的 lambda 函数。

config.json 的内容是各种环境变量。我需要一种方法来在每次 lambda 函数运行时读取文件的内容,然后使用里面的数据来设置运行时变量。

如何让我的 Python Lambda 函数读取包含源代码的 zip 文件中上传的文件 config.json 的内容?

最佳答案

通过@helloV 向正确方向的插入解决了这个问题。

在 python 文件的顶部放置 import os

在您的函数处理程序中放置以下内容:

configPath = os.environ['LAMBDA_TASK_ROOT'] + "/config.json"
print("Looking for config.json at " + configPath)
configContents = open(configPath).read()
configJson = json.loads(configContents)
environment = configJson['environment']
print("Environment: " + environment)

就在那里,逐行执行以下操作:

  • 获取config.json文件存放路径
  • 打印该路径以在 CloudWatch 日志中查看
  • 打开该路径下的文件,读取内容
  • 将内容加载到 json 对象以便于导航
  • 获取存储在 json 中的变量之一的值
  • 打印出来以便在 CloudWatch 日志中查看

这是 config.json 的样子:

{
    "environment":"dev"
}

编辑 AWS lambda 现在支持直接在控制台 UI 中使用环境变量。因此,如果您的用例与我的相同(即对于配置文件),则您不再需要配置文件。

关于python - AWS Lambda 读取作为源代码上传的 zip 文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39477729/

相关文章:

javascript - 从外部静态 JSON 文件检索数据并在 AWS Lambda 中使用

python - 冒号运算符导致 Python 3.4 和 Ubuntu 14.04 出现问题

amazon-web-services - Tensorboard 的 SageMaker 网址是什么?

amazon-web-services - 为什么 Lambda 函数在使用 1536 MB 时执行速度要快得多?

amazon-web-services - CloudFront 无法使用 S3 网站源,只能使用 REST 源 Cloudformation

amazon-web-services - 如何解决 AWS 上的最终一致性问题

c# - AWS .net Core Lambda 项目中的全局异常处理程序?

python - 如何按特定顺序对两个(或更多)不同列上的 pandas 数据框进行排序

python - Apache mod_wsgi 在部署 Django 项目时抛出错误 "403 Forbidden"

python - 如何将焦点放在 Gtk.TreeView 的特定单元格上?