集成/触发
函数计算支持和其他服务集成,比如集成oss,当新增或删除对象时,自动触发某个函数执行。这就叫“事件驱动”。在函数计算里,这个能力就叫“触发器”
https://help.aliyun.com/document_detail/53102.htm?spm=a2c4g.11186623.0.0.4eff29ec1Aog9l#concept-2259970
SDK触发
函数生命周期回调
日志相关
依赖
函数计算内置支持的python模块
https://help.aliyun.com/document_detail/158208.html#h3-url-1
其他不支持的如何安装依赖?
https://help.aliyun.com/document_detail/56316.html#p-1d7-i6g-sra
https://help.aliyun.com/document_detail/422183.html#section-y8m-y6a-g4s
如何在所有函数计算实例集群上都安装上?
https://help.aliyun.com/document_detail/74571.htm?spm=a2c4g.11186623.0.0.12879b63ZOUpu4#multiTask11533
构建层,把依赖单独提炼到“层“,以减少部署、更新时的代码包体积。
环境变量
环境变量可以理解为系统变量。
和event和context的区别
- 上游参数在event里
- context是上下文:调用、服务、函数、链路追踪和执行环境等
注意点
对接redis
需要保证函数计算实例和 redis实例在同一网络内。怎么做呢
- 在函数计算服务配置里的网络配置中开启vpc访问,并在专用网络这儿选择 redis实例 所在的专有网络
- 把函数计算实例设置的交换机的的ip 加到 redis访问白名单里
问题
函数返回后,执行环境也会随之释放吗?我能复用上一次调用缓存的资源/状态吗?
https://help.aliyun.com/document_detail/181833.html
我的研发问题
1、问题:这里我是不是需要http触发器?和handler的关系是什么?
函数有两种类型,事件函数和http函数。
事件函数也支持通过api/sdk来调用函数计算,所以不一定使用http函数吧?
- java系统能用sdk的方式调用python的函数计算吗? — 可以的 https://github.com/aliyun/fc-java-sdk?spm=a2c4g.11186623.0.0.1eb4569ebKq3gD
函数是不是可以设置http触发器也可以不设置触发器。
所以是不是可以有两种方式:设置 http触发器 并使用http触发(http函数类型), 不设置触发器通过sdk触发。
这两种方式的区别是?http触发器的方式 相当于 函数是一个web server。
我的场景用哪个应该都可以,优先http,但要确认下事件函数是否也有常驻进程在,希望能常驻。
- event 模式 函数也能常驻。https://help.aliyun.com/document_detail/181833.html
代码开发问题:
- 这里不用指定代码路径?文件名重复怎么办?
这个 跟 包 文件管理有关?
我的开发
1、数据库配置啥的都可以放在context里,舆情代码里的config.json
2、通过生命周期回调方法 initialize 把初始化的动作都放在这里,通过全局变量 的方式 共享给后面的handler执行。
参考示例
https://help.aliyun.com/document_detail/323541.html#section-pwe-cbd-0h1
https://github.com/awesome-fc/golang-example/blob/master/go-initializer-mysql/code/main.go