@@ -293,13 +293,6 @@ export default class Scf {
293293          'aliasFunctionVersion is required when aliasName is setted' , 
294294        ) ; 
295295      } 
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-       } 
303296    } 
304297
305298    // 在部署前,检查函数初始状态,如果初始为 CreateFailed,尝试先删除,再重新创建 
@@ -333,6 +326,11 @@ export default class Scf {
333326        namespace, 
334327        description : inputs . publishDescription , 
335328      } ) ; 
329+ 
330+       if  ( inputs . aliasName )  { 
331+         inputs . aliasFunctionVersion  =  FunctionVersion ; 
332+       } 
333+ 
336334      inputs . lastVersion  =  FunctionVersion ; 
337335      outputs . LastVersion  =  FunctionVersion ; 
338336
@@ -344,8 +342,8 @@ export default class Scf {
344342    } 
345343
346344    // 检测配置的别名是否存在,不存在就创建,存在的话就设置流量 
347-     let  needCreateAlias  =  false ; 
348345    if  ( inputs . aliasName )  { 
346+       let  needCreateAlias  =  false ; 
349347      if  ( inputs . aliasName  !==  '$DEFAULT' )  { 
350348        try  { 
351349          const  aliasInfo  =  await  this . alias . get ( { 
@@ -393,6 +391,24 @@ export default class Scf {
393391        const  errorType  =  needCreateAlias  ? 'CREATE_ALIAS_SCF'  : 'UPDATE_ALIAS_SCF' ; 
394392        throw  new  ApiTypeError ( errorType ,  error . message ) ; 
395393      } 
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+       } 
396412    } 
397413
398414    // get default alias 
0 commit comments