Skip to content

Commit ba17d05

Browse files
committed
support debian12
1 parent d8a7e03 commit ba17d05

14 files changed

Lines changed: 538 additions & 77 deletions

File tree

package-lock.json

Lines changed: 301 additions & 58 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@
2323
"license": "ISC",
2424
"dependencies": {
2525
"@alicloud/fc2": "^2.6.6",
26-
"@alicloud/fc20230330": "^4.1.6",
26+
"@alicloud/fc20230330": "^4.3.0",
2727
"@alicloud/pop-core": "^1.8.0",
2828
"@serverless-cd/srm-aliyun-pop-core": "^0.0.7-beta.21",
2929
"@serverless-cd/srm-aliyun-ram20150501": "^0.0.2-beta.9",
3030
"@serverless-cd/srm-aliyun-sls20201230": "0.0.5-beta.3",
3131
"@serverless-devs/diff": "^0.0.3-beta.6",
32-
"@serverless-devs/downloads": "^0.0.6",
33-
"@serverless-devs/load-component": "^0.0.8",
34-
"@serverless-devs/utils": "^0.0.16",
32+
"@serverless-devs/downloads": "^0.0.7",
33+
"@serverless-devs/load-component": "^0.0.9",
34+
"@serverless-devs/utils": "^0.0.17",
3535
"@serverless-devs/zip": "^0.0.3-beta.8",
3636
"ajv": "^8.17.1",
3737
"aliyun-sdk": "^1.12.10",
@@ -57,7 +57,7 @@
5757
"@serverless-devs/component-interface": "^0.0.6",
5858
"@serverless-devs/logger": "^0.0.5",
5959
"@types/jest": "^29.5.14",
60-
"@types/lodash": "^4.17.14",
60+
"@types/lodash": "^4.17.16",
6161
"@types/node": "^20.12.11",
6262
"@vercel/ncc": "^0.38.3",
6363
"f2elint": "^2.2.1",
@@ -73,6 +73,9 @@
7373
"resolutions": {
7474
"@alicloud/sls20191023": {
7575
"registry": "https://packages.aliyun.com/670e108663cd360abfe4be65/npm/npm-registry/"
76+
},
77+
"@alicloud/fc20230330": {
78+
"registry": "https://packages.aliyun.com/670e108663cd360abfe4be65/npm/npm-registry/"
7679
}
7780
}
7881
}

