:::info 请务必注意,阿里云消息队列会对 Topic 和 Queue 产生一定的费用。 :::

使用方式

f.yml 中配置函数和触发器。

  1. service:
  2. name: serverless-hello-world
  3. provider:
  4. name: aliyun
  5. functions:
  6. index:
  7. handler: mns.handler
  8. events:
  9. - mq:
  10. topic: test-topic
  11. package:
  12. artifact: code.zip

f deploy 后,即可。

:::info 注意,在阿里云下,midway faas 提供的默认消息队列格式为 JSON :::

开发支持

针对 MNS(mq) 触发器,我们提供了传入的事件类型定义。

  1. import { FC } from '@midwayjs/faas';
  2. export class MNSTriggerTest {
  3. @Func('mns.handler')
  4. async handler(event: FC.MNSEvent) {
  5. // TODO
  6. }
  7. }

本地开发

使用 f invoke 命令进行触发。

  1. f invoke -f [你的函数名]

本地测试

这里没有传 data,会默认通过 f.yml 获取触发器类型传入模拟数据。

  1. // test
  2. describe('/test/index.test.ts', () => {
  3. it('invoke', async () => {
  4. await invoke({
  5. functionName: 'mnsTrigger',
  6. });
  7. });
  8. });