@liflig/cdk-lambda-config 1.4.19 → 1.5.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/handler/index.js +1 -1
- package/lib/handler.d.ts +9 -1
- package/lib/index.js +19 -54
- package/package.json +4 -3
package/lib/handler.d.ts
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
type OnEventHandler = (event: {
|
|
2
|
+
RequestType: "Create" | "Update" | "Delete";
|
|
3
|
+
PhysicalResourceId?: string;
|
|
4
|
+
ResourceProperties: Record<string, unknown>;
|
|
5
|
+
}) => Promise<{
|
|
6
|
+
PhysicalResourceId?: string;
|
|
7
|
+
Data?: Record<string, unknown>;
|
|
8
|
+
}>;
|
|
2
9
|
export declare const handler: OnEventHandler;
|
|
10
|
+
export {};
|
package/lib/index.js
CHANGED
|
@@ -1,83 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.LambdaConfig = void 0;
|
|
37
|
-
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
38
|
-
const constructs_1 = require("constructs");
|
|
39
|
-
const path = __importStar(require("path"));
|
|
1
|
+
import { aws_iam as iam, aws_lambda as lambda, CustomResource, custom_resources as cr, Duration, Stack, } from "aws-cdk-lib";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import * as path from "path";
|
|
40
4
|
/**
|
|
41
5
|
* Modify a Lambda Function by adding a config.json file using
|
|
42
6
|
* the provided object, and provide a new version for the
|
|
43
7
|
* Lambda Function.
|
|
44
8
|
*/
|
|
45
|
-
class LambdaConfig extends
|
|
9
|
+
export class LambdaConfig extends Construct {
|
|
10
|
+
version;
|
|
46
11
|
constructor(scope, id, props) {
|
|
47
|
-
var _a;
|
|
48
12
|
super(scope, id);
|
|
49
|
-
const updateCodeResource = new
|
|
13
|
+
const updateCodeResource = new CustomResource(this, "Resource", {
|
|
50
14
|
serviceToken: LambdaConfigProvider.getOrCreate(this).serviceToken,
|
|
51
15
|
properties: {
|
|
52
16
|
FunctionArn: props.function.functionArn,
|
|
53
17
|
Config: props.config,
|
|
54
|
-
Nonce:
|
|
18
|
+
Nonce: props.nonce ?? "",
|
|
55
19
|
},
|
|
56
20
|
});
|
|
57
|
-
this.version =
|
|
21
|
+
this.version = lambda.Version.fromVersionArn(this, "Version", updateCodeResource.getAttString("FunctionArn"));
|
|
58
22
|
}
|
|
59
23
|
}
|
|
60
|
-
|
|
61
|
-
class LambdaConfigProvider extends constructs_1.Construct {
|
|
24
|
+
class LambdaConfigProvider extends Construct {
|
|
62
25
|
/**
|
|
63
26
|
* Returns the singleton provider.
|
|
64
27
|
*/
|
|
65
28
|
static getOrCreate(scope) {
|
|
66
|
-
const stack =
|
|
29
|
+
const stack = Stack.of(scope);
|
|
67
30
|
const id = "liflig-infra.lambda-config.provider";
|
|
68
31
|
return (stack.node.tryFindChild(id) ||
|
|
69
32
|
new LambdaConfigProvider(stack, id));
|
|
70
33
|
}
|
|
34
|
+
provider;
|
|
35
|
+
serviceToken;
|
|
71
36
|
constructor(scope, id) {
|
|
72
37
|
super(scope, id);
|
|
73
|
-
this.provider = new
|
|
74
|
-
onEventHandler: new
|
|
75
|
-
code:
|
|
38
|
+
this.provider = new cr.Provider(this, "Provider", {
|
|
39
|
+
onEventHandler: new lambda.Function(this, "UpdateCodeFn", {
|
|
40
|
+
code: lambda.Code.fromAsset(path.join(__dirname, "../dist/handler")),
|
|
76
41
|
handler: "index.handler",
|
|
77
|
-
runtime:
|
|
78
|
-
timeout:
|
|
42
|
+
runtime: lambda.Runtime.NODEJS_18_X,
|
|
43
|
+
timeout: Duration.seconds(10),
|
|
79
44
|
initialPolicy: [
|
|
80
|
-
new
|
|
45
|
+
new iam.PolicyStatement({
|
|
81
46
|
actions: ["lambda:GetFunction", "lambda:UpdateFunctionCode"],
|
|
82
47
|
resources: ["*"],
|
|
83
48
|
}),
|
|
@@ -87,4 +52,4 @@ class LambdaConfigProvider extends constructs_1.Construct {
|
|
|
87
52
|
this.serviceToken = this.provider.serviceToken;
|
|
88
53
|
}
|
|
89
54
|
}
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sSUFBSSxHQUFHLEVBQ2QsVUFBVSxJQUFJLE1BQU0sRUFDcEIsY0FBYyxFQUNkLGdCQUFnQixJQUFJLEVBQUUsRUFDdEIsUUFBUSxFQUNSLEtBQUssR0FDTixNQUFNLGFBQWEsQ0FBQTtBQUNwQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3RDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBK0I1Qjs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFlBQWEsU0FBUSxTQUFTO0lBQ3pCLE9BQU8sQ0FBaUI7SUFFeEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUM5RCxZQUFZLEVBQUUsb0JBQW9CLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVk7WUFDakUsVUFBVSxFQUFFO2dCQUNWLFdBQVcsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVc7Z0JBQ3ZDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDcEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRTthQUN6QjtTQUNGLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQzFDLElBQUksRUFDSixTQUFTLEVBQ1Qsa0JBQWtCLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUMvQyxDQUFBO0lBQ0gsQ0FBQztDQUNGO0FBRUQsTUFBTSxvQkFBcUIsU0FBUSxTQUFTO0lBQzFDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFnQjtRQUN4QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdCLE1BQU0sRUFBRSxHQUFHLHFDQUFxQyxDQUFBO1FBQ2hELE9BQU8sQ0FDSixLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQTBCO1lBQ3JELElBQUksb0JBQW9CLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUNwQyxDQUFBO0lBQ0gsQ0FBQztJQUVnQixRQUFRLENBQWE7SUFDdEIsWUFBWSxDQUFRO0lBRXBDLFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNoRCxjQUFjLEVBQUUsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7Z0JBQ3hELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNwRSxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztnQkFDbkMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUM3QixhQUFhLEVBQUU7b0JBQ2IsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO3dCQUN0QixPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSwyQkFBMkIsQ0FBQzt3QkFDNUQsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO3FCQUNqQixDQUFDO2lCQUNIO2FBQ0YsQ0FBQztTQUNILENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUE7SUFDaEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXdzX2lhbSBhcyBpYW0sXG4gIGF3c19sYW1iZGEgYXMgbGFtYmRhLFxuICBDdXN0b21SZXNvdXJjZSxcbiAgY3VzdG9tX3Jlc291cmNlcyBhcyBjcixcbiAgRHVyYXRpb24sXG4gIFN0YWNrLFxufSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhQ29uZmlnUHJvcHMge1xuICAvKipcbiAgICogVGhlIExhbWJkYSBGdW5jdGlvbiB0byBiZSB1cGRhdGVkLlxuICAgKlxuICAgKiBJZiB0aGlzIHBvaW50cyB0byBhIHNwZWNpZmljIHZlcnNpb24sIHRoZSB2ZXJzaW9uIHF1YWxpZmllclxuICAgKiB3aWxsIGJlIGlnbm9yZWQsIGJ1dCB3aWxsIGJlIHVzZWQgZm9yIGludmFsaWRhdGlvbiBpbnN0ZWFkXG4gICAqIG9mIHByb3ZpZGluZyBhIHNlcGFyYXRlIG5vbmNlIHZhbHVlLlxuICAgKlxuICAgKiBBIExhbWJkYSBGdW5jdGlvbiBjYW4gb25seSByZWNlaXZlIGEgbmV3IHZlcnNpb24gYmFzZWQgb25cbiAgICogdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAgKi9cbiAgZnVuY3Rpb246IGxhbWJkYS5JRnVuY3Rpb25cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIHRvIGJlIGFkZGVkIHRvIHRoZSBMYW1iZGEgRnVuY3Rpb24uIE11c3QgYmVcbiAgICogYSB2YWxpZCBKU09OIHN0cnVjdHVyZSBhbmQgY2Fubm90IGNvbnRhaW4gbnVsbCB2YWx1ZXMgc2luY2UgaXRcbiAgICogaXMgbm90IHN1cHBvcnRlZCBieSBDbG91ZEZvcm1hdGlvbiBjdXN0b20gcmVzb3VyY2UgcHJvcGVydGllcy5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PlxuICAvKipcbiAgICogTm9uY2UgdG8gZm9yY2UgbmV3IHZlcnNpb24uXG4gICAqXG4gICAqIElmIHRoZSBmdW5jdGlvbiBwcm92aWRlZCBkb2VzIG5vdCBwb2ludCB0byBhIHNwZWNpZmljXG4gICAqIHZlcnNpb24sIHNwZWNpZnkgbm9uY2UgdG8gZW5zdXJlIHRoZSBmdW5jdGlvbiBpcyB1cGRhdGVkXG4gICAqIGFmdGVyIGV2ZXJ5IGNoYW5nZS5cbiAgICovXG4gIG5vbmNlPzogc3RyaW5nXG59XG5cbi8qKlxuICogTW9kaWZ5IGEgTGFtYmRhIEZ1bmN0aW9uIGJ5IGFkZGluZyBhIGNvbmZpZy5qc29uIGZpbGUgdXNpbmdcbiAqIHRoZSBwcm92aWRlZCBvYmplY3QsIGFuZCBwcm92aWRlIGEgbmV3IHZlcnNpb24gZm9yIHRoZVxuICogTGFtYmRhIEZ1bmN0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgTGFtYmRhQ29uZmlnIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb246IGxhbWJkYS5JVmVyc2lvblxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBMYW1iZGFDb25maWdQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGNvbnN0IHVwZGF0ZUNvZGVSZXNvdXJjZSA9IG5ldyBDdXN0b21SZXNvdXJjZSh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogTGFtYmRhQ29uZmlnUHJvdmlkZXIuZ2V0T3JDcmVhdGUodGhpcykuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBGdW5jdGlvbkFybjogcHJvcHMuZnVuY3Rpb24uZnVuY3Rpb25Bcm4sXG4gICAgICAgIENvbmZpZzogcHJvcHMuY29uZmlnLFxuICAgICAgICBOb25jZTogcHJvcHMubm9uY2UgPz8gXCJcIixcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIHRoaXMudmVyc2lvbiA9IGxhbWJkYS5WZXJzaW9uLmZyb21WZXJzaW9uQXJuKFxuICAgICAgdGhpcyxcbiAgICAgIFwiVmVyc2lvblwiLFxuICAgICAgdXBkYXRlQ29kZVJlc291cmNlLmdldEF0dFN0cmluZyhcIkZ1bmN0aW9uQXJuXCIpLFxuICAgIClcbiAgfVxufVxuXG5jbGFzcyBMYW1iZGFDb25maWdQcm92aWRlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzaW5nbGV0b24gcHJvdmlkZXIuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldE9yQ3JlYXRlKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHNjb3BlKVxuICAgIGNvbnN0IGlkID0gXCJsaWZsaWctaW5mcmEubGFtYmRhLWNvbmZpZy5wcm92aWRlclwiXG4gICAgcmV0dXJuIChcbiAgICAgIChzdGFjay5ub2RlLnRyeUZpbmRDaGlsZChpZCkgYXMgTGFtYmRhQ29uZmlnUHJvdmlkZXIpIHx8XG4gICAgICBuZXcgTGFtYmRhQ29uZmlnUHJvdmlkZXIoc3RhY2ssIGlkKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvdmlkZXI6IGNyLlByb3ZpZGVyXG4gIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlVG9rZW46IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICB0aGlzLnByb3ZpZGVyID0gbmV3IGNyLlByb3ZpZGVyKHRoaXMsIFwiUHJvdmlkZXJcIiwge1xuICAgICAgb25FdmVudEhhbmRsZXI6IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgXCJVcGRhdGVDb2RlRm5cIiwge1xuICAgICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi9kaXN0L2hhbmRsZXJcIikpLFxuICAgICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMTApLFxuICAgICAgICBpbml0aWFsUG9saWN5OiBbXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW1wibGFtYmRhOkdldEZ1bmN0aW9uXCIsIFwibGFtYmRhOlVwZGF0ZUZ1bmN0aW9uQ29kZVwiXSxcbiAgICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgIH0pXG5cbiAgICB0aGlzLnNlcnZpY2VUb2tlbiA9IHRoaXMucHJvdmlkZXIuc2VydmljZVRva2VuXG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liflig/cdk-lambda-config",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "CDK Construct for adding config.json file to a Lambda Function",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"repository": {
|
|
6
7
|
"type": "git",
|
|
7
8
|
"url": "https://github.com/capralifecycle/cdk-lambda-config"
|
|
8
9
|
},
|
|
9
10
|
"scripts": {
|
|
10
|
-
"build": "rimraf dist && webpack && tsc",
|
|
11
|
+
"build": "rimraf dist && NODE_OPTIONS=--import=tsx webpack && tsc",
|
|
11
12
|
"watch": "tsc -w",
|
|
12
13
|
"test": "jest",
|
|
13
14
|
"lint": "eslint .",
|
|
@@ -56,7 +57,7 @@
|
|
|
56
57
|
"semantic-release": "24.2.0",
|
|
57
58
|
"ts-jest": "29.2.5",
|
|
58
59
|
"ts-loader": "9.5.1",
|
|
59
|
-
"
|
|
60
|
+
"tsx": "4.19.2",
|
|
60
61
|
"typescript": "5.7.2",
|
|
61
62
|
"webpack": "5.96.1",
|
|
62
63
|
"webpack-cli": "5.1.4"
|