Skip to content

Commit 5e977c3

Browse files
dfounderliuyugasun
authored andcommitted
fix: cos-trigger
1 parent cb1c236 commit 5e977c3

File tree

2 files changed

+63
-39
lines changed

2 files changed

+63
-39
lines changed

src/baas/scf/index.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ class Scf {
246246
for (let i = 0; i < releaseEvents.length; i++) {
247247
const thisTrigger = releaseEvents[i]
248248
if (thisTrigger.Type == 'cos') {
249+
console.log(thisTrigger)
249250
releaseEventsObj[
250251
`cos-${thisTrigger.TriggerName}-${thisTrigger.TriggerDesc}`
251252
] = thisTrigger
@@ -320,7 +321,12 @@ class Scf {
320321
}
321322
})
322323
trigger.Enable = inputs.events[i]['cos']['parameters']['enable'] ? 'OPEN' : 'CLOSE'
323-
triggerUnikey = `cos-${trigger.TriggerName}-${trigger.TriggerDesc}`
324+
const tempDest = JSON.stringify({
325+
bucketUrl: trigger.TriggerName,
326+
event: JSON.parse(trigger.TriggerDesc).event,
327+
filter: JSON.parse(trigger.TriggerDesc).filter
328+
})
329+
triggerUnikey = `cos-${trigger.TriggerName}-${tempDest}`
324330
} else if (eventType === 'ckafka') {
325331
const thisTrigger = inputs.events[i]['ckafka']
326332
trigger.Type = 'ckafka'
@@ -354,10 +360,10 @@ class Scf {
354360

355361
// 判断Trigger是否已经存在
356362
let deploy = false
363+
357364
if (releaseEventsObj[triggerUnikey]) {
358365
// 存在Trigger
359-
// 判断Trigger是否一致,如果一致跳过,否则删除重建
360-
366+
// 判断Trigger是否一致,如果一致跳过,否则删除重
361367
const thisReleaseTrigger = releaseEventsObj[triggerUnikey]
362368
for (const item in thisReleaseTrigger) {
363369
if (['TriggerDesc', 'TriggerName', 'Enable', 'CustomArgument'].includes(item)) {
@@ -479,6 +485,9 @@ class Scf {
479485
if (!funcInfo) {
480486
funcInfo = await this.getFunction(inputs.namespace || defaultNamespace, inputs.name)
481487
}
488+
if ((await this.checkStatus(inputs.namespace || defaultNamespace, inputs.name)) == false) {
489+
throw `Function ${inputs.name} upgrade failed. Please check function status.`
490+
}
482491
await Promise.all([this.deployTags(funcInfo, inputs), this.deployTrigger(funcInfo, inputs)])
483492
}
484493

src/baas/scf/index.test.js

Lines changed: 51 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const secret = require('../../../../secret')
2-
const ScfUtils = require('./index').Scf
2+
const ScfUtils = require('./index')
33

44
class ClientTest {
55
async scfTest() {
@@ -8,16 +8,15 @@ class ClientTest {
88
SecretKey: secret.SecretKey
99
})
1010
const scfDemo = {
11-
name: 'myFunction1',
11+
name: 'sync_cos_bucket',
1212
code: {
13-
bucket: 'sls-cloudfunction-ap-guangzhou',
14-
object: 'sls-cloudfunction-default-hello_world-1584670117.zip'
13+
bucket: 'sls-cloudfunction-ap-guangzhou-code',
14+
object: 'mytestFunction-1585915515.zip'
1515
},
1616
handler: 'index.main_handler',
1717
runtime: 'Python3.6',
18-
role: 'SCF_PythonLogsRole',
19-
// eip: true,
20-
region: 'ap-shanghai',
18+
// role: 'SCF_PythonLogsRole',
19+
region: 'ap-guangzhou',
2120
description: 'My Serverless Function',
2221
memorySize: '256',
2322
timeout: '20',
@@ -30,38 +29,54 @@ class ClientTest {
3029
}
3130
},
3231
events: [
33-
{
34-
timer: {
35-
name: 'timer',
36-
parameters: {
37-
cronExpression: '*/6 * * * *',
38-
enable: true,
39-
argument: 'mytest argument'
40-
}
41-
}
42-
},
43-
{
44-
apigw: {
45-
name: 'serverless',
46-
parameters: {
47-
protocols: ['http'],
48-
serviceName: 'serverless',
49-
description: 'the serverless service',
50-
environment: 'release',
51-
endpoints: [{
52-
path: '/users',
53-
method: 'POST'
54-
}]
55-
}
56-
57-
}
58-
}
32+
// {
33+
// timer: {
34+
// name: 'timer',
35+
// parameters: {
36+
// cronExpression: '*/6 * * * *',
37+
// enable: true,
38+
// argument: 'mytest argument'
39+
// }
40+
// }
41+
// },
42+
{
43+
cos: {
44+
name: 'anycodesimage-1256773370.cos.ap-guangzhou.myqcloud.com',
45+
parameters: {
46+
bucket: 'anycodesimage-1256773370.cos.ap-guangzhou.myqcloud.com',
47+
enable: true,
48+
events: 'cos:ObjectCreated:*',
49+
filter:{
50+
prefix: "aaaasad"
51+
}
52+
}
53+
}
54+
}
55+
// {
56+
// apigw: {
57+
// name: 'serverless',
58+
// parameters: {
59+
// protocols: ['http'],
60+
// serviceName: 'serverless',
61+
// description: 'the serverless service',
62+
// environment: 'release',
63+
// endpoints: [{
64+
// path: '/users',
65+
// method: 'POST'
66+
// }]
67+
// }
68+
//
69+
// }
70+
// }
5971
]
6072
}
6173
const result = await scf.deploy(scfDemo)
62-
console.log(JSON.stringify(result))
63-
console.log(await scf.invoke(result.FunctionName))
64-
await scf.remove(result)
74+
try{console.log(JSON.stringify(result))}catch (e) {
75+
console.log(e)
76+
}
77+
// console.log(JSON.stringify(result))
78+
// console.log(await scf.invoke(result.FunctionName))
79+
// await scf.remove(result)
6580
}
6681
}
6782

0 commit comments

Comments
 (0)