@composurecdk/lambda 0.9.0 → 0.9.2

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.
Files changed (48) hide show
  1. package/README.md +38 -7
  2. package/dist/commonjs/event-sources/dynamodb-event-source.d.ts +53 -9
  3. package/dist/commonjs/event-sources/dynamodb-event-source.d.ts.map +1 -1
  4. package/dist/commonjs/event-sources/dynamodb-event-source.js +50 -36
  5. package/dist/commonjs/event-sources/dynamodb-event-source.js.map +1 -1
  6. package/dist/commonjs/event-sources/event-source-relationship-guards.d.ts +8 -1
  7. package/dist/commonjs/event-sources/event-source-relationship-guards.d.ts.map +1 -1
  8. package/dist/commonjs/event-sources/event-source-relationship-guards.js +53 -2
  9. package/dist/commonjs/event-sources/event-source-relationship-guards.js.map +1 -1
  10. package/dist/commonjs/event-sources/stream-event-source-defaults.d.ts +14 -0
  11. package/dist/commonjs/event-sources/stream-event-source-defaults.d.ts.map +1 -0
  12. package/dist/commonjs/event-sources/stream-event-source-defaults.js +48 -0
  13. package/dist/commonjs/event-sources/stream-event-source-defaults.js.map +1 -0
  14. package/dist/commonjs/function-alarms.d.ts +2 -1
  15. package/dist/commonjs/function-alarms.d.ts.map +1 -1
  16. package/dist/commonjs/function-alarms.js +5 -7
  17. package/dist/commonjs/function-alarms.js.map +1 -1
  18. package/dist/commonjs/function-builder.d.ts +2 -1
  19. package/dist/commonjs/function-builder.d.ts.map +1 -1
  20. package/dist/commonjs/function-builder.js.map +1 -1
  21. package/dist/commonjs/index.d.ts +3 -2
  22. package/dist/commonjs/index.d.ts.map +1 -1
  23. package/dist/commonjs/index.js +4 -1
  24. package/dist/commonjs/index.js.map +1 -1
  25. package/dist/esm/event-sources/dynamodb-event-source.d.ts +53 -9
  26. package/dist/esm/event-sources/dynamodb-event-source.d.ts.map +1 -1
  27. package/dist/esm/event-sources/dynamodb-event-source.js +52 -38
  28. package/dist/esm/event-sources/dynamodb-event-source.js.map +1 -1
  29. package/dist/esm/event-sources/event-source-relationship-guards.d.ts +8 -1
  30. package/dist/esm/event-sources/event-source-relationship-guards.d.ts.map +1 -1
  31. package/dist/esm/event-sources/event-source-relationship-guards.js +52 -1
  32. package/dist/esm/event-sources/event-source-relationship-guards.js.map +1 -1
  33. package/dist/esm/event-sources/stream-event-source-defaults.d.ts +14 -0
  34. package/dist/esm/event-sources/stream-event-source-defaults.d.ts.map +1 -0
  35. package/dist/esm/event-sources/stream-event-source-defaults.js +45 -0
  36. package/dist/esm/event-sources/stream-event-source-defaults.js.map +1 -0
  37. package/dist/esm/function-alarms.d.ts +2 -1
  38. package/dist/esm/function-alarms.d.ts.map +1 -1
  39. package/dist/esm/function-alarms.js +5 -7
  40. package/dist/esm/function-alarms.js.map +1 -1
  41. package/dist/esm/function-builder.d.ts +2 -1
  42. package/dist/esm/function-builder.d.ts.map +1 -1
  43. package/dist/esm/function-builder.js.map +1 -1
  44. package/dist/esm/index.d.ts +3 -2
  45. package/dist/esm/index.d.ts.map +1 -1
  46. package/dist/esm/index.js +2 -1
  47. package/dist/esm/index.js.map +1 -1
  48. package/package.json +9 -3
package/README.md CHANGED
@@ -305,14 +305,44 @@ second `props` argument and exported as `DEFAULT_SQS_EVENT_SOURCE_PROPS`:
305
305
  | `reportBatchItemFailures` | `true` | A single poison message fails only its own record, not the whole batch. CDK defaults this `false`. |
306
306
  | `metricsConfig` | `{ metrics: [EventCount] }` | Enables the per-mapping ESM metrics that back the event-source contextual alarms. |
307
307
 
308
- `dynamoEventSource` applies the same defaults plus `startingPosition`, exported
309
- as `DEFAULT_DYNAMO_EVENT_SOURCE_PROPS`:
308
+ `dynamoEventSource` applies the same defaults plus `startingPosition` and
309
+ `bisectBatchOnError`, exported as `DEFAULT_DYNAMO_EVENT_SOURCE_PROPS` (the shared
310
+ `DEFAULT_STREAM_EVENT_SOURCE_PROPS`, which a future `kinesisEventSource` reuses):
311
+
312
+ | Property | Default | Rationale |
313
+ | ------------------------- | --------------------------- | -------------------------------------------------------------------------------------------------------------------- |
314
+ | `startingPosition` | `LATEST` | A newly-attached consumer reads from the stream tip, not the source's existing change history. |
315
+ | `reportBatchItemFailures` | `true` | A single poison record fails only its own record, not the whole batch. CDK defaults this `false`. |
316
+ | `bisectBatchOnError` | `true` | Split and retry a failing batch, isolating a poison record instead of blocking the shard. CDK defaults this `false`. |
317
+ | `metricsConfig` | `{ metrics: [EventCount] }` | Enables the per-mapping ESM metrics that back the event-source contextual alarms. |
318
+
319
+ `startingPosition` is optional on `dynamoEventSource` (the default supplies it) —
320
+ unlike CDK's `DynamoEventSourceProps`, which requires it.
321
+
322
+ ### Failure handling (dead-letter queue)
323
+
324
+ Bisecting isolates a poison record, but a record that never succeeds is still
325
+ retried until the stream's 24 h retention window expires unless you bound
326
+ `retryAttempts` / `maxRecordAge`. Bounding retries **without** a dead-letter
327
+ destination drops those records silently — so for durable failure handling, set
328
+ `onFailure` too. `dynamoEventSource` widens `onFailure` to accept a queue (or a
329
+ `ref()` to a sibling [`createQueueBuilder("dlq")`](../sqs) result) and wraps it
330
+ in an `SqsDlq` for you, resolving it alongside the table `ref` via `combine`:
310
331
 
