将nestjs项目迁移到阿里云函数

注意:长耗时,高内存 的应用,定时任务 不适合迁移。

根据模板创建项目

一、模板配置修改

1.node版本修改

由于我的nestjs项目是node18的需要修改

pre-deploy项目:

改成

resources:
  framework:
    component: fc3
    actions:
      pre-deploy:
        - run: export PATH=/usr/local/versions/node/v18.14.2/bin:$PATH && npm install
          path: ./code
        - run: export PATH=/usr/local/versions/node/v18.14.2/bin:$PATH && npm run build
          path: ./code

注意:这里并不是随便改的

修改参考:通过控制台应用中心管理流水线_函数计算(FC)-阿里云帮助中心

找到 资源描述文件环境变量 这一节 进行修改

公共层修改

参考awesome-layers/docs/Nodejs18/README.md at main · awesome-fc/awesome-layers · GitHub

layers:
  - acs:fc:${vars.region}:official:layers/Nodejs18/versions/3
environmentVariables:
  PATH: >-
    /opt/nodejs18/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin

2.内网数据库连接配置

如果用到了rds或者阿里云上自建的mysql数据库

则配置

internetAccess: true
vpcConfig:
  securityGroupId: sg-安全组id
  vpcId: vpc-vpcId
  vSwitchIds:
    - vsw-虚拟交换机id

在ECS上自建的数据库可以直接复制ECS对应的id,注意配置不要写在tigger后面

修改函数区域为RDS或自建数据库所在区域

vars:
  region: 'cn-beijing'

3.时区修改

environmentVariables:
        TZ: Asia/Shanghai

二、代码修改

1.监听端口修改

由于在s.yaml中监听端口配置为9000

customRuntimeConfig:
  command:
    - ./bootstrap
  port: 9000

那么,在main.ts的监听端口也修改为9000,即

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(9000);
}

2.启用.env配置文件

默认的.fcignore文件配置了忽略.env,会导致程序的一些数据库配置文件获取不到,这里需要将.fcignore的下列内容删除后提交即可。

./.env*
相关推荐
九河云2 小时前
确保在AWS上的资源安全:构建坚不可摧的云安全防线
安全·云计算·aws
阿里云大数据AI技术2 小时前
对接开源大模型应用开发平台最佳实践
人工智能·阿里云·llm·opensearch
KubeSphere 云原生2 小时前
云原生周刊:Prometheus 3.0 Beta 发布|2024.09.16
云计算·k8s·容器平台·kubesphere
Java码农杂谈3 小时前
浅谈Tair缓存的三种存储引擎MDB、LDB、RDB
java·redis·分布式·后端·阿里云·缓存
Jasonakeke10 小时前
本地镜像发布到阿里云
阿里云·云计算
奔跑的蜗牛fzq18 小时前
阿里云专业翻译api对接
阿里云·云计算
仙剑魔尊重楼20 小时前
FL Studio 24.1.1.4285中文破解完整版免费下载FL 2024注册密钥完整版crack百度云安装包下载
云计算·百度云·fl studio·fl studio 21·fl studio 24
风清已存在1 天前
阿里云OSS与IOT使用详解
物联网·阿里云·云计算
阿里云视频云1 天前
信通院发布首个《大模型媒体生产与处理》标准,阿里云智能媒体服务作为业界首家“卓越级”通过
阿里云·云计算·媒体
阿里云视频云2 天前
直播标准权威发布,阿里云RTS获首批卓越级评估认证
阿里云·云计算