注意:长耗时,高内存 的应用,定时任务 不适合迁移。
根据模板创建项目
一、模板配置修改
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*