311
- | Property | Default | Rationale |
312
- | ------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------- |
313
- | `startingPosition` | `LATEST` | A newly-attached consumer reads from the stream tip, not the table's existing change history. |
314
- | `reportBatchItemFailures` | `true` | A single poison record fails only its own record, not the whole batch. CDK defaults this `false`. |
315
- | `metricsConfig` | `{ metrics: [EventCount] }` | Enables the per-mapping ESM metrics that back the event-source contextual alarms. |
332
+ ```ts
333
+ .addEventSource(
334
+ "orders",
335
+ dynamoEventSource(ref("orders", (r) => r.table), {
336
+ retryAttempts: 3,
337
+ onFailure: ref("dlq", (r) => r.queue),
338
+ }),
339
+ )
340
+ ```
341
+
342
+ If retries or record-age are bounded but no `onFailure` destination is set, a
343
+ suppressible synth-time warning (`STREAM_DLQ_WARNING_ID`) fires. Silence it —
344
+ when dropping is intended — with
345
+ `Annotations.of(scope).acknowledgeWarning(STREAM_DLQ_WARNING_ID)`.
316
346
 
317
347
  ### Cross-component invariants
318
348
 
@@ -331,3 +361,4 @@ today (the queue often arrives as an unresolved `ref()`); they are tracked in
331
361
  - [DualFunctionStack](../examples/src/dual-function-app.ts) — Two Lambda functions with recommended alarms, custom alarms, and SNS alarm actions
332
362
  - [MultiStackApp](../examples/src/multi-stack-app.ts) — Lambda split across stacks via `.withStacks()`, wired with `ref`
333
363
  - [OrderProcessorStack](../examples/src/order-processor-app.ts) — SQS queue wired to a Lambda consumer via `sqsEventSource`
364
+ - [DynamoStreamProcessorStack](../examples/src/dynamo-stream-processor-app.ts) — DynamoDB stream wired to a Lambda consumer via `dynamoEventSource`, with bisect-on-error, bounded retries, and an `onFailure` SQS DLQ
@@ -1,17 +1,45 @@
1
1
  import type { ITable } from "aws-cdk-lib/aws-dynamodb";
2
+ import type { IEventSourceDlq, StartingPosition } from "aws-cdk-lib/aws-lambda";
2
3
  import { type DynamoEventSourceProps } from "aws-cdk-lib/aws-lambda-event-sources";
4
+ import type { IQueue } from "aws-cdk-lib/aws-sqs";
3
5
  import { type Resolvable } from "@composurecdk/core";
4
6
  import { type ComposureEventSource } from "./composure-event-source.js";
5
7
  /**
6
8
  * Secure, AWS-recommended defaults applied to every DynamoDB stream event
7
- * source built with {@link dynamoEventSource}. Each property can be overridden
8
- * via the factory's `props` argument.
9
+ * source built with {@link dynamoEventSource} — the shared
10
+ * {@link DEFAULT_STREAM_EVENT_SOURCE_PROPS} (start at the stream tip, report
11
+ * partial batch failures, bisect a failing batch, emit ESM metrics). Each
12
+ * property can be overridden via the factory's `props` argument.
9
13
  */
