一个 FaaS 函数本身应该是无状态的,并拥有根据运行环境设置自身的能力。
指定运行环境
可以通过 MIDWAY_SERVER_ENV
或者 NODE_ENV
环境变量指定运行环境更加方便,比如在本地环境启动:
NODE_ENV=local npm start
NODE_ENV=local f invoke
MIDWAY_SERVER_ENV=local npm start
MIDWAY_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
}
}