1
1
const { scf, cam } = require ( 'tencent-cloud-sdk' ) ;
2
2
const { sleep } = require ( '@ygkit/request' ) ;
3
3
const { TypeError } = require ( '../../utils/error' ) ;
4
+ const { strip } = require ( '../../utils' ) ;
4
5
const TagsUtils = require ( '../tag/index' ) ;
5
6
const ApigwUtils = require ( '../apigw/index' ) ;
6
7
const { formatTrigger, formatFunctionInputs } = require ( './utils' ) ;
@@ -345,6 +346,7 @@ class Scf {
345
346
}
346
347
347
348
async publishVersionAndConfigTraffic ( inputs ) {
349
+ const weight = strip ( 1 - inputs . traffic ) ;
348
350
const publishInputs = {
349
351
Action : 'CreateAlias' ,
350
352
Version : '2018-04-16' ,
@@ -354,7 +356,7 @@ class Scf {
354
356
Name : inputs . aliasName ,
355
357
Namespace : inputs . namespace || 'default' ,
356
358
RoutingConfig : {
357
- AdditionalVersionWeights : [ { Version : inputs . functionVersion , Weight : 1 - inputs . traffic } ] ,
359
+ AdditionalVersionWeights : [ { Version : inputs . functionVersion , Weight : weight } ] ,
358
360
} ,
359
361
Description : inputs . description || 'Published by Serverless Component' ,
360
362
} ;
@@ -371,10 +373,9 @@ class Scf {
371
373
}
372
374
373
375
async updateAliasTraffic ( inputs ) {
376
+ const weight = strip ( 1 - inputs . traffic ) ;
374
377
console . log (
375
- `Config function ${ inputs . functionName } traffic ${ 1 - inputs . traffic } for version ${
376
- inputs . lastVersion
377
- } ...`,
378
+ `Config function ${ inputs . functionName } traffic ${ weight } for version ${ inputs . lastVersion } ...` ,
378
379
) ;
379
380
const publishInputs = {
380
381
Action : 'UpdateAlias' ,
@@ -385,7 +386,7 @@ class Scf {
385
386
Name : inputs . aliasName || '$DEFAULT' ,
386
387
Namespace : inputs . namespace || 'default' ,
387
388
RoutingConfig : {
388
- AdditionalVersionWeights : [ { Version : inputs . lastVersion , Weight : 1 - inputs . traffic } ] ,
389
+ AdditionalVersionWeights : [ { Version : inputs . lastVersion , Weight : weight } ] ,
389
390
} ,
390
391
Description : inputs . description || 'Configured by Serverless Component' ,
391
392
} ;
@@ -399,9 +400,7 @@ class Scf {
399
400
) ;
400
401
}
401
402
console . log (
402
- `Config function ${ inputs . functionName } traffic ${ 1 - inputs . traffic } for version ${
403
- inputs . lastVersion
404
- } success`,
403
+ `Config function ${ inputs . functionName } traffic ${ weight } for version ${ inputs . lastVersion } success` ,
405
404
) ;
406
405
return res . Response ;
407
406
}
@@ -517,7 +516,7 @@ class Scf {
517
516
} ) ;
518
517
outputs . LastVersion = lastVersion ;
519
518
outputs . ConfigTrafficVersion = lastVersion ;
520
- outputs . Traffic = 1 - weightSum ;
519
+ outputs . Traffic = strip ( 1 - weightSum ) ;
521
520
}
522
521
} catch ( e ) {
523
522
// no op
0 commit comments