@@ -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