gpt4 book ai didi

python - AWS Lambda 中 Python 全局变量的范围

转载 作者:行者123 更新时间:2023-12-04 12:32:05 24 4
gpt4 key购买 nike

AWS Lambda 中全局变量的范围或生命周期是多少?
例如,如果我做这样的事情:

cache = {}

def lambda_handler(event, context):
# do something with "cache"
# do something else with "cache"
cache每次调用都会被初始化一次(每次 Lambda 执行的新进程)或者一旦这个模块被初始化,它是否会重新用于多次调用?

最佳答案

全局变量在同一执行环境中的调用之间保留其值。
库应该在处理程序之外的初始化代码中定义,因此它们在创建执行环境时加载一次。
来源aws

import boto3, json

client = boto3.resource('dynamodb', region_name='eu-west-1')
tbl = client.Table('my-dynamo-table')

mydata = {}
mydata["groups"] = []

def lambda_handler(event, context):
if len(mydata["groups"]) == 0:
# data is not cached, make call to dynamo
data = tbl.scan()
group_data = data['Items']

for group in group_data:
mydata["groups"].append(group['name'])
return mydata

else:
# return cached content
return mydata
利用执行环境重用来提高函数的性能。在函数处理程序之外初始化 SDK 客户端和数据库连接,并在/tmp 目录中本地缓存静态 Assets 。由您的函数的同一实例处理的后续调用可以重用这些资源。这通过减少函数运行时间来节省成本。
aws

关于python - AWS Lambda 中 Python 全局变量的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68367792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com