注意:长耗时,高内存 的应用,定时任务 不适合迁移。
根据模板创建项目
由于我的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
如果用到了rds或者阿里云上自建的mysql数据库
则配置
- internetAccess: true
- vpcConfig:
- securityGroupId: sg-安全组id
- vpcId: vpc-vpcId
- vSwitchIds:
- - vsw-虚拟交换机id
在ECS上自建的数据库可以直接复制ECS对应的id,注意配置不要写在tigger后面
修改函数区域为RDS或自建数据库所在区域
- vars:
- region: 'cn-beijing'
- environmentVariables:
- TZ: Asia/Shanghai
由于在s.yaml中监听端口配置为9000
- customRuntimeConfig:
- command:
- - ./bootstrap
- port: 9000
那么,在main.ts的监听端口也修改为9000,即
- async function bootstrap() {
- const app = await NestFactory.create(AppModule);
- await app.listen(9000);
- }
默认的.fcignore文件配置了忽略.env,会导致程序的一些数据库配置文件获取不到,这里需要将.fcignore的下列内容删除后提交即可。
./.env*