跳到主要内容
版本:2.0.0

事件触发器(Event)

发布不包含触发器的函数,这是最简单的类型,可以直接通过 event 手动触发参数,也可以在平台绑定其他触发器。

使用方式

通过直接在代码中的 @ServerlessTrigger  装饰器绑定事件触发器。

import { Provide, Inject, ServerlessTrigger, ServerlessTriggerType } from '@midwayjs/decorator';
import { Context, FC } from '@midwayjs/faas';

@Provide()
export class HelloAliyunService {
@Inject()
ctx: Context;

@ServerlessTrigger(ServerlessTriggerType.EVENT)
async handleEvent(event: any) {
return event;
}
}

本地测试

通过 createFunctionApp  创建函数 app,通过 getServerlessInstance  获取类实例,然后通过实例的方法直接调用,传入参数进行测试。

describe('test/hello_aliyun.test.ts', () => {
let app: Application;
let instance: HelloAliyunService;

beforeAll(async () => {
// create app
app = await createFunctionApp<Framework>(join(__dirname, '../'), {
initContext: createInitializeContext(),
});
instance = await app.getServerlessInstance<HelloAliyunService>(HelloAliyunService);
});

afterAll(async () => {
await close(app);
});

it('should get result from event trigger', async () => {
expect(await instance.handleEvent('hello world')).toEqual('hello world');
});
});