@@ -293,13 +293,6 @@ export default class Scf {
293
293
'aliasFunctionVersion is required when aliasName is setted' ,
294
294
) ;
295
295
}
296
- } else {
297
- if ( inputs ?. additionalVersionWeights || inputs ?. aliasFunctionVersion ) {
298
- throw new ApiTypeError (
299
- 'PARAMETER_SCF' ,
300
- 'aliasName is required when additionalVersionWeights or aliasFunctionVersion is setted' ,
301
- ) ;
302
- }
303
296
}
304
297
305
298
// 在部署前,检查函数初始状态,如果初始为 CreateFailed,尝试先删除,再重新创建
@@ -333,6 +326,11 @@ export default class Scf {
333
326
namespace,
334
327
description : inputs . publishDescription ,
335
328
} ) ;
329
+
330
+ if ( inputs . aliasName ) {
331
+ inputs . aliasFunctionVersion = FunctionVersion ;
332
+ }
333
+
336
334
inputs . lastVersion = FunctionVersion ;
337
335
outputs . LastVersion = FunctionVersion ;
338
336
@@ -344,8 +342,8 @@ export default class Scf {
344
342
}
345
343
346
344
// 检测配置的别名是否存在,不存在就创建,存在的话就设置流量
347
- let needCreateAlias = false ;
348
345
if ( inputs . aliasName ) {
346
+ let needCreateAlias = false ;
349
347
if ( inputs . aliasName !== '$DEFAULT' ) {
350
348
try {
351
349
const aliasInfo = await this . alias . get ( {
@@ -393,6 +391,24 @@ export default class Scf {
393
391
const errorType = needCreateAlias ? 'CREATE_ALIAS_SCF' : 'UPDATE_ALIAS_SCF' ;
394
392
throw new ApiTypeError ( errorType , error . message ) ;
395
393
}
394
+ } else {
395
+ // 兼容旧逻辑,即给默认版本$LATEST设置traffic比例的流量,给lastVersion版本设置(1-traffic)比例的流量。
396
+ const needSetTraffic =
397
+ inputs . traffic != null && inputs . lastVersion && inputs . lastVersion !== '$LATEST' ;
398
+ if ( needSetTraffic ) {
399
+ await this . alias . update ( {
400
+ namespace,
401
+ functionName,
402
+ region : this . region ,
403
+ additionalVersions : needSetTraffic
404
+ ? [ { weight : strip ( 1 - inputs . traffic ! ) , version : inputs . lastVersion ! } ]
405
+ : [ ] ,
406
+ aliasName : inputs . aliasName ,
407
+ description : inputs . aliasDescription ,
408
+ } ) ;
409
+ outputs . Traffic = inputs . traffic ;
410
+ outputs . ConfigTrafficVersion = inputs . lastVersion ;
411
+ }
396
412
}
397
413
398
414
// get default alias
0 commit comments