OSS 用于存储一些资源文件。
使用方式
在 f.yml
中配置函数和触发器。
service:
name: midway-faas-examples
provider:
name: aliyun
functions:
ossTrigger:
handler: oss.handler
events:
- os:
bucket: ossBucketName
events:
- oss:ObjectCreated:*
- oss:ObjectRemoved:DeleteObject
filter:
prefix: filterdir/
suffix: .jpg
package:
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
获取触发器类型传入模拟数据。
// test
describe('/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.
的报错