一个 FaaS 函数本身应该是无状态的,并拥有根据运行环境设置自身的能力。
指定运行环境
可以通过 MIDWAY_SERVER_ENV 或者 NODE_ENV 环境变量指定运行环境更加方便,比如在本地环境启动:
NODE_ENV=local npm startNODE_ENV=local f invokeMIDWAY_SERVER_ENV=local npm startMIDWAY_SERVER_ENV=local f invoke
:::info
在一些情况下 NODE_ENV 被占用无法修改,所以可以用 MIDWAY_SERVER_ENV 替代。
:::
函数中获取环境
每个函数能拿到的 context 属性上,就有着环境字符串,环境取到的字符串即为 MIDWAY_SERVER_ENV 或 NODE_ENV 的值。
process.env.NODE_ENV = 'local';ctx.env // 'local'
示例
@Provide()@Func('index.handler')export class IndexHandler implements FunctionHandler {@Inject()ctx: FaaSContext;async handler() {console.log(this.ctx.env); // local}}
