@liflig/cdk 3.11.1 → 3.12.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/lib/alarms/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export { DatabaseAlarms } from "./database-alarms";
|
|
2
|
+
export { LambdaAlarms } from "./lambda-alarms";
|
|
2
3
|
export { ServiceAlarms } from "./service-alarms";
|
|
3
4
|
export { SlackAlarm } from "./slack-alarm";
|
|
4
5
|
export type { DatabaseAlarmsProps } from "./database-alarms";
|
|
6
|
+
export type { LambdaAlarmsProps } from "./lambda-alarms";
|
|
5
7
|
export type { ServiceAlarmsProps } from "./service-alarms";
|
|
6
8
|
export type { SlackAlarmProps } from "./slack-alarm";
|
package/lib/alarms/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { DatabaseAlarms } from "./database-alarms";
|
|
2
|
+
export { LambdaAlarms } from "./lambda-alarms";
|
|
2
3
|
export { ServiceAlarms } from "./service-alarms";
|
|
3
4
|
export { SlackAlarm } from "./slack-alarm";
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEYXRhYmFzZUFsYXJtcyB9IGZyb20gXCIuL2RhdGFiYXNlLWFsYXJtc1wiXG5leHBvcnQgeyBMYW1iZGFBbGFybXMgfSBmcm9tIFwiLi9sYW1iZGEtYWxhcm1zXCJcbmV4cG9ydCB7IFNlcnZpY2VBbGFybXMgfSBmcm9tIFwiLi9zZXJ2aWNlLWFsYXJtc1wiXG5leHBvcnQgeyBTbGFja0FsYXJtIH0gZnJvbSBcIi4vc2xhY2stYWxhcm1cIlxuZXhwb3J0IHR5cGUgeyBEYXRhYmFzZUFsYXJtc1Byb3BzIH0gZnJvbSBcIi4vZGF0YWJhc2UtYWxhcm1zXCJcbmV4cG9ydCB0eXBlIHsgTGFtYmRhQWxhcm1zUHJvcHMgfSBmcm9tIFwiLi9sYW1iZGEtYWxhcm1zXCJcbmV4cG9ydCB0eXBlIHsgU2VydmljZUFsYXJtc1Byb3BzIH0gZnJvbSBcIi4vc2VydmljZS1hbGFybXNcIlxuZXhwb3J0IHR5cGUgeyBTbGFja0FsYXJtUHJvcHMgfSBmcm9tIFwiLi9zbGFjay1hbGFybVwiXG4iXX0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as constructs from "constructs";
|
|
2
|
+
import * as lambda from "aws-cdk-lib/aws-lambda";
|
|
3
|
+
import * as cloudwatch from "aws-cdk-lib/aws-cloudwatch";
|
|
4
|
+
export interface LambdaAlarmsProps {
|
|
5
|
+
/**
|
|
6
|
+
* The default action to use for CloudWatch alarm state changes.
|
|
7
|
+
*/
|
|
8
|
+
action: cloudwatch.IAlarmAction;
|
|
9
|
+
/**
|
|
10
|
+
* The Lambda to add alarms to.
|
|
11
|
+
*/
|
|
12
|
+
lambdaFunction: lambda.IFunction;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Alarms for Lambda functions.
|
|
16
|
+
*
|
|
17
|
+
* By itself, no alarms are created. Use the methods available
|
|
18
|
+
* to add alarms.
|
|
19
|
+
*
|
|
20
|
+
* Create multiple instances of {@link LambdaAlarms} with different `action`
|
|
21
|
+
* if you need an alarm to do multiple things.
|
|
22
|
+
*/
|
|
23
|
+
export declare class LambdaAlarms extends constructs.Construct {
|
|
24
|
+
private readonly action;
|
|
25
|
+
private readonly lambdaFunction;
|
|
26
|
+
constructor(scope: constructs.Construct, id: string, props: LambdaAlarmsProps);
|
|
27
|
+
/**
|
|
28
|
+
* Sets up a CloudWatch Alarm that triggers if the Lambda fails invocations.
|
|
29
|
+
* This usually happens from uncaught exceptions in the lambda.
|
|
30
|
+
*/
|
|
31
|
+
addInvocationErrorAlarm(
|
|
32
|
+
/**
|
|
33
|
+
* Configuration for an alarm.
|
|
34
|
+
*/
|
|
35
|
+
props?: {
|
|
36
|
+
/**
|
|
37
|
+
* Add extra information to the alarm description, like Runbook URL or steps to triage.
|
|
38
|
+
*/
|
|
39
|
+
appendToAlarmDescription?: string;
|
|
40
|
+
}): void;
|
|
41
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as constructs from "constructs";
|
|
2
|
+
import * as cdk from "aws-cdk-lib";
|
|
3
|
+
import * as cloudwatch from "aws-cdk-lib/aws-cloudwatch";
|
|
4
|
+
/**
|
|
5
|
+
* Alarms for Lambda functions.
|
|
6
|
+
*
|
|
7
|
+
* By itself, no alarms are created. Use the methods available
|
|
8
|
+
* to add alarms.
|
|
9
|
+
*
|
|
10
|
+
* Create multiple instances of {@link LambdaAlarms} with different `action`
|
|
11
|
+
* if you need an alarm to do multiple things.
|
|
12
|
+
*/
|
|
13
|
+
export class LambdaAlarms extends constructs.Construct {
|
|
14
|
+
action;
|
|
15
|
+
lambdaFunction;
|
|
16
|
+
constructor(scope, id, props) {
|
|
17
|
+
super(scope, id);
|
|
18
|
+
this.action = props.action;
|
|
19
|
+
this.lambdaFunction = props.lambdaFunction;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Sets up a CloudWatch Alarm that triggers if the Lambda fails invocations.
|
|
23
|
+
* This usually happens from uncaught exceptions in the lambda.
|
|
24
|
+
*/
|
|
25
|
+
addInvocationErrorAlarm(
|
|
26
|
+
/**
|
|
27
|
+
* Configuration for an alarm.
|
|
28
|
+
*/
|
|
29
|
+
props) {
|
|
30
|
+
const alarm = new cloudwatch.Metric({
|
|
31
|
+
metricName: "Errors",
|
|
32
|
+
namespace: "AWS/Lambda",
|
|
33
|
+
statistic: "Sum",
|
|
34
|
+
period: cdk.Duration.seconds(60),
|
|
35
|
+
dimensionsMap: {
|
|
36
|
+
FunctionName: this.lambdaFunction.functionName,
|
|
37
|
+
},
|
|
38
|
+
}).createAlarm(this, "FailedInvocationAlarm", {
|
|
39
|
+
alarmDescription: `Invocation for '${this.lambdaFunction.functionName}' failed. ${props?.appendToAlarmDescription ?? ""}`,
|
|
40
|
+
comparisonOperator: cloudwatch.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD,
|
|
41
|
+
evaluationPeriods: 1,
|
|
42
|
+
threshold: 1,
|
|
43
|
+
treatMissingData: cloudwatch.TreatMissingData.IGNORE,
|
|
44
|
+
});
|
|
45
|
+
alarm.addAlarmAction(this.action);
|
|
46
|
+
alarm.addOkAction(this.action);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWFsYXJtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbGFybXMvbGFtYmRhLWFsYXJtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLEtBQUssR0FBRyxNQUFNLGFBQWEsQ0FBQTtBQUVsQyxPQUFPLEtBQUssVUFBVSxNQUFNLDRCQUE0QixDQUFBO0FBYXhEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLFlBQWEsU0FBUSxVQUFVLENBQUMsU0FBUztJQUNuQyxNQUFNLENBQXlCO0lBQy9CLGNBQWMsQ0FBa0I7SUFFakQsWUFDRSxLQUEyQixFQUMzQixFQUFVLEVBQ1YsS0FBd0I7UUFFeEIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUE7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFBO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCx1QkFBdUI7SUFDckI7O09BRUc7SUFDSCxLQUtDO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQ2xDLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLE1BQU0sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDaEMsYUFBYSxFQUFFO2dCQUNiLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVk7YUFDL0M7U0FDRixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUM1QyxnQkFBZ0IsRUFBRSxtQkFBbUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLGFBQWEsS0FBSyxFQUFFLHdCQUF3QixJQUFJLEVBQUUsRUFBRTtZQUN6SCxrQkFBa0IsRUFDaEIsVUFBVSxDQUFDLGtCQUFrQixDQUFDLGtDQUFrQztZQUNsRSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BCLFNBQVMsRUFBRSxDQUFDO1lBQ1osZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU07U0FDckQsQ0FBQyxDQUFBO1FBRUYsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDakMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDaEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiXG5pbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhQWxhcm1zUHJvcHMge1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgYWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAvKipcbiAgICogVGhlIExhbWJkYSB0byBhZGQgYWxhcm1zIHRvLlxuICAgKi9cbiAgbGFtYmRhRnVuY3Rpb246IGxhbWJkYS5JRnVuY3Rpb25cbn1cblxuLyoqXG4gKiBBbGFybXMgZm9yIExhbWJkYSBmdW5jdGlvbnMuXG4gKlxuICogQnkgaXRzZWxmLCBubyBhbGFybXMgYXJlIGNyZWF0ZWQuIFVzZSB0aGUgbWV0aG9kcyBhdmFpbGFibGVcbiAqIHRvIGFkZCBhbGFybXMuXG4gKlxuICogQ3JlYXRlIG11bHRpcGxlIGluc3RhbmNlcyBvZiB7QGxpbmsgTGFtYmRhQWxhcm1zfSB3aXRoIGRpZmZlcmVudCBgYWN0aW9uYFxuICogaWYgeW91IG5lZWQgYW4gYWxhcm0gdG8gZG8gbXVsdGlwbGUgdGhpbmdzLlxuICovXG5leHBvcnQgY2xhc3MgTGFtYmRhQWxhcm1zIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgcHJpdmF0ZSByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLklGdW5jdGlvblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBMYW1iZGFBbGFybXNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgdGhpcy5hY3Rpb24gPSBwcm9wcy5hY3Rpb25cbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gcHJvcHMubGFtYmRhRnVuY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIGEgQ2xvdWRXYXRjaCBBbGFybSB0aGF0IHRyaWdnZXJzIGlmIHRoZSBMYW1iZGEgZmFpbHMgaW52b2NhdGlvbnMuXG4gICAqIFRoaXMgdXN1YWxseSBoYXBwZW5zIGZyb20gdW5jYXVnaHQgZXhjZXB0aW9ucyBpbiB0aGUgbGFtYmRhLlxuICAgKi9cbiAgYWRkSW52b2NhdGlvbkVycm9yQWxhcm0oXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgYW4gYWxhcm0uXG4gICAgICovXG4gICAgcHJvcHM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIEFkZCBleHRyYSBpbmZvcm1hdGlvbiB0byB0aGUgYWxhcm0gZGVzY3JpcHRpb24sIGxpa2UgUnVuYm9vayBVUkwgb3Igc3RlcHMgdG8gdHJpYWdlLlxuICAgICAgICovXG4gICAgICBhcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICB9LFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBhbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIkVycm9yc1wiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9MYW1iZGFcIixcbiAgICAgIHN0YXRpc3RpYzogXCJTdW1cIixcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBGdW5jdGlvbk5hbWU6IHRoaXMubGFtYmRhRnVuY3Rpb24uZnVuY3Rpb25OYW1lLFxuICAgICAgfSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkZhaWxlZEludm9jYXRpb25BbGFybVwiLCB7XG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgSW52b2NhdGlvbiBmb3IgJyR7dGhpcy5sYW1iZGFGdW5jdGlvbi5mdW5jdGlvbk5hbWV9JyBmYWlsZWQuICR7cHJvcHM/LmFwcGVuZFRvQWxhcm1EZXNjcmlwdGlvbiA/PyBcIlwifWAsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6XG4gICAgICAgIGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgfSlcblxuICAgIGFsYXJtLmFkZEFsYXJtQWN0aW9uKHRoaXMuYWN0aW9uKVxuICAgIGFsYXJtLmFkZE9rQWN0aW9uKHRoaXMuYWN0aW9uKVxuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liflig/cdk",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.12.0",
|
|
4
4
|
"description": "CDK library for Liflig",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -46,30 +46,30 @@
|
|
|
46
46
|
"@aws-sdk/client-codebuild": "3.848.0",
|
|
47
47
|
"@aws-sdk/client-codepipeline": "3.848.0",
|
|
48
48
|
"@aws-sdk/client-ecs": "3.848.0",
|
|
49
|
-
"@aws-sdk/client-s3": "3.
|
|
49
|
+
"@aws-sdk/client-s3": "3.850.0",
|
|
50
50
|
"@aws-sdk/client-secrets-manager": "3.848.0",
|
|
51
51
|
"@aws-sdk/client-ses": "3.848.0",
|
|
52
52
|
"@aws-sdk/client-sesv2": "3.849.0",
|
|
53
53
|
"@aws-sdk/client-sfn": "3.848.0",
|
|
54
|
-
"@aws-sdk/lib-storage": "3.
|
|
54
|
+
"@aws-sdk/lib-storage": "3.850.0",
|
|
55
55
|
"@commitlint/cli": "19.8.1",
|
|
56
56
|
"@commitlint/config-conventional": "19.8.1",
|
|
57
57
|
"@eslint/eslintrc": "3.3.1",
|
|
58
58
|
"@eslint/js": "9.31.0",
|
|
59
59
|
"@types/aws-lambda": "8.10.152",
|
|
60
60
|
"@types/jest": "30.0.0",
|
|
61
|
-
"@types/node": "24.0
|
|
62
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
63
|
-
"@typescript-eslint/parser": "8.
|
|
64
|
-
"aws-cdk": "2.
|
|
65
|
-
"aws-cdk-lib": "2.
|
|
61
|
+
"@types/node": "24.1.0",
|
|
62
|
+
"@typescript-eslint/eslint-plugin": "8.38.0",
|
|
63
|
+
"@typescript-eslint/parser": "8.38.0",
|
|
64
|
+
"aws-cdk": "2.1022.0",
|
|
65
|
+
"aws-cdk-lib": "2.207.0",
|
|
66
66
|
"constructs": "10.4.2",
|
|
67
67
|
"esbuild": "0.25.8",
|
|
68
68
|
"eslint": "9.31.0",
|
|
69
69
|
"eslint-config-prettier": "10.1.8",
|
|
70
70
|
"eslint-plugin-prettier": "5.5.3",
|
|
71
71
|
"husky": "9.1.7",
|
|
72
|
-
"jest": "30.0.
|
|
72
|
+
"jest": "30.0.5",
|
|
73
73
|
"jest-cdk-snapshot": "2.3.6",
|
|
74
74
|
"prettier": "3.6.2",
|
|
75
75
|
"semantic-release": "24.2.7",
|