拷贝文件

有时候,我们希望在构建时额外拷贝一些文件,默认情况下,我们会将根目录的 *.jsdist 等文件拷贝到最终产物中,除此之外,还提供了自定义拷贝的能力。 f.yml 中的 package 段落就是为了做这个事情。

示例

  1. package: # 打包配置
  2. include: # 打包包含文件列表,默认为 package.json、构建后的代码和依赖
  3. - resource/*
  4. exclude: # 打包剔除文件列表
  5. - test/*
  6. artifact: code.zip # 打包后的压缩包文件名

:::info package 字段不处理 src/**/*.ts 文件,一般常用于静态资源,json 等文件的拷贝,默认起始为项目根路径。 :::

高密度部署

将多个调用量(QPS)偏低的函数部署到一个容器内,能够减少容器数量并提高容器的热启动次数,从而实现成本的降低,高密度部署就是指在原有的函数调用方式保持不变的情况下,开发者无需改动代码就能很容易的将多个函数进行合并与拆分部署。

需要在 f.yml 中添加规则:

  1. functions:
  2. index:
  3. handler: index.handler
  4. events:
  5. - http:
  6. path: /api/index
  7. home:
  8. handler: home.handler
  9. events:
  10. - http:
  11. path: /api/home
  12. aggregation:
  13. combine: // 高密度部署后的函数名,自定义
  14. functions: // 要把哪些函数进行合并部署
  15. - index
  16. - home

通过高密度部署之后,会使用 “combine 函数” 将 /api/index/api/home 进行拦截,然后转发到对应的逻辑上进行执行,实现一个函数承载多个函数。

:::info 本质上,高密度部署就是把多个函数聚合到同一个函数容器中。 :::