lowkeyrd
lowkeyrd
**支持自定义filter** 需求场景: 1. 函数要通过内网访问OSS或者ACR来省去流量开销,需要函数部署在和OSS或者ACR相同的region,此时最理想的方案是parameter只透出一个endpoint,自动解析出函数的region,例如: ```yaml region: {{ endpoint | parseRegion }} ``` 2. 函数需要连接数据库,比如RDS、HBASE,需要函数部署在和数据库实例相同的vswitch、vpc内,现在需要用户人肉填写这些参数非常不便,最理想的方式是通过数据库实例ID 去查询所在的region、vpc、vswitch,例如: ```yaml vars: output: {{ instanceId | parseRDS } ... region: ${vars.output.region} service: vpcConfig: vpcId: ${vars.output.vpcId}...
现在用s初始化一个组件时,脚手架提供了一些基本的能力,但是在开发组件中,还是要关注很多和业务无关的代码的,比如: 1. 基本所有组件都要handlerInput,这个不是公共方法,我需要copy and paste其他组件的实现 2. 调用其他组件时,需要把当前组件的模型属性转换成调用组件的,开发者除了关注调用组件的props外,还要传递cred、project相关信息。可以把cred、project理解成请求公共头,这个在组件生命周期里都是固定的,当依赖很多其他组件时,要自己封装一个组件调用的class,把公共头包进去,可以参考fc、fc-deploy,完全是两种不同的实现,但其实干的都是一件事。我开发的组件是这么封装的:  说白了,Serverless Devs现在没有一个Runtime库,没有为组件的生命周期定义一套接口,让组件都继承或者实现Runtime。 Serverless Devs Core是公共的SDK,承担不了Runtime的角色。 Proposal:提供一套Component/Plugin Runtime,定义组件的生命周期和公共行为,让CLI、Component、Plugin都基于Runtime来实现: 1. CLI基于Runtime编排组件 2. Component实现Runtime,扩展自身行为
现在access只能配置account、ak/sk,但是provider config都是要增加region的,我们现在将region设置到prop里,很不友好。将region设置到access中,可以很方便的将测试、生产环境的profile放到不同的access中,对于ci/cd也更加友好
instanceLifecycleConfig 的体验现在有两个问题: 1. initializer的配置在外层,体验比较割裂,需要挪到instanceLifecycleConfig内,追平控制台效果 2. preStop、preFreeze 在未配置handler时不生效,而custom函数是不需要配置handler的。现场如下:    
现在自定义镜像应用,publish.yaml没有默认的镜像地址,用户需要自己创建acr仓库,这个对于体验比较难受。我们发布的镜像示例,应该都发布到公有的镜像仓库上,这样才能做到s init一键式部署 https://github.com/devsapp/start-fc/tree/master/custom-container-function
s invoke 终端显示的日志有问题,控制台正常 工具日志:  控制台日志: 
 如上图,账号欠费时,创建sls失败,但是仅提示创建sls失败,没有任何附加提示信息。sls client肯定是能返回欠费错误的,此时如果把sls的error信息打印出来,用户完全是可以自助解决的
现在关于service的误解很多,我们能否把service和function的抽出单独的组件出来? ```yaml services: fc-service: component: devsapp/fc-service props: region: cn-hangzhou name: test-service internetAccess: true logConfig: auto nasConfig: auto role: '' fc-function-1: component: devsapp/fc-function props: region: ${vars.region} serviceName: ${service.fc-service.output.name} #指定当前工程的service handler: index.handler...
现在是不同service单独展示,效果如下,感觉很割裂:  希望的效果,类似s info: 