10
- export declare const DEFAULT_DYNAMO_EVENT_SOURCE_PROPS: Pick<DynamoEventSourceProps, "startingPosition" | "reportBatchItemFailures" | "metricsConfig">;
14
+ export declare const DEFAULT_DYNAMO_EVENT_SOURCE_PROPS: Pick<import("aws-cdk-lib/aws-lambda-event-sources").StreamEventSourceProps, "reportBatchItemFailures" | "metricsConfig" | "startingPosition" | "bisectBatchOnError">;
15
+ /**
16
+ * Props for {@link dynamoEventSource}. Identical to CDK's
17
+ * {@link DynamoEventSourceProps} except that `onFailure` is widened to a
18
+ * {@link Resolvable}, and additionally accepts a bare {@link IQueue} (or a
19
+ * `ref()` to one) that is wrapped in an {@link SqsDlq} for you — so a
20
+ * dead-letter queue built by a sibling component wires up declaratively:
21
+ * `onFailure: ref("dlq", (r) => r.queue)`.
22
+ */
23
+ export interface DynamoStreamEventSourceProps extends Omit<DynamoEventSourceProps, "onFailure" | "startingPosition"> {
24
+ /**
25
+ * Where to start reading the stream. Optional here — unlike CDK's
26
+ * {@link DynamoEventSourceProps} — because {@link DEFAULT_DYNAMO_EVENT_SOURCE_PROPS}
27
+ * supplies {@link StartingPosition.LATEST} when omitted.
28
+ */
29
+ startingPosition?: StartingPosition;
30
+ /**
31
+ * Destination for records that exhaust `retryAttempts` or exceed
32
+ * `maxRecordAge`. Pass an {@link IQueue} (wrapped in {@link SqsDlq}
33
+ * automatically), a concrete {@link IEventSourceDlq}, or a `ref()` to a
34
+ * sibling that produces either.
35
+ * @see https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-errors
36
+ */
37
+ onFailure?: Resolvable<IQueue | IEventSourceDlq>;
38
+ }
11
39
  /**
12
40
  * Wraps a DynamoDB table's change stream as a Lambda {@link IEventSource},
13
- * deferring resolution when the table is a `ref()` to a sibling component's
14
- * output.
41
+ * deferring resolution when the table (or the `onFailure` DLQ) is a `ref()` to
42
+ * a sibling component's output.
15
43
  *
16
44
  * Follows the `events/targets` factory shape: register the result with
17
45
  * {@link IFunctionBuilder.addEventSource} and the builder resolves the
@@ -21,6 +49,15 @@ export declare const DEFAULT_DYNAMO_EVENT_SOURCE_PROPS: Pick<DynamoEventSourcePr
21
49
  *
22
50
  * Applies {@link DEFAULT_DYNAMO_EVENT_SOURCE_PROPS}; pass `props` to override.
23
51
  *
52
+ * ## Failure handling (AWS Well-Architected)
53
+ *
54
+ * `bisectBatchOnError` is on by default so a single poison record cannot block
55
+ * a shard for the whole 24 h stream-retention window. For durable failure
56
+ * handling, also bound `retryAttempts` / `maxRecordAge` **and** set `onFailure`
57
+ * so exhausted records land in a dead-letter queue instead of being dropped —
58
+ * bounding retries without an `onFailure` destination triggers a suppressible
59
+ * synth-time warning (see {@link STREAM_DLQ_WARNING_ID}).
60
+ *
24
61
  * ## Cross-component invariant (enforced by CDK at bind time)
25
62
  *
26
63
  * The table must have a stream enabled (via the table builder's
@@ -32,7 +69,7 @@ export declare const DEFAULT_DYNAMO_EVENT_SOURCE_PROPS: Pick<DynamoEventSourcePr
32
69
  *
33
70
  * @param table - The source table, concrete or a `ref()` to a sibling.
34
71
  * @param props - Overrides for {@link DEFAULT_DYNAMO_EVENT_SOURCE_PROPS} and
35
- * any other {@link DynamoEventSourceProps}.
72
+ * any other {@link DynamoStreamEventSourceProps}.
36
73
  *
37
74
  * @example
38
75
  * ```ts
@@ -41,15 +78,22 @@ export declare const DEFAULT_DYNAMO_EVENT_SOURCE_PROPS: Pick<DynamoEventSourcePr
41
78
  * orders: createTableV2Builder()
42
79
  * .partitionKey({ name: "pk", type: AttributeType.STRING })
43
80
  * .dynamoStream(StreamViewType.NEW_AND_OLD_IMAGES),
81
+ * dlq: createQueueBuilder("dlq"),
44
82
  * processor: createFunctionBuilder()
45
83
  * .runtime(Runtime.NODEJS_22_X)
46
84
  * .handler("index.handler")
47
85
  * .code(Code.fromAsset("lambda"))
48
- * .addEventSource("orders", dynamoEventSource(ref("orders", (r) => r.table))),
86
+ * .addEventSource(
87
+ * "orders",
88
+ * dynamoEventSource(ref("orders", (r) => r.table), {
89
+ * retryAttempts: 3,
90
+ * onFailure: ref("dlq", (r) => r.queue),
91
+ * }),
92
+ * ),
49
93
  * },
50
- * { orders: [], processor: ["orders"] },
94
+ * { orders: [], dlq: [], processor: ["orders", "dlq"] },
51
95
  * );
52
96
  * ```
53
97
  */
54
- export declare function dynamoEventSource(table: Resolvable<ITable>, props?: DynamoEventSourceProps): ComposureEventSource;
98
+ export declare function dynamoEventSource(table: Resolvable<ITable>, props?: DynamoStreamEventSourceProps): ComposureEventSource;
55
99
  //# sourceMappingURL=dynamodb-event-source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamodb-event-source.d.ts","sourceRoot":"","sources":["../../../src/event-sources/dynamodb-event-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,KAAK,oBAAoB,EAAwB,MAAM,6BAA6B,CAAC;AAE9F;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,EAAE,IAAI,CAClD,sBAAsB,EACtB,kBAAkB,GAAG,yBAAyB,GAAG,eAAe,CA0BjE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EACzB,KAAK,CAAC,EAAE,sBAAsB,GAC7B,oBAAoB,CAMtB"}
