集成/触发

函数计算支持和其他服务集成,比如集成oss,当新增或删除对象时,自动触发某个函数执行。这就叫“事件驱动”。在函数计算里,这个能力就叫“触发器”
https://help.aliyun.com/document_detail/53102.htm?spm=a2c4g.11186623.0.0.4eff29ec1Aog9l#concept-2259970

SDK触发

SDK
https://help.aliyun.com/document_detail/53277.htm?spm=a2c4g.11186623.0.0.7b373d217djRNW#concept-2260089

函数生命周期回调

image.png

日志相关

https://help.aliyun.com/document_detail/422184.htm?spm=a2c4g.11186623.0.0.23fe6f71Jmwt8n#section-6lq-hns-e32

依赖

函数计算内置支持的python模块
https://help.aliyun.com/document_detail/158208.html#h3-url-1
其他不支持的如何安装依赖?
https://help.aliyun.com/document_detail/56316.html#p-1d7-i6g-sra
image.png
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是上下文:调用、服务、函数、链路追踪和执行环境等

image.png

注意点

  • 当您使用HTTP类型的函数创建后,系统会默认为该函数创建一个HTTP触发器
  • image.png
  • image.png

    弹性管理

    image.png

对接redis

需要保证函数计算实例和 redis实例在同一网络内。怎么做呢

  1. 在函数计算服务配置里的网络配置中开启vpc访问,并在专用网络这儿选择 redis实例 所在的专有网络

image.png
image.png

  1. 把函数计算实例设置的交换机的的ip 加到 redis访问白名单里

image.pngimage.png
image.pngimage.png

问题

函数返回后,执行环境也会随之释放吗?我能复用上一次调用缓存的资源/状态吗?
https://help.aliyun.com/document_detail/181833.html

image.png


我的研发问题

1、问题:这里我是不是需要http触发器?和handler的关系是什么?

函数有两种类型,事件函数和http函数。
事件函数也支持通过api/sdk来调用函数计算,所以不一定使用http函数吧?

函数是不是可以设置http触发器也可以不设置触发器。
所以是不是可以有两种方式:设置 http触发器 并使用http触发(http函数类型), 不设置触发器通过sdk触发。
这两种方式的区别是?http触发器的方式 相当于 函数是一个web server。

我的场景用哪个应该都可以,优先http,但要确认下事件函数是否也有常驻进程在,希望能常驻。

代码开发问题:

  • 这里不用指定代码路径?文件名重复怎么办?image.png

    这个 跟 包 文件管理有关?


我的开发

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