OSS 用于存储一些资源文件。
使用方式
在 f.yml 中配置函数和触发器。
service:name: midway-faas-examplesprovider:name: aliyunfunctions:ossTrigger:handler: oss.handlerevents:- os:bucket: ossBucketNameevents:- oss:ObjectCreated:*- oss:ObjectRemoved:DeleteObjectfilter:prefix: filterdir/suffix: .jpgpackage:artifact: code.zip
在 f deploy 后,即可。
开发支持
针对 OSS 触发器,我们提供了传入的事件类型定义。
import { FC } from '@midwayjs/faas';export class OSSText {@Func('oss.handler')async handler(event: FC.OSSEvent) {// TODO}}
本地开发
使用 f invoke 命令进行触发。
f invoke -f [你的函数名]
本地测试
这里没有传 data,会默认通过 f.yml 获取触发器类型传入模拟数据。
// testdescribe('/test/index.test.ts', () => {it('invoke', async () => {await invoke({functionName: 'ossTrigger',});});});
注意
- 1、一个 bucket 的一个前缀下只能支持配置一个触发器,如果配置多个会出现
message: event source 'oss' returned error: Cannot specify overlapping prefix and suffix with same event type.的报错
