簡體   English   中英

Lambda function 將其變量值存儲多長時間?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM