@relkit/cloud-aws 0.0.5 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/RelkitEventBus/resources.js +19 -11
- package/dist/components/RelkitEventBus/resources.js.map +1 -1
- package/dist/components/RelkitEventBus/types.d.ts +5 -3
- package/dist/components/RelkitEventBus/types.d.ts.map +1 -1
- package/dist/components/RelkitEventBus/validation.d.ts +3 -3
- package/dist/components/RelkitEventBus/validation.d.ts.map +1 -1
- package/dist/components/RelkitEventBus/validation.js +17 -31
- package/dist/components/RelkitEventBus/validation.js.map +1 -1
- package/dist/runtime/events.d.ts +2 -2
- package/dist/runtime/events.d.ts.map +1 -1
- package/dist/runtime/events.js +21 -13
- package/dist/runtime/events.js.map +1 -1
- package/package.json +12 -12
|
@@ -27,14 +27,17 @@ export function createTriggerResources(componentName, busName, source, retryPoli
|
|
|
27
27
|
queueUrl: deadLetterQueue.url,
|
|
28
28
|
redriveAllowPolicy: redriveAllowPolicyJson(queue.arn),
|
|
29
29
|
}, { parent, dependsOn: [queue] });
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
const event = trigger.event;
|
|
31
|
+
const rules = [
|
|
32
|
+
new aws.cloudwatch.EventRule(childResourceName(componentName, `${trigger.id}-${event.pair}`, "rule", 64), {
|
|
33
|
+
name: childResourceName(componentName, `${trigger.id}-${event.pair}`, "rule", 64),
|
|
34
|
+
description: `RelKit event trigger ${trigger.id} routes ${event.pair}`,
|
|
35
|
+
eventBusName: busName,
|
|
36
|
+
eventPattern: eventPattern(source, event),
|
|
37
|
+
state: "ENABLED",
|
|
38
|
+
tags,
|
|
39
|
+
}, { parent }),
|
|
40
|
+
];
|
|
38
41
|
const targets = rules.map((rule, index) => new aws.cloudwatch.EventTarget(childResourceName(componentName, `${trigger.id}-${index}`, "target", 64), {
|
|
39
42
|
arn: queue.arn,
|
|
40
43
|
eventBusName: busName,
|
|
@@ -88,7 +91,11 @@ function workerConfiguration(trigger, queue, deadLetterQueue, busName, consumerR
|
|
|
88
91
|
RELKIT_EVENT_QUEUE_URL: String(queueUrl),
|
|
89
92
|
RELKIT_EVENT_DLQ_ARN: String(deadLetterQueueArn),
|
|
90
93
|
RELKIT_EVENT_BATCH_SIZE: String(trigger.workerBatchSize),
|
|
91
|
-
|
|
94
|
+
...(trigger.concurrency === undefined
|
|
95
|
+
? {}
|
|
96
|
+
: { RELKIT_EVENT_CONCURRENCY: String(trigger.concurrency) }),
|
|
97
|
+
RELKIT_EVENT_ID: trigger.event.id,
|
|
98
|
+
RELKIT_EVENT_VERSION: String(trigger.event.version),
|
|
92
99
|
RELKIT_EVENT_WAIT_TIME_SECONDS: String(trigger.workerWaitTimeSeconds),
|
|
93
100
|
RELKIT_EVENT_VISIBILITY_TIMEOUT_SECONDS: String(trigger.visibilityTimeoutSeconds),
|
|
94
101
|
RELKIT_EVENT_DELIVERY_SEMANTICS: "at-least-once",
|
|
@@ -104,9 +111,10 @@ function workerConfiguration(trigger, queue, deadLetterQueue, busName, consumerR
|
|
|
104
111
|
queueArn: queue.arn,
|
|
105
112
|
queueUrl: queue.url,
|
|
106
113
|
deadLetterQueueArn: deadLetterQueue.arn,
|
|
107
|
-
|
|
114
|
+
eventId: trigger.event.id,
|
|
115
|
+
eventVersion: trigger.event.version,
|
|
108
116
|
batchSize: trigger.workerBatchSize,
|
|
109
|
-
concurrency: trigger.concurrency,
|
|
117
|
+
...(trigger.concurrency === undefined ? {} : { concurrency: trigger.concurrency }),
|
|
110
118
|
waitTimeSeconds: trigger.workerWaitTimeSeconds,
|
|
111
119
|
visibilityTimeoutSeconds: trigger.visibilityTimeoutSeconds,
|
|
112
120
|
deliverySemantics: "at-least-once",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/components/RelkitEventBus/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,YAAY,GAGb,MAAM,iBAAiB,CAAC;AAGzB,MAAM,UAAU,sBAAsB,CACpC,aAAqB,EACrB,OAA6B,EAC7B,MAAc,EACd,WAA6C,EAC7C,OAA+B,EAC/B,IAAwD,EACxD,eAAqC,EACrC,MAAuB;IAEvB,MAAM,SAAS,GAAG,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CACvC,GAAG,SAAS,MAAM,EAClB;QACE,IAAI,EAAE,GAAG,SAAS,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACrC,uBAAuB,EAAE,OAAO,CAAC,0BAA0B;QAC3D,oBAAoB,EAAE,IAAI;QAC1B,IAAI;KACL,EACD,EAAE,MAAM,EAAE,CACX,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAC7B,SAAS,EACT;QACE,IAAI,EAAE,SAAS;QACf,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;QACxD,sBAAsB,EAAE,OAAO,CAAC,qBAAqB;QACrD,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;QAC1D,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC;YAClC,mBAAmB,EAAE,eAAe,CAAC,GAAG;YACxC,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC;QACF,oBAAoB,EAAE,IAAI;QAC1B,IAAI;KACL,EACD,EAAE,MAAM,EAAE,CACX,CAAC;IACF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,kBAAkB,CACvD,GAAG,SAAS,gBAAgB,EAC5B;QACE,QAAQ,EAAE,eAAe,CAAC,GAAG;QAC7B,kBAAkB,EAAE,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC;KACtD,EACD,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,CAC/B,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/components/RelkitEventBus/resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,8 @@ export interface RelkitEventDefinition {
|
|
|
16
16
|
export interface RelkitEventTriggerDefinition {
|
|
17
17
|
readonly id: string;
|
|
18
18
|
readonly targetFunctionId: string;
|
|
19
|
-
readonly
|
|
19
|
+
readonly eventId: string;
|
|
20
|
+
readonly eventVersion: number;
|
|
20
21
|
readonly retry?: RelkitEventRetryPolicy;
|
|
21
22
|
readonly timeoutMs?: number;
|
|
22
23
|
readonly concurrency?: number;
|
|
@@ -48,9 +49,10 @@ export interface RelkitEventWorkerConfiguration {
|
|
|
48
49
|
readonly queueArn: pulumi.Output<string>;
|
|
49
50
|
readonly queueUrl: pulumi.Output<string>;
|
|
50
51
|
readonly deadLetterQueueArn: pulumi.Output<string>;
|
|
51
|
-
readonly
|
|
52
|
+
readonly eventId: string;
|
|
53
|
+
readonly eventVersion: number;
|
|
52
54
|
readonly batchSize: number;
|
|
53
|
-
readonly concurrency
|
|
55
|
+
readonly concurrency?: number;
|
|
54
56
|
readonly waitTimeSeconds: number;
|
|
55
57
|
readonly visibilityTimeoutSeconds: number;
|
|
56
58
|
readonly deliverySemantics: "at-least-once";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/RelkitEventBus/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/RelkitEventBus/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,10 @@ export interface NormalizedEvent {
|
|
|
7
7
|
export interface NormalizedEventTrigger {
|
|
8
8
|
readonly id: string;
|
|
9
9
|
readonly targetFunctionId: string;
|
|
10
|
-
readonly
|
|
10
|
+
readonly event: NormalizedEvent;
|
|
11
11
|
readonly retry: RelkitEventRetryPolicy;
|
|
12
|
-
readonly timeoutMs
|
|
13
|
-
readonly concurrency
|
|
12
|
+
readonly timeoutMs?: number;
|
|
13
|
+
readonly concurrency?: number;
|
|
14
14
|
readonly visibilityTimeoutSeconds: number;
|
|
15
15
|
readonly messageRetentionSeconds: number;
|
|
16
16
|
readonly deadLetterRetentionSeconds: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/components/RelkitEventBus/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EAEvB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/components/RelkitEventBus/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAiBpB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;CAC3C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,GAAG,eAAe,EAAE,CAW3F;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,SAAS,eAAe,EAAE,GACjC,sBAAsB,EAAE,CA4D1B;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,kBAAkB,CAAC,wBAAwB,CAAC,GACnD,gCAAgC,CAMlC;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAKlE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAM3E"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { canonicalJson, normalizeId } from "@relkit/contracts";
|
|
2
|
-
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
3
2
|
const DEFAULT_VISIBILITY_SECONDS = 60;
|
|
4
3
|
const DEFAULT_RETENTION_SECONDS = 345_600;
|
|
5
4
|
const DEFAULT_DLQ_RETENTION_SECONDS = 1_209_600;
|
|
@@ -8,10 +7,10 @@ const DEFAULT_WAIT_SECONDS = 20;
|
|
|
8
7
|
const DEFAULT_EVENTBRIDGE_RETRIES = 3;
|
|
9
8
|
const DEFAULT_EVENTBRIDGE_AGE = 86_400;
|
|
10
9
|
const DEFAULT_TRIGGER_RETRY = {
|
|
11
|
-
maxAttempts:
|
|
12
|
-
initialDelayMs:
|
|
13
|
-
maxDelayMs:
|
|
14
|
-
multiplier:
|
|
10
|
+
maxAttempts: 1,
|
|
11
|
+
initialDelayMs: 0,
|
|
12
|
+
maxDelayMs: 0,
|
|
13
|
+
multiplier: 1,
|
|
15
14
|
jitter: "none",
|
|
16
15
|
};
|
|
17
16
|
export function normalizeEvents(events) {
|
|
@@ -38,23 +37,17 @@ export function normalizeTriggers(args, events) {
|
|
|
38
37
|
if (ids.has(id))
|
|
39
38
|
throw new TypeError(`Duplicate AWS event trigger "${id}".`);
|
|
40
39
|
ids.add(id);
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if (event === undefined)
|
|
45
|
-
throw new TypeError(`AWS event trigger "${id}" references unknown event "${pair}".`);
|
|
46
|
-
return event;
|
|
47
|
-
})
|
|
48
|
-
.sort((left, right) => left.pair.localeCompare(right.pair));
|
|
49
|
-
if (expansion.length === 0)
|
|
50
|
-
throw new TypeError(`AWS event trigger "${id}" must route at least one event version.`);
|
|
40
|
+
const event = known.get(`${trigger.eventId}@${trigger.eventVersion}`);
|
|
41
|
+
if (event === undefined)
|
|
42
|
+
throw new TypeError(`AWS event trigger "${id}" references unknown event "${trigger.eventId}@${trigger.eventVersion}".`);
|
|
51
43
|
const retry = trigger.retry ?? DEFAULT_TRIGGER_RETRY;
|
|
52
44
|
validateRetry(retry, id);
|
|
53
45
|
if (retry.maxAttempts > 1000)
|
|
54
46
|
throw new RangeError(`Event trigger "${id}" retry.maxAttempts cannot exceed 1000.`);
|
|
55
|
-
const timeoutMs = trigger.timeoutMs
|
|
56
|
-
|
|
57
|
-
|
|
47
|
+
const timeoutMs = trigger.timeoutMs;
|
|
48
|
+
if (timeoutMs !== undefined)
|
|
49
|
+
positive(timeoutMs, `Event trigger "${id}" timeoutMs`);
|
|
50
|
+
const requiredVisibility = Math.ceil((timeoutMs ?? 0) / 1000);
|
|
58
51
|
const visibility = trigger.visibilityTimeoutSeconds ?? Math.max(DEFAULT_VISIBILITY_SECONDS, requiredVisibility);
|
|
59
52
|
range(visibility, 0, 43_200, `Event trigger "${id}" visibilityTimeoutSeconds`);
|
|
60
53
|
if (visibility < requiredVisibility)
|
|
@@ -73,15 +66,16 @@ export function normalizeTriggers(args, events) {
|
|
|
73
66
|
range(batchSize, 1, 10, `Event trigger "${id}" workerBatchSize`);
|
|
74
67
|
const waitSeconds = trigger.workerWaitTimeSeconds ?? DEFAULT_WAIT_SECONDS;
|
|
75
68
|
range(waitSeconds, 0, 20, `Event trigger "${id}" workerWaitTimeSeconds`);
|
|
76
|
-
const concurrency = trigger.concurrency
|
|
77
|
-
|
|
69
|
+
const concurrency = trigger.concurrency;
|
|
70
|
+
if (concurrency !== undefined)
|
|
71
|
+
positive(concurrency, `Event trigger "${id}" concurrency`);
|
|
78
72
|
return {
|
|
79
73
|
id,
|
|
80
74
|
targetFunctionId: normalizeId(trigger.targetFunctionId),
|
|
81
|
-
|
|
75
|
+
event,
|
|
82
76
|
retry,
|
|
83
|
-
timeoutMs,
|
|
84
|
-
concurrency,
|
|
77
|
+
...(timeoutMs === undefined ? {} : { timeoutMs }),
|
|
78
|
+
...(concurrency === undefined ? {} : { concurrency }),
|
|
85
79
|
visibilityTimeoutSeconds: visibility,
|
|
86
80
|
messageRetentionSeconds: retention,
|
|
87
81
|
deadLetterRetentionSeconds: dlqRetention,
|
|
@@ -111,14 +105,6 @@ export function eventPattern(source, event) {
|
|
|
111
105
|
source: [source],
|
|
112
106
|
});
|
|
113
107
|
}
|
|
114
|
-
function parsePair(value) {
|
|
115
|
-
const at = value.lastIndexOf("@");
|
|
116
|
-
const versionText = value.slice(at + 1);
|
|
117
|
-
if (at < 1 || !/^[1-9]\d*$/.test(versionText))
|
|
118
|
-
throw new TypeError(`Event expansion "${value}" must use id@version.`);
|
|
119
|
-
const version = Number(versionText);
|
|
120
|
-
return `${normalizeId(value.slice(0, at))}@${version}`;
|
|
121
|
-
}
|
|
122
108
|
function validateRetry(policy, id) {
|
|
123
109
|
positive(policy.maxAttempts, `Event trigger "${id}" retry.maxAttempts`);
|
|
124
110
|
nonNegative(policy.initialDelayMs, `Event trigger "${id}" retry.initialDelayMs`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/components/RelkitEventBus/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAS/D,MAAM,
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/components/RelkitEventBus/validation.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/events.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { EventProvider } from "@relkit/events";
|
|
2
|
-
import type { EventRuntimeProvider } from "@relkit/engine";
|
|
2
|
+
import type { EventInvocationContext, EventRuntimeProvider } from "@relkit/engine";
|
|
3
3
|
import { type AwsCredentials } from "./config.js";
|
|
4
4
|
export interface AwsEventOptions {
|
|
5
5
|
readonly region: string;
|
|
@@ -10,7 +10,7 @@ export interface AwsEventOptions {
|
|
|
10
10
|
readonly fetch?: typeof globalThis.fetch | undefined;
|
|
11
11
|
}
|
|
12
12
|
export interface AwsEventProvider extends EventProvider, EventRuntimeProvider {
|
|
13
|
-
readonly deliver: (triggerId: string, envelope: unknown) => Promise<unknown>;
|
|
13
|
+
readonly deliver: (triggerId: string, envelope: unknown, context?: EventInvocationContext) => Promise<unknown>;
|
|
14
14
|
}
|
|
15
15
|
export declare function createEventBridgeProvider(options: AwsEventOptions): AwsEventProvider;
|
|
16
16
|
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/runtime/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/runtime/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAGd,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EAErB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,aAAa,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa,EAAE,oBAAoB;IAC3E,QAAQ,CAAC,OAAO,EAAE,CAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,sBAAsB,KAC7B,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,gBAAgB,CAkFpF"}
|
package/dist/runtime/events.js
CHANGED
|
@@ -12,16 +12,22 @@ export function createEventBridgeProvider(options) {
|
|
|
12
12
|
throw context.signal.reason ?? new Error("Event operation cancelled");
|
|
13
13
|
if (busName === undefined)
|
|
14
14
|
throw new Error("AWS event busName is not configured");
|
|
15
|
-
const
|
|
15
|
+
const timestamp = new Date().toISOString();
|
|
16
|
+
const envelope = {
|
|
17
|
+
instanceId: `event-${crypto.randomUUID()}`,
|
|
16
18
|
eventId: context.eventId,
|
|
17
19
|
version: context.version,
|
|
18
20
|
payload,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
occurredAt: timestamp,
|
|
22
|
+
publishedAt: timestamp,
|
|
23
|
+
...(request.key === undefined ? {} : { key: request.key }),
|
|
24
|
+
attributes: request.attributes ?? {},
|
|
21
25
|
traceId: context.traceId,
|
|
22
|
-
correlationId: context.correlationId,
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
...(context.correlationId === undefined ? {} : { correlationId: context.correlationId }),
|
|
27
|
+
...(context.causationInvocationId === undefined
|
|
28
|
+
? {}
|
|
29
|
+
: { causationInvocationId: context.causationInvocationId }),
|
|
30
|
+
};
|
|
25
31
|
const response = await awsRequest(endpoint, {
|
|
26
32
|
service: "events",
|
|
27
33
|
region: options.region,
|
|
@@ -29,6 +35,7 @@ export function createEventBridgeProvider(options) {
|
|
|
29
35
|
fetch: options.fetch,
|
|
30
36
|
init: {
|
|
31
37
|
method: "POST",
|
|
38
|
+
signal: context.signal,
|
|
32
39
|
headers: {
|
|
33
40
|
"content-type": "application/x-amz-json-1.1",
|
|
34
41
|
"x-amz-target": "AWSEvents.PutEvents",
|
|
@@ -39,7 +46,7 @@ export function createEventBridgeProvider(options) {
|
|
|
39
46
|
EventBusName: busName,
|
|
40
47
|
Source: source,
|
|
41
48
|
DetailType: `${context.eventId}@${context.version}`,
|
|
42
|
-
Detail:
|
|
49
|
+
Detail: JSON.stringify(envelope),
|
|
43
50
|
},
|
|
44
51
|
],
|
|
45
52
|
}),
|
|
@@ -47,10 +54,11 @@ export function createEventBridgeProvider(options) {
|
|
|
47
54
|
});
|
|
48
55
|
await assertResponse(response, "EventBridge publish");
|
|
49
56
|
const result = (await response.json());
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
57
|
+
const entry = result.Entries?.[0];
|
|
58
|
+
if (result.FailedEntryCount || entry?.ErrorCode || !entry?.EventId) {
|
|
59
|
+
throw new Error(`EventBridge rejected event publication: ${entry?.ErrorCode ?? "invalid response"}`);
|
|
60
|
+
}
|
|
61
|
+
return { ...envelope, accepted: true };
|
|
54
62
|
};
|
|
55
63
|
return Object.freeze({
|
|
56
64
|
publish,
|
|
@@ -58,11 +66,11 @@ export function createEventBridgeProvider(options) {
|
|
|
58
66
|
registerTrigger: async (binding) => {
|
|
59
67
|
triggers.set(binding.id, binding);
|
|
60
68
|
},
|
|
61
|
-
deliver: async (triggerId, envelope) => {
|
|
69
|
+
deliver: async (triggerId, envelope, context = {}) => {
|
|
62
70
|
const binding = triggers.get(triggerId);
|
|
63
71
|
if (binding === undefined)
|
|
64
72
|
throw new Error(`AWS event trigger ${triggerId} is not registered`);
|
|
65
|
-
return binding.invoke(envelope);
|
|
73
|
+
return binding.invoke(envelope, context);
|
|
66
74
|
},
|
|
67
75
|
});
|
|
68
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/runtime/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/runtime/events.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@relkit/cloud-aws",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "Unsupported internal AWS deployment components for RELKIT; use @relkit/cli.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -33,17 +33,17 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@relkit/agents": "0.0
|
|
37
|
-
"@relkit/app": "0.0
|
|
38
|
-
"@relkit/buckets": "0.0
|
|
39
|
-
"@relkit/cache": "0.0
|
|
40
|
-
"@relkit/contracts": "0.0
|
|
41
|
-
"@relkit/engine": "0.0
|
|
42
|
-
"@relkit/events": "0.0
|
|
43
|
-
"@relkit/graph": "0.0
|
|
44
|
-
"@relkit/jobs": "0.0
|
|
45
|
-
"@relkit/observability": "0.0
|
|
46
|
-
"@relkit/providers-standard": "0.0
|
|
36
|
+
"@relkit/agents": "0.1.0",
|
|
37
|
+
"@relkit/app": "0.1.0",
|
|
38
|
+
"@relkit/buckets": "0.1.0",
|
|
39
|
+
"@relkit/cache": "0.1.0",
|
|
40
|
+
"@relkit/contracts": "0.1.0",
|
|
41
|
+
"@relkit/engine": "0.1.0",
|
|
42
|
+
"@relkit/events": "0.1.0",
|
|
43
|
+
"@relkit/graph": "0.1.0",
|
|
44
|
+
"@relkit/jobs": "0.1.0",
|
|
45
|
+
"@relkit/observability": "0.1.0",
|
|
46
|
+
"@relkit/providers-standard": "0.1.0",
|
|
47
47
|
"@pulumi/aws": "7.43.0",
|
|
48
48
|
"@pulumi/awsx": "3.8.0",
|
|
49
49
|
"@pulumi/pulumi": "3.259.0"
|