Skip to content

Commit c42d6de

Browse files
committed
fix(scf): support ignoreTriggers option
1 parent 0d11cfa commit c42d6de

File tree

4 files changed

+24
-1
lines changed

4 files changed

+24
-1
lines changed

__tests__/scf.sp.test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,14 @@ describe('Scf - special', () => {
9090
expect(outputs.InstallDependency).toBe('TRUE');
9191
expect(outputs.Role).toBe(inputs.role);
9292
});
93+
test('[ignoreTriggers = true] update', async () => {
94+
await sleep(3000);
95+
inputs.ignoreTriggers = true;
96+
outputs = await scf.deploy(inputs);
97+
98+
// expect triggers result
99+
expect(outputs.Triggers).toEqual([]);
100+
});
93101
test('should remove Scf success', async () => {
94102
const res = await scf.remove({
95103
functionName: inputs.name,

__tests__/scf.test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,15 @@ describe('Scf', () => {
508508
expect(outputs.ClsTopicId).toBe('');
509509
});
510510

511+
test('[ignoreTriggers = true] update', async () => {
512+
await sleep(3000);
513+
inputs.ignoreTriggers = true;
514+
outputs = await scf.deploy(inputs);
515+
516+
// expect triggers result
517+
expect(outputs.Triggers).toEqual([]);
518+
});
519+
511520
test('remove', async () => {
512521
const res = await scf.remove({
513522
functionName: inputs.name,

src/modules/scf/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ export default class Scf {
231231
async deploy(inputs: ScfDeployInputs): Promise<ScfDeployOutputs> {
232232
const namespace = inputs.namespace ?? CONFIGS.defaultNamespace;
233233
const functionName = inputs.name;
234+
const { ignoreTriggers = false } = inputs;
234235

235236
// 在部署前,检查函数初始状态,如果初始为 CreateFailed,尝试先删除,再重新创建
236237
let funcInfo = await this.scf.getInitialStatus({ namespace, functionName });
@@ -327,8 +328,10 @@ export default class Scf {
327328
}
328329

329330
// create/update/delete triggers
330-
if (inputs.events) {
331+
if (inputs.events && !ignoreTriggers) {
331332
outputs.Triggers = await this.deployTrigger(funcInfo!, inputs);
333+
} else {
334+
outputs.Triggers = [];
332335
}
333336

334337
console.log(`Deploy function ${functionName} success.`);

src/modules/scf/interface.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,9 @@ export interface ScfDeployInputs extends ScfCreateFunctionInputs {
179179

180180
// FIXME: apigw event type
181181
events?: OriginTriggerType[];
182+
183+
// 是否忽略触发器操作流程
184+
ignoreTriggers?: boolean;
182185
}
183186

184187
export interface ScfDeployOutputs {

0 commit comments

Comments
 (0)