amazon-web-services - 是否可以在 AWS 中触发 lambda init?
问题描述
Aws lambda 在其生命周期中有 3 个步骤:
- 在里面
- 调用
- 关闭
有没有办法在不部署任何代码的情况下自动触发 lambda init?
更新:
我在初始化期间启动了一些操作:将文件的内容保存在变量中。然后在调用操作期间,不再下载内容。但是我需要不时启动下载的动作。然后,我想知道是否有办法触发 init 操作。
解决方案
为什么不再次调用你的init()
函数呢?
以下面的 Go Lambda 为例:
// handleRequest does process every request to the Lambda.
func handleRequest(ctx context.Context) error {
init() // <-- call it whenever you want in your handler again
}
// init does store some data from a file in a variable.
func init() {}
func main() {
init() // <-- called on the first start of the Lambda
lambda.Start(handleRequest)
}
该init
函数在方法中调用,该main()
方法在 Lambda 首次启动(冷启动或初始化)时执行。但是,如果您将初始化的“业务逻辑”移动到一个单独的函数中,您可以在处理函数中随时调用它。
注意:我根本不认为这是一个好主意。如果您需要/想要做这样的事情,这绝对是一种设计“气味”。因此,您应该重新考虑自己在做什么,而不是构建这样的解决方法。
推荐阅读
- php - 使用 Eloquent ORM 通过另一个表获取表记录
- python - Google-News Word2vec 预训练模型中的哪个 Pad 令牌
- javascript - jQuery中的简单文本滑块
- node.js - 打字稿/节点意外令牌*
- r - 如何使用 `r` 仅将我的 R 命令的某些部分嵌入到 R markdown 文档中?
- javascript - 更新渲染元素(不可变)
- javascript - 通过数组变量制作模式
- firebase - Firebase 托管显示已连接,但当我尝试打开 URL 时显示未找到站点
- java - org.hibernate.WrongClassException:对象 [id=null] 不是指定的子类
- html - bootstrap 4.3.1 导航栏在链接点击时不折叠