@ixor/aws-cdk-ixor-lambda 1.0.0-rc-1 → 1.0.0-rc-3
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FunctionProps, IFunction, Function } from 'aws-cdk-lib/aws-lambda';
|
|
1
|
+
import { FunctionProps, IFunction, Function, DockerImageFunctionProps, DockerImageFunction } from 'aws-cdk-lib/aws-lambda';
|
|
2
2
|
import { Schedule } from 'aws-cdk-lib/aws-events';
|
|
3
3
|
import { Construct } from 'constructs';
|
|
4
4
|
interface IxorLambdaFunctionProps extends FunctionProps {
|
|
@@ -7,7 +7,16 @@ interface IxorLambdaFunctionProps extends FunctionProps {
|
|
|
7
7
|
keepWarmLambdaFunction?: IFunction;
|
|
8
8
|
keepWarmCount?: number;
|
|
9
9
|
}
|
|
10
|
+
interface IxorDockerImageFunctionProps extends DockerImageFunctionProps {
|
|
11
|
+
keepWarm?: boolean;
|
|
12
|
+
keepWarmEventSchedule?: Schedule;
|
|
13
|
+
keepWarmLambdaFunction?: IFunction;
|
|
14
|
+
keepWarmCount?: number;
|
|
15
|
+
}
|
|
10
16
|
export declare class IxorFunction extends Function {
|
|
11
17
|
constructor(scope: Construct, id: string, props: IxorLambdaFunctionProps);
|
|
12
18
|
}
|
|
19
|
+
export declare class IxorDockerImageFunction extends DockerImageFunction {
|
|
20
|
+
constructor(scope: Construct, id: string, props: IxorDockerImageFunctionProps);
|
|
21
|
+
}
|
|
13
22
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IxorFunction = void 0;
|
|
3
|
+
exports.IxorDockerImageFunction = exports.IxorFunction = void 0;
|
|
4
4
|
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
5
5
|
const aws_events_1 = require("aws-cdk-lib/aws-events");
|
|
6
6
|
const aws_events_targets_1 = require("aws-cdk-lib/aws-events-targets");
|
|
@@ -27,4 +27,27 @@ class IxorFunction extends aws_lambda_1.Function {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
exports.IxorFunction = IxorFunction;
|
|
30
|
-
|
|
30
|
+
class IxorDockerImageFunction extends aws_lambda_1.DockerImageFunction {
|
|
31
|
+
constructor(scope, id, props) {
|
|
32
|
+
var _a;
|
|
33
|
+
super(scope, id, props);
|
|
34
|
+
const keepWarmCount = (_a = props.keepWarmCount) !== null && _a !== void 0 ? _a : 2;
|
|
35
|
+
const event = {
|
|
36
|
+
"count": keepWarmCount,
|
|
37
|
+
"lambdaArn": this.functionArn
|
|
38
|
+
};
|
|
39
|
+
if (props.keepWarm && props.keepWarmLambdaFunction) {
|
|
40
|
+
if (!props.keepWarmEventSchedule) {
|
|
41
|
+
props.keepWarmEventSchedule = aws_events_1.Schedule.cron({
|
|
42
|
+
minute: '0/10',
|
|
43
|
+
hour: '7-19',
|
|
44
|
+
day: '*W'
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
let rule = new aws_events_1.Rule(scope, `keepWarm-${this.node.id}`, { schedule: props.keepWarmEventSchedule });
|
|
48
|
+
rule.addTarget(new aws_events_targets_1.LambdaFunction(props.keepWarmLambdaFunction, { event: aws_events_1.RuleTargetInput.fromObject(event) }));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.IxorDockerImageFunction = IxorDockerImageFunction;
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWNkay1peG9yLWxhbWJkYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1jZGstaXhvci1sYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQXlIO0FBQ3pILHVEQUF1RTtBQUN2RSx1RUFBNkQ7QUFpQjdELE1BQWEsWUFBYSxTQUFRLHFCQUFRO0lBQ3RDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7O1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLE1BQU0sYUFBYSxTQUFHLEtBQUssQ0FBQyxhQUFhLG1DQUFJLENBQUMsQ0FBQztRQUMvQyxNQUFNLEtBQUssR0FBRztZQUNWLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztTQUNoQyxDQUFBO1FBRUQsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsRUFBRTtZQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFO2dCQUM5QixLQUFLLENBQUMscUJBQXFCLEdBQUcscUJBQVEsQ0FBQyxJQUFJLENBQUM7b0JBQ3hDLE1BQU0sRUFBRSxNQUFNO29CQUNkLElBQUksRUFBRSxNQUFNO29CQUNaLEdBQUcsRUFBRSxJQUFJO2lCQUNaLENBQUMsQ0FBQTthQUNMO1lBQ0QsSUFBSSxJQUFJLEdBQUcsSUFBSSxpQkFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLHFCQUFxQixFQUFDLENBQUMsQ0FBQztZQUNoRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksbUNBQWMsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsRUFBQyxLQUFLLEVBQUUsNEJBQWUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUE7U0FDL0c7SUFDTCxDQUFDO0NBQ0o7QUF0QkQsb0NBc0JDO0FBRUQsTUFBYSx1QkFBd0IsU0FBUSxnQ0FBbUI7SUFDNUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQzs7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsTUFBTSxhQUFhLFNBQUcsS0FBSyxDQUFDLGFBQWEsbUNBQUksQ0FBQyxDQUFDO1FBQy9DLE1BQU0sS0FBSyxHQUFHO1lBQ1YsT0FBTyxFQUFFLGFBQWE7WUFDdEIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQ2hDLENBQUE7UUFFRCxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLHNCQUFzQixFQUFFO1lBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUU7Z0JBQzlCLEtBQUssQ0FBQyxxQkFBcUIsR0FBRyxxQkFBUSxDQUFDLElBQUksQ0FBQztvQkFDeEMsTUFBTSxFQUFFLE1BQU07b0JBQ2QsSUFBSSxFQUFFLE1BQU07b0JBQ1osR0FBRyxFQUFFLElBQUk7aUJBQ1osQ0FBQyxDQUFBO2FBQ0w7WUFDRCxJQUFJLElBQUksR0FBRyxJQUFJLGlCQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMscUJBQXFCLEVBQUMsQ0FBQyxDQUFDO1lBQ2hHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxtQ0FBYyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxFQUFDLEtBQUssRUFBRSw0QkFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQTtTQUMvRztJQUNMLENBQUM7Q0FDSjtBQXRCRCwwREFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Z1bmN0aW9uUHJvcHMsIElGdW5jdGlvbiwgRnVuY3Rpb24sIERvY2tlckltYWdlRnVuY3Rpb25Qcm9wcywgRG9ja2VySW1hZ2VGdW5jdGlvbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQge1NjaGVkdWxlLCBSdWxlLCBSdWxlVGFyZ2V0SW5wdXR9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0IHtMYW1iZGFGdW5jdGlvbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzJ1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gJ2NvbnN0cnVjdHMnXG5cbmludGVyZmFjZSBJeG9yTGFtYmRhRnVuY3Rpb25Qcm9wcyBleHRlbmRzIEZ1bmN0aW9uUHJvcHMge1xuICAgIGtlZXBXYXJtPzogYm9vbGVhbixcbiAgICBrZWVwV2FybUV2ZW50U2NoZWR1bGU/OiBTY2hlZHVsZSxcbiAgICBrZWVwV2FybUxhbWJkYUZ1bmN0aW9uPzogSUZ1bmN0aW9uLFxuICAgIGtlZXBXYXJtQ291bnQ/OiBudW1iZXJcbn1cblxuaW50ZXJmYWNlIEl4b3JEb2NrZXJJbWFnZUZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBEb2NrZXJJbWFnZUZ1bmN0aW9uUHJvcHMge1xuICAgIGtlZXBXYXJtPzogYm9vbGVhbixcbiAgICBrZWVwV2FybUV2ZW50U2NoZWR1bGU/OiBTY2hlZHVsZSxcbiAgICBrZWVwV2FybUxhbWJkYUZ1bmN0aW9uPzogSUZ1bmN0aW9uLFxuICAgIGtlZXBXYXJtQ291bnQ/OiBudW1iZXJcbn1cblxuZXhwb3J0IGNsYXNzIEl4b3JGdW5jdGlvbiBleHRlbmRzIEZ1bmN0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSXhvckxhbWJkYUZ1bmN0aW9uUHJvcHMpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAgICAgY29uc3Qga2VlcFdhcm1Db3VudCA9IHByb3BzLmtlZXBXYXJtQ291bnQgPz8gMjtcbiAgICAgICAgY29uc3QgZXZlbnQgPSB7XG4gICAgICAgICAgICBcImNvdW50XCI6IGtlZXBXYXJtQ291bnQsXG4gICAgICAgICAgICBcImxhbWJkYUFyblwiOiB0aGlzLmZ1bmN0aW9uQXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcHMua2VlcFdhcm0gJiYgcHJvcHMua2VlcFdhcm1MYW1iZGFGdW5jdGlvbikge1xuICAgICAgICAgICAgaWYgKCFwcm9wcy5rZWVwV2FybUV2ZW50U2NoZWR1bGUpIHtcbiAgICAgICAgICAgICAgICBwcm9wcy5rZWVwV2FybUV2ZW50U2NoZWR1bGUgPSBTY2hlZHVsZS5jcm9uKHtcbiAgICAgICAgICAgICAgICAgICAgbWludXRlOiAnMC8xMCcsXG4gICAgICAgICAgICAgICAgICAgIGhvdXI6ICc3LTE5JyxcbiAgICAgICAgICAgICAgICAgICAgZGF5OiAnKlcnXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBydWxlID0gbmV3IFJ1bGUoc2NvcGUsIGBrZWVwV2FybS0ke3RoaXMubm9kZS5pZH1gLCB7c2NoZWR1bGU6IHByb3BzLmtlZXBXYXJtRXZlbnRTY2hlZHVsZX0pO1xuICAgICAgICAgICAgcnVsZS5hZGRUYXJnZXQobmV3IExhbWJkYUZ1bmN0aW9uKHByb3BzLmtlZXBXYXJtTGFtYmRhRnVuY3Rpb24sIHtldmVudDogUnVsZVRhcmdldElucHV0LmZyb21PYmplY3QoZXZlbnQpfSkpXG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJeG9yRG9ja2VySW1hZ2VGdW5jdGlvbiBleHRlbmRzIERvY2tlckltYWdlRnVuY3Rpb24ge1xuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJeG9yRG9ja2VySW1hZ2VGdW5jdGlvblByb3BzKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgICAgIGNvbnN0IGtlZXBXYXJtQ291bnQgPSBwcm9wcy5rZWVwV2FybUNvdW50ID8/IDI7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0ge1xuICAgICAgICAgICAgXCJjb3VudFwiOiBrZWVwV2FybUNvdW50LFxuICAgICAgICAgICAgXCJsYW1iZGFBcm5cIjogdGhpcy5mdW5jdGlvbkFyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3BzLmtlZXBXYXJtICYmIHByb3BzLmtlZXBXYXJtTGFtYmRhRnVuY3Rpb24pIHtcbiAgICAgICAgICAgIGlmICghcHJvcHMua2VlcFdhcm1FdmVudFNjaGVkdWxlKSB7XG4gICAgICAgICAgICAgICAgcHJvcHMua2VlcFdhcm1FdmVudFNjaGVkdWxlID0gU2NoZWR1bGUuY3Jvbih7XG4gICAgICAgICAgICAgICAgICAgIG1pbnV0ZTogJzAvMTAnLFxuICAgICAgICAgICAgICAgICAgICBob3VyOiAnNy0xOScsXG4gICAgICAgICAgICAgICAgICAgIGRheTogJypXJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgcnVsZSA9IG5ldyBSdWxlKHNjb3BlLCBga2VlcFdhcm0tJHt0aGlzLm5vZGUuaWR9YCwge3NjaGVkdWxlOiBwcm9wcy5rZWVwV2FybUV2ZW50U2NoZWR1bGV9KTtcbiAgICAgICAgICAgIHJ1bGUuYWRkVGFyZ2V0KG5ldyBMYW1iZGFGdW5jdGlvbihwcm9wcy5rZWVwV2FybUxhbWJkYUZ1bmN0aW9uLCB7ZXZlbnQ6IFJ1bGVUYXJnZXRJbnB1dC5mcm9tT2JqZWN0KGV2ZW50KX0pKVxuICAgICAgICB9XG4gICAgfVxufSJdfQ==
|