Skip to content

Commit dc8e060

Browse files
PauwelsPieterPieter
and
Pieter
authored
Include function message trigger for NATS event (#255)
* Include function message trigger for NATS event * Include documentation * Allow NATS subject validation for system and stream events * Update pnpm-lock.yaml file * Run prettier --------- Co-authored-by: Pieter <[email protected]>
1 parent eb55d68 commit dc8e060

File tree

5 files changed

+8500
-17
lines changed

5 files changed

+8500
-17
lines changed

deploy/lib/deployTriggers.js

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,14 @@ module.exports = {
4343

4444
deletePreviousTriggersForApplication(application) {
4545
// Delete and re-create every triggers...
46-
const deleteTriggersPromises = application.currentTriggers.map((trigger) =>
47-
this.deleteTrigger(trigger.id)
46+
const deleteTriggersPromises = application.currentTriggers.map(
47+
(trigger) => {
48+
if ("schedule" in trigger) {
49+
this.deleteCronTrigger(trigger.id);
50+
} else {
51+
this.deleteMessageTrigger(trigger.id);
52+
}
53+
}
4854
);
4955

5056
return Promise.all(deleteTriggersPromises);
@@ -65,12 +71,20 @@ module.exports = {
6571
return [];
6672
}
6773

68-
const createTriggersPromises = serverlessApp.events.map((event) =>
69-
this.createTrigger(application.id, isFunction, {
70-
schedule: event.schedule.rate,
71-
args: event.schedule.input || {},
72-
})
73-
);
74+
const createTriggersPromises = serverlessApp.events.map((event) => {
75+
if ("schedule" in event) {
76+
this.createCronTrigger(application.id, isFunction, {
77+
schedule: event.schedule.rate,
78+
args: event.schedule.input || {},
79+
});
80+
}
81+
if ("nats" in event) {
82+
this.createMessageTrigger(application.id, {
83+
name: event.nats.name,
84+
scw_nats_config: event.nats.scw_nats_config,
85+
});
86+
}
87+
});
7488

7589
return Promise.all(createTriggersPromises);
7690
},

docs/events.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Events
22

3-
With events, you can link your functions with CRON Schedule (time-based) triggers.
3+
With events, you can link your functions with CRON Schedule (time-based) or NATS (message-based) triggers.
44

55
To do this you can add an `events` key in your function or container as follows:
66

@@ -17,6 +17,13 @@ functions:
1717
input:
1818
key: value
1919
key2: value2
20+
- nats:
21+
name: my-nats-event
22+
scw_nats_config:
23+
subject: ">"
24+
mnq_nats_account_id: "nats account id"
25+
mnq_project_id: "project id"
26+
mnq_region: "fr-par"
2027

2128
# Container
2229
custom:

0 commit comments

Comments
 (0)