src/interface/base.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export enum Runtime {
3737
'dotnetcore2.1' = 'dotnetcore2.1',
3838
'custom.debian10' = 'custom.debian10',
3939
'custom.debian11' = 'custom.debian11',
40+
'custom.debian12' = 'custom.debian12',
4041
'custom' = 'custom',
4142
'custom-container' = 'custom-container',
4243
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export interface IConcurrencyConfig {
2+
reservedConcurrency: number;
3+
}

src/interface/function.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ export interface IFunction {
124124
cpu?: number;
125125
memorySize?: number;
126126
timeout?: number;
127+
sessionAffinity?: string;
127128

128129
logConfig?: 'auto' | ILogConfig;
129130
nasConfig?: 'auto' | INasConfig;

src/interface/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import { IFunction } from './function';
33
import { ITrigger } from './trigger';
44
import { IRegion } from './region';
55
import { IAsyncInvokeConfig } from './async_invoke_config';
6+
import { IConcurrencyConfig } from './concurrency_config';
7+
import { IProvisionConfig } from './provison_config';
68

79
export * from './region';
810
export * from './function';
@@ -14,6 +16,8 @@ export interface IProps extends IFunction {
1416
region: IRegion;
1517
triggers?: ITrigger[];
1618
asyncInvokeConfig?: IAsyncInvokeConfig;
19+
concurrencyConfig?: IConcurrencyConfig;
20+
provisionConfig?: IProvisionConfig;
1721
endpoint?: string;
1822
}
1923

src/interface/provison_config.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
export interface ScheduledAction {
2+
name: string;
3+
startTime: string;
4+
endTime: string;
5+
target: number;
6+
scheduleExpression: string;
7+
timeZone: string;
8+
}
9+
10+
export interface TargetTrackingPolicy {
11+
name: string;
12+
startTime: string;
13+
endTime: string;
14+
metricType: string;
15+
metricTarget: number;
16+
minCapacity: number;
17+
maxCapacity: number;
18+
timeZone: string;
19+
}
20+
21+
export interface IProvisionConfig {
22+
defaultTarget: number;
23+
alwaysAllocateCPU: boolean;
24+
alwaysAllocateGPU: boolean;
25+
scheduledActions: ScheduledAction[];
26+
targetTrackingPolicies: TargetTrackingPolicy[];
27+
}

src/resources/fc/impl/utils.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ export function isCustomRuntime(runtime: string): boolean {
1212
return (
1313
runtime === Runtime.custom ||
1414
runtime === Runtime['custom.debian10'] ||
15-
runtime === Runtime['custom.debian11']
15+
runtime === Runtime['custom.debian11'] ||
16+
runtime === Runtime['custom.debian12']
1617
);
1718
}
1819

src/schema.json

Lines changed: 166 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,17 @@
109109
}
110110
]
111111
},
112+
"IConcurrencyConfig": {
113+
"properties": {
114+
"reservedConcurrency": {
115+
"type": "number"
116+
}
117+
},
118+
"required": [
119+
"reservedConcurrency"
120+
],
121+
"type": "object"
122+
},
112123
"ICustomContainerConfig": {
113124
"properties": {
114125
"command": {
@@ -761,6 +772,39 @@
761772
"IOtsConfig": {
762773
"type": "object"
763774
},
775+
"IProvisionConfig": {
776+
"properties": {
777+
"alwaysAllocateCPU": {
778+
"type": "boolean"
779+
},
780+
"alwaysAllocateGPU": {
781+
"type": "boolean"
782+
},
783+
"defaultTarget": {
784+
"type": "number"
785+
},
786+
"scheduledActions": {
787+
"items": {
788+
"$ref": "#/definitions/ScheduledAction"
789+
},
790+
"type": "array"
791+
},
792+
"targetTrackingPolicies": {
793+
"items": {
794+
"$ref": "#/definitions/TargetTrackingPolicy"
795+
},
796+
"type": "array"
797+
}
798+
},
799+
"required": [
800+
"alwaysAllocateCPU",
801+
"alwaysAllocateGPU",
802+
"defaultTarget",
803+
"scheduledActions",
804+
"targetTrackingPolicies"
805+
],
806+
"type": "object"
807+
},
764808
"IRegion": {
765809
"enum": [
766810
"ap-northeast-1",
@@ -779,6 +823,8 @@
779823
"cn-huhehaote",
780824
"cn-qingdao",
781825
"cn-shanghai",
826+
"cn-shanghai-cloudspe",
827+
"cn-shanghai-finance-1",
782828
"cn-shenzhen",
783829
"cn-wulanchabu",
784830
"cn-zhangjiakou",
@@ -809,6 +855,7 @@
809855
"custom-container",
810856
"custom.debian10",
811857
"custom.debian11",
858+
"custom.debian12",
812859
"dotnetcore2.1",
813860
"dotnetcore3.1",
814861
"go1",
@@ -825,11 +872,26 @@
825872
"python2.7",
826873
"python3",
827874
"python3.10",
828-
"python3.9",
829-
"python3.12"
875+
"python3.12",
876+
"python3.9"
830877
],
831878
"type": "string"
832879
},
880+
"ITags": {
881+
"properties": {
882+
"key": {
883+
"type": "string"
884+
},
885+
"value": {
886+
"type": "string"
887+
}
888+
},
889+
"required": [
890+
"key",
891+
"value"
892+
],
893+
"type": "object"
894+
},
833895
"ITimerTriggerConfig": {
834896
"properties": {
835897
"cronExpression": {
@@ -968,15 +1030,99 @@
9681030
"vpcId"
9691031
],
9701032
"type": "object"
1033+
},
1034+
"ScheduledAction": {
1035+
"properties": {
1036+
"endTime": {
1037+
"type": "string"
1038+
},
1039+
"name": {
1040+
"type": "string"
1041+
},
1042+
"scheduleExpression": {
1043+
"type": "string"
1044+
},
1045+
"startTime": {
1046+
"type": "string"
1047+
},
1048+
"target": {
1049+
"type": "number"
1050+
},
1051+
"timeZone": {
1052+
"type": "string"
1053+
}
1054+
},
1055+
"required": [
1056+
"endTime",
1057+
"name",
1058+
"scheduleExpression",
1059+
"startTime",
1060+
"target",
1061+
"timeZone"
1062+
],
1063+
"type": "object"
1064+
},
1065+
"TargetTrackingPolicy": {
1066+
"properties": {
1067+
"endTime": {
1068+
"type": "string"
1069+
},
1070+
"maxCapacity": {
1071+
"type": "number"
1072+
},
1073+
"metricTarget": {
1074+
"type": "number"
1075+
},
1076+
"metricType": {
1077+
"type": "string"
1078+
},
1079+
"minCapacity": {
1080+
"type": "number"
1081+
},
1082+
"name": {
1083+
"type": "string"
1084+
},
1085+
"startTime": {
1086+
"type": "string"
1087+
},
1088+
"timeZone": {
1089+
"type": "string"
1090+
}
1091+
},
1092+
"required": [
1093+
"endTime",
1094+
"maxCapacity",
1095+
"metricTarget",
1096+
"metricType",
1097+
"minCapacity",
1098+
"name",
1099+
"startTime",
1100+
"timeZone"
1101+
],
1102+
"type": "object"
9711103
}
9721104
},
9731105
"properties": {
1106+
"annotations": {
1107+
"properties": {
1108+
"headers": {
1109+
"additionalProperties": {
1110+
"type": "string"
1111+
},
1112+
"type": "object"
1113+
}
1114+
},
1115+
"type": "object"
1116+
},
9741117
"asyncInvokeConfig": {
9751118
"$ref": "#/definitions/IAsyncInvokeConfig"
9761119
},
9771120
"code": {
9781121
"$ref": "#/definitions/ICodeUri"
9791122
},
1123+
"concurrencyConfig": {
1124+
"$ref": "#/definitions/IConcurrencyConfig"
1125+
},
9801126
"cpu": {
9811127
"type": "number",
9821128
"default": 0.35,
@@ -1069,6 +1215,9 @@
10691215
"ossMountConfig": {
10701216
"$ref": "#/definitions/IOssMountConfig"
10711217
},
1218+
"provisionConfig": {
1219+
"$ref": "#/definitions/IProvisionConfig"
1220+
},
10721221
"region": {
10731222
"$ref": "#/definitions/IRegion"
10741223
},
@@ -1078,17 +1227,26 @@
10781227
"runtime": {
10791228
"$ref": "#/definitions/IRuntime"
10801229
},
1230+
"sessionAffinity": {
1231+
"type": "string"
1232+
},
1233+
"tags": {
1234+
"items": {
1235+
"$ref": "#/definitions/ITags"
1236+
},
1237+
"type": "array"
1238+
},
10811239
"timeout": {
1082-
"type": "integer",
1083-
"default": 3,
1084-
"minimum": 1,
1085-
"maximum": 86400
1240+
"type": "integer",
1241+
"default": 3,
1242+
"minimum": 1,
1243+
"maximum": 86400
10861244
},
1087-
"instanceConcurrency": {
1245+
"instanceConcurrency": {
10881246
"type": "integer",
10891247
"default": 1,
10901248
"minimum": 1,
1091-
"maximum": 100
1249+
"maximum": 200
10921250
},
10931251
"tracingConfig": {
10941252
"$ref": "#/definitions/ITracingConfig"

src/subCommands/build/impl/baseBuilder.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,11 @@ export abstract class Builder {
9393
if (runtime === 'python3') {
9494
runtime = 'python3.6';
9595
}
96-
if (runtime === 'python3.12' || runtime === 'custom.debian11') {
96+
if (
97+
runtime === 'python3.12' ||
98+
runtime === 'custom.debian11' ||
99+
runtime === 'custom.debian12'
100+
) {
97101
image = `${fcDockerVersionRegistry}/${fcDockerNameSpace}/runtime:${runtime}-build-${fcDockerVersion}`;
98102
} else {
99103
image = `${fcDockerVersionRegistry}/${fcDockerNameSpace}/runtime-${runtime}:build-${fcDockerVersion}`;

0 commit comments

Comments
 (0)