[英]How long does Lambda function store its variable value?
我創建了一個 lambda 腳本只是為了了解 lambda 腳本將其變量值存儲了多長時間。 在此之前,我的理解是它只存儲到 function 停止。 但是當我每 5 分鍾運行一次以下腳本時(在 EventBridge 的幫助下),我得到了以下 output:
from datetime import datetime
current_time = datetime.now()
def lambda_handler(event, context):
print(current_time)
Output(每 5 分鍾一班)
06:16AM: 061649
06:21AM: 061649
06:26AM: 061649
06:31AM: 061649
06:36AM: 061649
...
08:39AM: 083934
08:44AM: 083934
08:49AM: 083934
08:54AM: 083934
08:59AM: 083934
...
10.41AM: 104149
10.46AM: 104149
10.51AM: 104149
10.56AM: 104149
...
在我看來,我的 Lambda 腳本只會在 2-3 小時后而不是每 5 分鍾重新運行一次。 有誰知道為什么會這樣? 我如何讓它每 5 分鍾准確一次?
找到我的答案! 為了刷新每次調用的時間,我必須放置作業即
current_time = datetime.now()
在lambda_handler
中。 這使得current_time
成為局部變量而不是全局變量。 全局變量在多次調用中存儲它的值。
請參閱操作 Lambda:性能優化以了解環境重用。
在冷啟動時,您的模塊級初始化代碼將運行(導致 current_time 被設置為`datetime.now())但是在熱啟動時,您的模塊級初始化不運行,但是初始化的模塊級值來自先前的調用仍然存在。
這是一個有用的功能,因為它允許 Lambda function 完成某種級別的緩存。但是,您不能 100% 依賴它,因為您的 function 不會總是熱啟動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.