将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*
相关推荐
2501_930472444 小时前
03_AWS迁移腾讯云_组件差异风险清单与工作量WBS
云计算·腾讯云·aws
sbjdhjd6 小时前
PHP RCE 多层绕过实战:关键字过滤、空格替换与 php://filter 伪协议 | 02
网络·安全·web安全·网络安全·云计算·安全架构·rce
Alwayswinnn17 小时前
27届秋招实录:从手动填表到自动化辅助的效率跃升
阿里云·自动化·秋招·大学生找工作·应届生就业·ai求职工具·一键投简历
论文复现现场21 小时前
RTX 4090 24GB 能跑 Qwen3.8-27B 吗?单卡显存计算与云端部署指南
人工智能·python·云计算·llama·gpu算力
阿里云大数据AI技术1 天前
数据平台开始“支撑 Agent”:DataWorks Data Agent 如何重构企业数据生产方式
人工智能·阿里云·dataworks·数据平台·data agent
聚搜云——JuSouClouD1 天前
杭州腾讯云代理商:腾讯云2核4G服务器够用吗?网站、API和开发测试怎么选
服务器·云计算·腾讯云
范桂飓1 天前
AWS Kiro Agent 架构解析
架构·云计算·aws
Java小白笔记1 天前
Java 实现阿里云 OSS 文件上传链路:普通上传、秒传、分片与断点续传
java·开发语言·数据库·spring·阿里云
yunlaodacom1 天前
腾讯云国际站代理商:TKE镜像500MB和5GB,Pod冷启动能差多少?镜像拉取与启动优
5g·云计算·腾讯云
青软青之LIMS1 天前
King‘s LIMS如何成为快消品行业质量安全的“数字护城河“
安全·云计算