将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*
相关推荐
CodeCaptain1 天前
配置Nginx反向代理来实现负载均衡,续阿里云ECS配置Nginx反向代理
nginx·阿里云·负载均衡
Bin Watson1 天前
Ubuntu安装Docker记录(基于阿里云)
ubuntu·阿里云·docker
CodeCaptain1 天前
阿里云ECS上配置Nginx的反向代理
nginx·阿里云·云计算
有谁看见我的剑了?1 天前
VMware OVF Tool 工具安装学习
云计算
无我19872 天前
专业的厌氧池清淤哪家酷
阿里云
酒书2 天前
对接阿里云号码认证实现运营商一键登录
java·阿里云
盛夏5202 天前
Docker容器化部署SpringBoot+Vue项目:从零到一在阿里云宝塔面板的实践指南
阿里云·docker·云计算
狐572 天前
2026-01-10-云计算问答题部分整理-期末复习
云计算·期末复习
2401_861277552 天前
中国电信星辰AI大模型有哪些主要功能
人工智能·云计算·软件工程·语音识别
weixin_462446232 天前
Python 使用阿里云 STS 获取临时访问凭证并上传文件至 OSS:Flask API 实现
python·阿里云·flask