diff --git a/src/modules/scf/constants.ts b/src/modules/scf/constants.ts new file mode 100644 index 0000000..bc6249f --- /dev/null +++ b/src/modules/scf/constants.ts @@ -0,0 +1 @@ +export const WebServerImageDefaultPort = 9000; diff --git a/src/modules/scf/interface.ts b/src/modules/scf/interface.ts index d7f3d6b..f5da63a 100644 --- a/src/modules/scf/interface.ts +++ b/src/modules/scf/interface.ts @@ -12,6 +12,8 @@ export interface FunctionCode { RegistryId?: string; Command?: string; Args?: string; + ContainerImageAccelerate?: boolean; + ImagePort?: number; }; } @@ -203,6 +205,7 @@ export interface ScfCreateFunctionInputs { cfs?: { cfsId: string; + mountInsId?: string; MountInsId?: string; localMountDir: string; remoteMountDir: string; @@ -228,6 +231,10 @@ export interface ScfCreateFunctionInputs { command?: string; // 启动命令参数 args?: string; + // 是否开启镜像加速 + containerImageAccelerate?: boolean; + // 监听端口: -1 表示job镜像,0~65535 表示Web Server镜像 + imagePort?: number; }; // 异步调用重试配置 @@ -391,25 +398,25 @@ export interface GetRequestStatusOptions { /** * 函数名称 */ - functionName: string + functionName: string; /** * 需要查询状态的请求id */ - functionRequestId: string + functionRequestId: string; /** * 函数的所在的命名空间 */ - namespace?: string + namespace?: string; /** * 查询的开始时间,例如:2017-05-16 20:00:00,不填默认为当前时间 - 15min */ - startTime?: string + startTime?: string; /** * 查询的结束时间,例如:2017-05-16 20:59:59,不填默认为当前时间。EndTime 需要晚于 StartTime。 */ - endTime?: string + endTime?: string; } diff --git a/src/modules/scf/utils.ts b/src/modules/scf/utils.ts index 0c905d1..684f95d 100644 --- a/src/modules/scf/utils.ts +++ b/src/modules/scf/utils.ts @@ -1,3 +1,4 @@ +import { WebServerImageDefaultPort } from './constants'; import { ScfCreateFunctionInputs, BaseFunctionConfig, ProtocolParams } from './interface'; const CONFIGS = require('./config').default; @@ -52,6 +53,20 @@ export const formatInputs = (inputs: ScfCreateFunctionInputs) => { if (imageConfig.args) { functionInputs.Code!.ImageConfig!.Args = imageConfig.args; } + // 镜像加速 + if (imageConfig.containerImageAccelerate !== undefined) { + functionInputs.Code!.ImageConfig!.ContainerImageAccelerate = + imageConfig.containerImageAccelerate; + } + // 监听端口: -1 表示 job镜像,0 ~ 65526 表示webServer镜像 + if (imageConfig.imagePort) { + functionInputs.Code!.ImageConfig!.ImagePort = + Number.isInteger(imageConfig?.imagePort) && + imageConfig?.imagePort >= -1 && + imageConfig?.imagePort <= 65535 + ? imageConfig.imagePort + : WebServerImageDefaultPort; + } } else { // 基于 COS 代码部署 functionInputs.Code = { @@ -149,7 +164,7 @@ export const formatInputs = (inputs: ScfCreateFunctionInputs) => { inputs.cfs.forEach((item) => { functionInputs.CfsConfig?.CfsInsList.push({ CfsId: item.cfsId, - MountInsId: item.MountInsId || item.cfsId, + MountInsId: item.mountInsId || item.MountInsId || item.cfsId, LocalMountDir: item.localMountDir, RemoteMountDir: item.remoteMountDir, UserGroupId: String(item.userGroupId || 10000),