1
+ {"version":3,"file":"dynamodb-event-source.d.ts","sourceRoot":"","sources":["../../../src/event-sources/dynamodb-event-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAgB,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAEL,KAAK,sBAAsB,EAE5B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,KAAK,oBAAoB,EAAwB,MAAM,6BAA6B,CAAC;AAG9F;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,sKAAoC,CAAC;AAEnF;;;;;;;GAOG;AACH,MAAM,WAAW,4BAA6B,SAAQ,IAAI,CACxD,sBAAsB,EACtB,WAAW,GAAG,kBAAkB,CACjC;IACC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;CAClD;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EACzB,KAAK,CAAC,EAAE,4BAA4B,GACnC,oBAAoB,CAwBtB"}
@@ -2,43 +2,28 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_DYNAMO_EVENT_SOURCE_PROPS = void 0;
4
4
  exports.dynamoEventSource = dynamoEventSource;
5
- const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
6
5
  const aws_lambda_event_sources_1 = require("aws-cdk-lib/aws-lambda-event-sources");
7
6
  const core_1 = require("@composurecdk/core");
8
7
  const composure_event_source_js_1 = require("./composure-event-source.js");
8
+ const stream_event_source_defaults_js_1 = require("./stream-event-source-defaults.js");
9
9
  /**
10
10
  * Secure, AWS-recommended defaults applied to every DynamoDB stream event
11
- * source built with {@link dynamoEventSource}. Each property can be overridden
12
- * via the factory's `props` argument.
11
+ * source built with {@link dynamoEventSource} — the shared
12
+ * {@link DEFAULT_STREAM_EVENT_SOURCE_PROPS} (start at the stream tip, report
13
+ * partial batch failures, bisect a failing batch, emit ESM metrics). Each
14
+ * property can be overridden via the factory's `props` argument.
13
15
  */
14
- exports.DEFAULT_DYNAMO_EVENT_SOURCE_PROPS = {
15
- /**
16
- * Start reading from the tip of the stream so a newly-attached consumer does
17
- * not replay the table's existing change history on first deploy. Override
18
- * with {@link StartingPosition.TRIM_HORIZON} to reprocess from the oldest
19
- * record in the stream.
20
- * @see https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html
21
- */
22
- startingPosition: aws_lambda_1.StartingPosition.LATEST,
23
- /**
24
- * Report partial batch failures so a single poison record does not fail the
25
- * whole batch and force redelivery of already-processed records. CDK
26
- * defaults this to `false`.
27
- * @see https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-batchfailurereporting
28
- */
29
- reportBatchItemFailures: true,
30
- /**
31
- * Enable the per-mapping `EventCount` ESM metrics (`FailedInvokeEventCount`,
32
- * `DroppedEventCount`, …). They emit only when opted in, and the
33
- * event-source contextual alarms on {@link IFunctionBuilder} depend on them.
34
- * @see https://aws.amazon.com/blogs/compute/introducing-new-event-source-mapping-esm-metrics-for-aws-lambda/
35
- */
36
- metricsConfig: { metrics: [aws_lambda_1.MetricType.EVENT_COUNT] },
37
- };
16
+ exports.DEFAULT_DYNAMO_EVENT_SOURCE_PROPS = stream_event_source_defaults_js_1.DEFAULT_STREAM_EVENT_SOURCE_PROPS;
17
+ /** Wraps a raw queue in an {@link SqsDlq}; passes an existing destination through. */
18
+ function toDlq(destination) {
19
+ // Duck-type the queue rather than `instanceof` — the ESM and CommonJS copies
20
+ // of a package can both load in one process (ADR-0007).
21
+ return "queueArn" in destination ? new aws_lambda_event_sources_1.SqsDlq(destination) : destination;
22
+ }
38
23
  /**
39
24
  * Wraps a DynamoDB table's change stream as a Lambda {@link IEventSource},
40
- * deferring resolution when the table is a `ref()` to a sibling component's
41
- * output.
25
+ * deferring resolution when the table (or the `onFailure` DLQ) is a `ref()` to
26
+ * a sibling component's output.
42
27
  *
43
28
  * Follows the `events/targets` factory shape: register the result with
44
29
  * {@link IFunctionBuilder.addEventSource} and the builder resolves the
@@ -48,6 +33,15 @@ exports.DEFAULT_DYNAMO_EVENT_SOURCE_PROPS = {
48
33
  *
49
34
  * Applies {@link DEFAULT_DYNAMO_EVENT_SOURCE_PROPS}; pass `props` to override.
50
35
  *
36
+ * ## Failure handling (AWS Well-Architected)
37
+ *
38
+ * `bisectBatchOnError` is on by default so a single poison record cannot block
39
+ * a shard for the whole 24 h stream-retention window. For durable failure
40
+ * handling, also bound `retryAttempts` / `maxRecordAge` **and** set `onFailure`
41
+ * so exhausted records land in a dead-letter queue instead of being dropped —
42
+ * bounding retries without an `onFailure` destination triggers a suppressible
43
+ * synth-time warning (see {@link STREAM_DLQ_WARNING_ID}).
44
+ *
51
45
  * ## Cross-component invariant (enforced by CDK at bind time)
52
46
  *
53
47
  * The table must have a stream enabled (via the table builder's
@@ -59,7 +53,7 @@ exports.DEFAULT_DYNAMO_EVENT_SOURCE_PROPS = {
59
53
  *
60
54
  * @param table - The source table, concrete or a `ref()` to a sibling.
61
55
  * @param props - Overrides for {@link DEFAULT_DYNAMO_EVENT_SOURCE_PROPS} and
62
- * any other {@link DynamoEventSourceProps}.
56
+ * any other {@link DynamoStreamEventSourceProps}.
63
57
  *
64
58
  * @example
65
59
  * ```ts
@@ -68,21 +62,41 @@ exports.DEFAULT_DYNAMO_EVENT_SOURCE_PROPS = {
68
62
  * orders: createTableV2Builder()
69
63
  * .partitionKey({ name: "pk", type: AttributeType.STRING })
70
64
  * .dynamoStream(StreamViewType.NEW_AND_OLD_IMAGES),
65
+ * dlq: createQueueBuilder("dlq"),
71
66
  * processor: createFunctionBuilder()
72
67
  * .runtime(Runtime.NODEJS_22_X)
73
68
  * .handler("index.handler")
74
69
  * .code(Code.fromAsset("lambda"))
75
- * .addEventSource("orders", dynamoEventSource(ref("orders", (r) => r.table))),
70
+ * .addEventSource(
71
+ * "orders",
72
+ * dynamoEventSource(ref("orders", (r) => r.table), {
73
+ * retryAttempts: 3,
74
+ * onFailure: ref("dlq", (r) => r.queue),
75
+ * }),
76
+ * ),
76
77
  * },
77
- * { orders: [], processor: ["orders"] },
78
+ * { orders: [], dlq: [], processor: ["orders", "dlq"] },
78
79
  * );
79
80
  * ```
80
81
  */
81
82
  function dynamoEventSource(table, props) {
82
- const merged = { ...exports.DEFAULT_DYNAMO_EVENT_SOURCE_PROPS, ...props };
83
- const source = (0, core_1.isRef)(table)
84
- ? table.map((resolved) => new aws_lambda_event_sources_1.DynamoEventSource(resolved, merged))
85
- : new aws_lambda_event_sources_1.DynamoEventSource(table, merged);
83
+ const { onFailure, ...rest } = props ?? {};
84
+ const merged = {
85
+ ...exports.DEFAULT_DYNAMO_EVENT_SOURCE_PROPS,
86
+ ...rest,
87
+ };
88
+ let source;
89
+ if (onFailure === undefined) {
90
+ // No DLQ: only the table can be lazy — preserve the single-ref fast path.
91
+ source = (0, core_1.isRef)(table)
92
+ ? table.map((resolved) => new aws_lambda_event_sources_1.DynamoEventSource(resolved, merged))
93
+ : new aws_lambda_event_sources_1.DynamoEventSource(table, merged);
94
+ }
95
+ else {
96
+ // Table and DLQ are two siblings feeding one source — combine both refs
97
+ // (either may be concrete) into a single deferred value (ADR-0015).
98
+ source = (0, core_1.combine)({ table, onFailure }, ({ table: resolvedTable, onFailure: resolvedDlq }) => new aws_lambda_event_sources_1.DynamoEventSource(resolvedTable, { ...merged, onFailure: toDlq(resolvedDlq) }));
99
+ }
86
100
  return (0, composure_event_source_js_1.composureEventSource)("dynamodb", source);
87
101
  }
88
102
  //# sourceMappingURL=dynamodb-event-source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamodb-event-source.js","sourceRoot":"","sources":["../../../src/event-sources/dynamodb-event-source.ts"],"names":[],"mappings":";;;AAwFA,8CASC;AA/FD,uDAAsE;AACtE,mFAG8C;AAC9C,6CAA4D;AAC5D,2EAA8F;AAE9F;;;;GAIG;AACU,QAAA,iCAAiC,GAG1C;IACF;;;;;;OAMG;IACH,gBAAgB,EAAE,6BAAgB,CAAC,MAAM;IAEzC;;;;;OAKG;IACH,uBAAuB,EAAE,IAAI;IAE7B;;;;;OAKG;IACH,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,uBAAU,CAAC,WAAW,CAAC,EAAE;CACrD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,SAAgB,iBAAiB,CAC/B,KAAyB,EACzB,KAA8B;IAE9B,MAAM,MAAM,GAA2B,EAAE,GAAG,yCAAiC,EAAE,GAAG,KAAK,EAAE,CAAC;IAC1F,MAAM,MAAM,GAA6B,IAAA,YAAK,EAAC,KAAK,CAAC;QACnD,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,4CAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClE,CAAC,CAAC,IAAI,4CAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,IAAA,gDAAoB,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"dynamodb-event-source.js","sourceRoot":"","sources":["../../../src/event-sources/dynamodb-event-source.ts"],"names":[],"mappings":";;;AAoHA,8CA2BC;AA7ID,mFAI8C;AAE9C,6CAAqE;AACrE,2EAA8F;AAC9F,uFAAsF;AAEtF;;;;;;GAMG;AACU,QAAA,iCAAiC,GAAG,mEAAiC,CAAC;AA+BnF,sFAAsF;AACtF,SAAS,KAAK,CAAC,WAAqC;IAClD,6EAA6E;IAC7E,wDAAwD;IACxD,OAAO,UAAU,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,iCAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,SAAgB,iBAAiB,CAC/B,KAAyB,EACzB,KAAoC;IAEpC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IAC3C,MAAM,MAAM,GAA8C;QACxD,GAAG,yCAAiC;QACpC,GAAG,IAAI;KACR,CAAC;IAEF,IAAI,MAAgC,CAAC;IACrC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,0EAA0E;QAC1E,MAAM,GAAG,IAAA,YAAK,EAAC,KAAK,CAAC;YACnB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,4CAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClE,CAAC,CAAC,IAAI,4CAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,GAAG,IAAA,cAAO,EACd,EAAE,KAAK,EAAE,SAAS,EAAE,EACpB,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,CACnD,IAAI,4CAAiB,CAAC,aAAa,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CACrF,CAAC;IACJ,CAAC;IAED,OAAO,IAAA,gDAAoB,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type Duration } from "aws-cdk-lib";
2
- import type { Function as LambdaFunction, IEventSource } from "aws-cdk-lib/aws-lambda";
2
+ import { type Function as LambdaFunction, type IEventSource } from "aws-cdk-lib/aws-lambda";
3
3
  import type { EventSourceKind } from "./composure-event-source.js";
4
4
  /**
5
5
  * Suppression id for the SQS visibility-timeout relationship guard. Stable and
@@ -8,6 +8,13 @@ import type { EventSourceKind } from "./composure-event-source.js";
8
8
  * so it must not be renamed casually.
9
9
  */
10
10
  export declare const SQS_VISIBILITY_TIMEOUT_WARNING_ID = "@composurecdk/lambda:sqs-visibility-timeout";
11
+ /**
12
+ * Suppression id for the stream dead-letter relationship guard. Stable and part
13
+ * of the public surface — silence the warning with
14
+ * `Annotations.of(scope).acknowledgeWarning(STREAM_DLQ_WARNING_ID)`, so it must
15
+ * not be renamed casually.
16
+ */
17
+ export declare const STREAM_DLQ_WARNING_ID = "@composurecdk/lambda:stream-dlq-missing";
11
18
  /**
12
19
  * Guards a cross-component relationship that spans an attached event source and
13
20
  * its consumer function. `FunctionBuilder` dispatches on {@link EventSourceKind}
@@ -1 +1 @@
1
- {"version":3,"file":"event-source-relationship-guards.d.ts","sourceRoot":"","sources":["../../../src/event-sources/event-source-relationship-guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,QAAQ,EAAS,MAAM,aAAa,CAAC;AACtF,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAIvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAiBnE;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,gDAAgD,CAAC;AAE/F;;;;;;GAMG;AACH,MAAM,MAAM,4BAA4B,GAAG,CACzC,EAAE,EAAE,cAAc,EAClB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,QAAQ,GAAG,SAAS,KAC1B,IAAI,CAAC;AAEV;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,EAAE,MAAM,CACnD,eAAe,EACf,4BAA4B,EAAE,CAK/B,CAAC"}
1
+ {"version":3,"file":"event-source-relationship-guards.d.ts","sourceRoot":"","sources":["../../../src/event-sources/event-source-relationship-guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,QAAQ,EAAS,MAAM,aAAa,CAAC;AACtF,OAAO,EAEL,KAAK,QAAQ,IAAI,cAAc,EAC/B,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAiBnE;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,gDAAgD,CAAC;AAE/F;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,4CAA4C,CAAC;AAE/E;;;;;;GAMG;AACH,MAAM,MAAM,4BAA4B,GAAG,CACzC,EAAE,EAAE,cAAc,EAClB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,QAAQ,GAAG,SAAS,KAC1B,IAAI,CAAC;AAEV;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,EAAE,MAAM,CACnD,eAAe,EACf,4BAA4B,EAAE,CAO/B,CAAC"}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EVENT_SOURCE_RELATIONSHIP_GUARDS = exports.SQS_VISIBILITY_TIMEOUT_WARNING_ID = void 0;
3
+ exports.EVENT_SOURCE_RELATIONSHIP_GUARDS = exports.STREAM_DLQ_WARNING_ID = exports.SQS_VISIBILITY_TIMEOUT_WARNING_ID = void 0;
4
4
  const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
5
6
  const aws_sqs_1 = require("aws-cdk-lib/aws-sqs");
6
7
  /**
7
8
  * AWS guidance: an SQS source queue's `visibilityTimeout` should be at least
@@ -22,6 +23,13 @@ const SQS_DEFAULT_VISIBILITY_TIMEOUT_SECONDS = 30;
22
23
  * so it must not be renamed casually.
23
24
  */
24
25
  exports.SQS_VISIBILITY_TIMEOUT_WARNING_ID = "@composurecdk/lambda:sqs-visibility-timeout";
26
+ /**
27
+ * Suppression id for the stream dead-letter relationship guard. Stable and part
28
+ * of the public surface — silence the warning with
29
+ * `Annotations.of(scope).acknowledgeWarning(STREAM_DLQ_WARNING_ID)`, so it must
30
+ * not be renamed casually.
31
+ */
32
+ exports.STREAM_DLQ_WARNING_ID = "@composurecdk/lambda:stream-dlq-missing";
25
33
  /**
26
34
  * Per-kind relationship guards, keyed by {@link EventSourceKind}. A kind maps to
27
35
  * the (possibly empty) list of relationships to guard for a source of that kind
@@ -32,7 +40,9 @@ exports.SQS_VISIBILITY_TIMEOUT_WARNING_ID = "@composurecdk/lambda:sqs-visibility
32
40
  */
33
41
  exports.EVENT_SOURCE_RELATIONSHIP_GUARDS = {
34
42
  sqs: [guardSqsVisibilityTimeout],
35
- dynamodb: [],
43
+ // `guardStreamFailureDestination` is source-agnostic — it reads only the
44
+ // mapping's own failure config — so a future `kinesis` kind reuses it as-is.
45
+ dynamodb: [guardStreamFailureDestination],
36
46
  unknown: [],
37
47
  };
38
48
  /**
@@ -102,4 +112,45 @@ function readVisibilityTimeoutSeconds(queue) {
102
112
  return SQS_DEFAULT_VISIBILITY_TIMEOUT_SECONDS;
103
113
  return aws_cdk_lib_1.Token.isUnresolved(value) ? undefined : value;
104
114
  }
115
+ /** A resolved, non-negative bound (a finite `maximumRetry*`/`maximumRecordAge*`). `-1` means "infinite". */
116
+ function isFiniteBound(value) {
117
+ return value !== undefined && !aws_cdk_lib_1.Token.isUnresolved(value) && value >= 0;
118
+ }
119
+ /**
120
+ * Warns when a stream event source mapping bounds `maximumRetryAttempts` or
121
+ * `maximumRecordAgeInSeconds` but has no `onFailure` destination — records that
122
+ * exhaust the bound are then dropped silently. Registers a synth-time Aspect
123
+ * that reads the *final* values off the L1 `CfnEventSourceMapping` (the L2
124
+ * source does not re-expose them), regardless of build order (ADR-0011).
125
+ *
126
+ * Source-agnostic: it inspects only the mapping's own failure config, so it
127
+ * applies unchanged to any polling stream kind (DynamoDB now, Kinesis later).
128
+ * SQS mappings never set these stream-only properties, so the guard stays
129
+ * silent even though the Aspect visits them.
130
+ */
131
+ function guardStreamFailureDestination(fn, id) {
132
+ // One Aspect is registered per attached stream source, so with N sources each
133
+ // mapping is visited N times. The warning message is a pure function of the
134
+ // mapping node, so every visit produces a byte-identical message on the same
135
+ // node — which CDK's `Annotations.addMessage` dedupes — leaving one warning
136
+ // per offending mapping without any bookkeeping here.
137
+ aws_cdk_lib_1.Aspects.of(fn).add({
138
+ visit(node) {
139
+ if (!aws_cdk_lib_1.CfnResource.isCfnResource(node) ||
140
+ node.cfnResourceType !== aws_lambda_1.CfnEventSourceMapping.CFN_RESOURCE_TYPE_NAME) {
141
+ return;
142
+ }
143
+ const mapping = node;
144
+ const bounded = isFiniteBound(mapping.maximumRetryAttempts) ||
145
+ isFiniteBound(mapping.maximumRecordAgeInSeconds);
146
+ if (!bounded || mapping.destinationConfig !== undefined)
147
+ return; // unbounded or has a DLQ — stay quiet
148
+ aws_cdk_lib_1.Annotations.of(node).addWarningV2(exports.STREAM_DLQ_WARNING_ID, `FunctionBuilder "${id}": stream event source mapping "${node.node.path}" bounds ` +
149
+ `retries/record-age but has no onFailure destination — records that exhaust the bound ` +
150
+ `are dropped silently. Set onFailure to a dead-letter queue (e.g. the sqs "dlq" queue ` +
151
+ `builder) or acknowledge "${exports.STREAM_DLQ_WARNING_ID}". ` +
152
+ `See https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-errors`);
153
+ },
154
+ });
155
+ }
105
156
  //# sourceMappingURL=event-source-relationship-guards.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-source-relationship-guards.js","sourceRoot":"","sources":["../../../src/event-sources/event-source-relationship-guards.ts"],"names":[],"mappings":";;;AAAA,6CAAsF;AAGtF,iDAA4D;AAI5D;;;;;;GAMG;AACH,MAAM,iCAAiC,GAAG,CAAC,CAAC;AAE5C,6EAA6E;AAC7E,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEzC,0FAA0F;AAC1F,MAAM,sCAAsC,GAAG,EAAE,CAAC;AAElD;;;;;GAKG;AACU,QAAA,iCAAiC,GAAG,6CAA6C,CAAC;AAiB/F;;;;;;;GAOG;AACU,QAAA,gCAAgC,GAGzC;IACF,GAAG,EAAE,CAAC,yBAAyB,CAAC;IAChC,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,KAAmB;IACnC,OAAQ,KAAwB,CAAC,KAAK,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,SAAS,yBAAyB,CAChC,EAAkB,EAClB,EAAU,EACV,GAAW,EACX,KAAmB,EACnB,OAA6B;IAE7B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9B,qBAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACjB,KAAK,CAAC,IAAgB;YACpB,qEAAqE;YACrE,IAAI,IAAI,KAAK,EAAE;gBAAE,OAAO;YAExB,MAAM,MAAM,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,CAAC,gDAAgD;YAElF,MAAM,MAAM,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,MAAM;gBAAE,OAAO,CAAC,uCAAuC;YAE7F,yBAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,CAC7B,yCAAiC,EACjC,oBAAoB,EAAE,wBAAwB,GAAG,wCAAwC;gBACvF,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,MAAM,CAAC,MAAM,CAAC,IAAI;gBACzD,IAAI,MAAM,CAAC,iCAAiC,CAAC,8CAA8C;gBAC3F,mFAAmF,CACtF,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,8BAA8B,CAAC,OAA6B;IACnE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,iCAAiC,GAAG,8BAA8B,CAAC;IAC5E,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,EAAE;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,iCAAiC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,SAAS,4BAA4B,CAAC,KAAa;IACjD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;IACtC,IACE,KAAK,KAAK,SAAS;QACnB,CAAC,yBAAW,CAAC,aAAa,CAAC,KAAK,CAAC;QACjC,KAAK,CAAC,eAAe,KAAK,kBAAQ,CAAC,sBAAsB,EACzD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAI,KAAkB,CAAC,iBAAiB,CAAC;IACpD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,sCAAsC,CAAC;IACvE,OAAO,mBAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"event-source-relationship-guards.js","sourceRoot":"","sources":["../../../src/event-sources/event-source-relationship-guards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { StreamEventSourceProps } from "aws-cdk-lib/aws-lambda-event-sources";
2
+ /**
3
+ * Secure, AWS-recommended defaults shared by every polling **stream** event
4
+ * source — DynamoDB Streams today, Kinesis when that source lands. Each field
5
+ * lives on {@link StreamEventSourceProps} (the common base of
6
+ * `DynamoEventSourceProps` and `KinesisEventSourceProps`), so a per-source
7
+ * factory spreads this constant and adds only its source-specific overrides.
8
+ *
9
+ * Every property is individually overridable through the factory's `props`
10
+ * argument — there is no opt-out flag, so any deviation is intentional and
11
+ * visible (see docs/architecture.md, "Defaults").
12
+ */
13
+ export declare const DEFAULT_STREAM_EVENT_SOURCE_PROPS: Pick<StreamEventSourceProps, "startingPosition" | "reportBatchItemFailures" | "bisectBatchOnError" | "metricsConfig">;
14
+ //# sourceMappingURL=stream-event-source-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-event-source-defaults.d.ts","sourceRoot":"","sources":["../../../src/event-sources/stream-event-source-defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAEnF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iCAAiC,EAAE,IAAI,CAClD,sBAAsB,EACtB,kBAAkB,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,eAAe,CAmCxF,CAAC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_STREAM_EVENT_SOURCE_PROPS = void 0;
4
+ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
5
+ /**
6
+ * Secure, AWS-recommended defaults shared by every polling **stream** event
7
+ * source — DynamoDB Streams today, Kinesis when that source lands. Each field
8
+ * lives on {@link StreamEventSourceProps} (the common base of
9
+ * `DynamoEventSourceProps` and `KinesisEventSourceProps`), so a per-source
10
+ * factory spreads this constant and adds only its source-specific overrides.
11
+ *
12
+ * Every property is individually overridable through the factory's `props`
13
+ * argument — there is no opt-out flag, so any deviation is intentional and
14
+ * visible (see docs/architecture.md, "Defaults").
15
+ */
16
+ exports.DEFAULT_STREAM_EVENT_SOURCE_PROPS = {
17
+ /**
18
+ * Start reading from the tip of the stream so a newly-attached consumer does
19
+ * not replay the source's existing change history on first deploy. Override
20
+ * with {@link StartingPosition.TRIM_HORIZON} to reprocess from the oldest
21
+ * record in the stream.
22
+ * @see https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html
23
+ */
24
+ startingPosition: aws_lambda_1.StartingPosition.LATEST,
25
+ /**
26
+ * Report partial batch failures so a single poison record does not fail the
27
+ * whole batch and force redelivery of already-processed records. CDK
28
+ * defaults this to `false`.
29
+ * @see https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-batchfailurereporting
30
+ */
31
+ reportBatchItemFailures: true,
32
+ /**
33
+ * Split a failing batch in two and retry each half, isolating a single poison
34
+ * record instead of letting it block the whole shard until the stream's
35
+ * retention window expires. CDK defaults this to `false`. Reliability pillar.
36
+ * @see https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-batchfailurereporting
37
+ * @see https://aws.amazon.com/about-aws/whats-new/2019/11/aws-lambda-supports-failure-handling-features-for-kinesis-and-dynamodb-event-sources/
38
+ */
39
+ bisectBatchOnError: true,
40
+ /**
41
+ * Enable the per-mapping `EventCount` ESM metrics (`FailedInvokeEventCount`,
42
+ * `DroppedEventCount`, …). They emit only when opted in, and the
43
+ * event-source contextual alarms on {@link IFunctionBuilder} depend on them.
44
+ * @see https://aws.amazon.com/blogs/compute/introducing-new-event-source-mapping-esm-metrics-for-aws-lambda/
45
+ */
46
+ metricsConfig: { metrics: [aws_lambda_1.MetricType.EVENT_COUNT] },
47
+ };
48
+ //# sourceMappingURL=stream-event-source-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-event-source-defaults.js","sourceRoot":"","sources":["../../../src/event-sources/stream-event-source-defaults.ts"],"names":[],"mappings":";;;AAAA,uDAAsE;AAGtE;;;;;;;;;;GAUG;AACU,QAAA,iCAAiC,GAG1C;IACF;;;;;;OAMG;IACH,gBAAgB,EAAE,6BAAgB,CAAC,MAAM;IAEzC;;;;;OAKG;IACH,uBAAuB,EAAE,IAAI;IAE7B;;;;;;OAMG;IACH,kBAAkB,EAAE,IAAI;IAExB;;;;;OAKG;IACH,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,uBAAU,CAAC,WAAW,CAAC,EAAE;CACrD,CAAC"}
@@ -18,7 +18,8 @@ export declare function resolveFunctionAlarmDefinitions(fn: LambdaFunction, conf
18
18
  * @param scope - CDK construct scope for creating alarm constructs.
19
19
  * @param id - Base identifier for alarm construct ids.
20
20
  * @param fn - The Lambda function to create alarms for.
21
- * @param config - User-provided alarm configuration, or `false` to disable all.
21
+ * @param config - User-provided alarm configuration, or `false` to disable the
22
+ * recommended alarms.
22
23
  * @param props - The merged function props, used for contextual alarm thresholds.
23
24
  * @param eventSources - Event sources attached to the function, used for
24
25
  * per-event-source contextual alarms.
@@ -1 +1 @@
1
- {"version":3,"file":"function-alarms.d.ts","sourceRoot":"","sources":["../../src/function-alarms.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,KAAK,EAKX,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAa,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EACL,sBAAsB,EAIvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,mBAAmB,EAGpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAyDrF;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,8BAA8B,CAAC,EACtE,YAAY,GAAE,mBAAmB,EAAO,GACvC,eAAe,EAAE,CAgKnB;AAiBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,mBAAmB,GAAG,KAAK,GAAG,SAAS,EAC/C,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,8BAA8B,CAAC,EACtE,YAAY,GAAE,mBAAmB,EAAO,EACxC,YAAY,GAAE,sBAAsB,CAAC,cAAc,CAAC,EAAO,GAC1D,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAUvB"}
1
+ {"version":3,"file":"function-alarms.d.ts","sourceRoot":"","sources":["../../src/function-alarms.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,KAAK,EAKX,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAa,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EACL,sBAAsB,EAIvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,mBAAmB,EAGpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAyDrF;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,8BAA8B,CAAC,EACtE,YAAY,GAAE,mBAAmB,EAAO,GACvC,eAAe,EAAE,CAgKnB;AAiBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,mBAAmB,GAAG,KAAK,GAAG,SAAS,EAC/C,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,8BAA8B,CAAC,EACtE,YAAY,GAAE,mBAAmB,EAAO,EACxC,YAAY,GAAE,sBAAsB,CAAC,cAAc,CAAC,EAAO,GAC1D,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAQvB"}
@@ -216,7 +216,8 @@ function eventSourceMetric(eventSourceMappingId, metricName) {
216
216
  * @param scope - CDK construct scope for creating alarm constructs.
217
217
  * @param id - Base identifier for alarm construct ids.
218
218
  * @param fn - The Lambda function to create alarms for.
219
- * @param config - User-provided alarm configuration, or `false` to disable all.
219
+ * @param config - User-provided alarm configuration, or `false` to disable the
220
+ * recommended alarms.
220
221
  * @param props - The merged function props, used for contextual alarm thresholds.
221
222
  * @param eventSources - Event sources attached to the function, used for
222
223
  * per-event-source contextual alarms.
@@ -226,12 +227,9 @@ function eventSourceMetric(eventSourceMappingId, metricName) {
226
227
  * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#Lambda
227
228
  */
228
229
  function createFunctionAlarms(scope, id, fn, config, props, eventSources = [], customAlarms = []) {
229
- if (config === false)
230
- return {};
231
- const enabled = config?.enabled ?? alarm_defaults_js_1.FUNCTION_ALARM_DEFAULTS.enabled;
232
- if (!enabled)
233
- return {};
234
- const recommended = resolveFunctionAlarmDefinitions(fn, config, props, eventSources);
230
+ const recommended = config === false || config?.enabled === false
231
+ ? []
232
+ : resolveFunctionAlarmDefinitions(fn, config, props, eventSources);
235
233
  const custom = customAlarms.map((b) => b.resolve(fn));
236
234
  return (0, cloudwatch_1.createAlarms)(scope, id, [...recommended, ...custom]);
237
235
  }
@@ -1 +1 @@
1
- {"version":3,"file":"function-alarms.js","sourceRoot":"","sources":["../../src/function-alarms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function-alarms.js","sourceRoot":"","sources":["../../src/function-alarms.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,8 @@ export interface FunctionBuilderProps extends Omit<FunctionProps, "role"> {
35
35
  *
36
36
  * By default, the builder creates recommended alarms with sensible
37
37
  * thresholds for every applicable metric. Individual alarms can be
38
- * customized or disabled. Set to `false` to disable all alarms.
38
+ * customized or disabled. Set to `false` to disable the recommended
39
+ * alarms; custom alarms added via `addAlarm()` are still created.
39
40
  *
40
41
  * No alarm actions are configured by default since notification
41
42
  * methods are user-specific. Access alarms from the build result
@@ -1 +1 @@
1
- {"version":3,"file":"function-builder.d.ts","sourceRoot":"","sources":["../../src/function-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function-builder.d.ts","sourceRoot":"","sources":["../../src/function-builder.ts"],"names":[],"mappings":"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"}