cdk-secret-manager-wrapper-layer 2.0.706 → 2.0.707
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/.jsii +2 -2
- package/API.md +0 -86
- package/lib/layer.js +1 -1
- package/package.json +5 -5
package/.jsii
CHANGED
|
@@ -3125,6 +3125,6 @@
|
|
|
3125
3125
|
"symbolId": "src/layer:SecretManagerWrapperLayer"
|
|
3126
3126
|
}
|
|
3127
3127
|
},
|
|
3128
|
-
"version": "2.0.
|
|
3129
|
-
"fingerprint": "
|
|
3128
|
+
"version": "2.0.707",
|
|
3129
|
+
"fingerprint": "1Fp69eus5UWPbfxsYkFRK0fldxbbLXtdrcUiuxQkNtw="
|
|
3130
3130
|
}
|
package/API.md
CHANGED
|
@@ -1,89 +1,3 @@
|
|
|
1
|
-
# `cdk-secret-manager-wrapper-layer`
|
|
2
|
-
that Lambda layer uses a wrapper script to fetch information from Secrets Manager and create environmental variables.
|
|
3
|
-
> idea from [source](https://github.com/aws-samples/aws-lambda-environmental-variables-from-aws-secrets-manager)
|
|
4
|
-
|
|
5
|
-
## Example
|
|
6
|
-
```ts
|
|
7
|
-
import { App, Stack, CfnOutput, Duration } from 'aws-cdk-lib';
|
|
8
|
-
import { Effect, PolicyStatement } from 'aws-cdk-lib/aws-iam';
|
|
9
|
-
import { Function, Runtime, Code, FunctionUrlAuthType } from 'aws-cdk-lib/aws-lambda';
|
|
10
|
-
import { CfnSecret } from 'aws-cdk-lib/aws-secretsmanager';
|
|
11
|
-
import { SecretManagerWrapperLayer } from 'cdk-secret-manager-wrapper-layer';
|
|
12
|
-
const env = {
|
|
13
|
-
region: process.env.CDK_DEFAULT_REGION,
|
|
14
|
-
account: process.env.CDK_DEFAULT_ACCOUNT,
|
|
15
|
-
};
|
|
16
|
-
const app = new App();
|
|
17
|
-
const stack = new Stack(app, 'testing-stack', { env });
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Example create an Secret for testing.
|
|
21
|
-
*/
|
|
22
|
-
const secret = new CfnSecret(stack, 'Mysecret', {
|
|
23
|
-
secretString: JSON.stringify({
|
|
24
|
-
KEY1: 'VALUE1',
|
|
25
|
-
KEY2: 'VALUE2',
|
|
26
|
-
KEY3: 'VALUE3',
|
|
27
|
-
}),
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
const layer = new SecretManagerWrapperLayer(stack, 'SecretManagerWrapperLayer');
|
|
31
|
-
|
|
32
|
-
const lambda = new Function(stack, 'fn', {
|
|
33
|
-
runtime: Runtime.PYTHON_3_9,
|
|
34
|
-
code: Code.fromInline(`
|
|
35
|
-
import os
|
|
36
|
-
def hander(events, contexts):
|
|
37
|
-
env = {}
|
|
38
|
-
env['KEY1'] = os.environ.get('KEY1', 'Not Found')
|
|
39
|
-
env['KEY2'] = os.environ.get('KEY2', 'Not Found')
|
|
40
|
-
env['KEY3'] = os.environ.get('KEY3', 'Not Found')
|
|
41
|
-
return env
|
|
42
|
-
`),
|
|
43
|
-
handler: 'index.hander',
|
|
44
|
-
layers: [layer],
|
|
45
|
-
timeout: Duration.minutes(1),
|
|
46
|
-
/**
|
|
47
|
-
* you need to define this 4 environment various.
|
|
48
|
-
*/
|
|
49
|
-
environment: {
|
|
50
|
-
AWS_LAMBDA_EXEC_WRAPPER: '/opt/get-secrets-layer',
|
|
51
|
-
SECRET_REGION: stack.region,
|
|
52
|
-
SECRET_ARN: secret.ref,
|
|
53
|
-
API_TIMEOUT: '5000',
|
|
54
|
-
},
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Add Permission for lambda get secret value from secret manager.
|
|
59
|
-
*/
|
|
60
|
-
lambda.role!.addToPrincipalPolicy(
|
|
61
|
-
new PolicyStatement({
|
|
62
|
-
effect: Effect.ALLOW,
|
|
63
|
-
actions: ['secretsmanager:GetSecretValue'],
|
|
64
|
-
// Also you can use find from context.
|
|
65
|
-
resources: [secret.ref],
|
|
66
|
-
}),
|
|
67
|
-
);
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* For Testing.
|
|
71
|
-
*/
|
|
72
|
-
const FnUrl = lambda.addFunctionUrl({
|
|
73
|
-
authType: FunctionUrlAuthType.NONE,
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
new CfnOutput(stack, 'FnUrl', {
|
|
77
|
-
value: FnUrl.url,
|
|
78
|
-
});
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## Testing
|
|
82
|
-
```bash
|
|
83
|
-
# ex: curl https://sdfghjklertyuioxcvbnmghj.lambda-url.us-east-1.on.aws/
|
|
84
|
-
curl ${FnUrl}
|
|
85
|
-
{"KEY2":"VALUE2","KEY1":"VALUE1","KEY3":"VALUE3"}
|
|
86
|
-
```
|
|
87
1
|
# API Reference <a name="API Reference" id="api-reference"></a>
|
|
88
2
|
|
|
89
3
|
## Constructs <a name="Constructs" id="Constructs"></a>
|
package/lib/layer.js
CHANGED
|
@@ -29,5 +29,5 @@ class SecretManagerWrapperLayer extends lambda.LayerVersion {
|
|
|
29
29
|
}
|
|
30
30
|
exports.SecretManagerWrapperLayer = SecretManagerWrapperLayer;
|
|
31
31
|
_a = JSII_RTTI_SYMBOL_1;
|
|
32
|
-
SecretManagerWrapperLayer[_a] = { fqn: "cdk-secret-manager-wrapper-layer.SecretManagerWrapperLayer", version: "2.0.
|
|
32
|
+
SecretManagerWrapperLayer[_a] = { fqn: "cdk-secret-manager-wrapper-layer.SecretManagerWrapperLayer", version: "2.0.707" };
|
|
33
33
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsNkNBQWdFO0FBQ2hFLGlEQUFpRDtBQUlqRDs7R0FFRztBQUNILE1BQWEseUJBQTBCLFNBQVEsTUFBTSxDQUFDLFlBQVk7SUFPaEUsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFFdEMsTUFBTSxLQUFLLEdBQUcseUJBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN0RSxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFN0MsTUFBTSxLQUFLLEdBQTZCO1lBQ3RDLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87WUFDcEMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzlELFdBQVcsRUFBRSwrRkFBK0Y7U0FDN0csQ0FBQztRQUVGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRTFCLENBQUM7SUFuQk0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFnQjtRQUN4QyxNQUFNLEtBQUssR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0MsT0FBUSxRQUFzQyxJQUFJLElBQUkseUJBQXlCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7O0FBTkgsOERBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IERvY2tlckltYWdlLCBSZW1vdmFsUG9saWN5LCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5cbi8qKlxuICogQW4gQVdTIFNlY3JldE1hbmFnZXIgV3JhcHBlciBsYXllciB0aGF0IGluY2x1ZGVzIHRoZSBBV1MgQ0xJLCBqcSBldGMuLi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNlY3JldE1hbmFnZXJXcmFwcGVyTGF5ZXIgZXh0ZW5kcyBsYW1iZGEuTGF5ZXJWZXJzaW9uIHtcbiAgcHVibGljIHN0YXRpYyBnZXRPckNyZWF0ZShzY29wZTogQ29uc3RydWN0KTogU2VjcmV0TWFuYWdlcldyYXBwZXJMYXllciB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSk7XG4gICAgY29uc3QgaWQgPSAnRGVub0xheWVyJztcbiAgICBjb25zdCBleGlzdGluZyA9IHN0YWNrLm5vZGUudHJ5RmluZENoaWxkKGlkKTtcbiAgICByZXR1cm4gKGV4aXN0aW5nIGFzIFNlY3JldE1hbmFnZXJXcmFwcGVyTGF5ZXIpIHx8IG5ldyBTZWNyZXRNYW5hZ2VyV3JhcHBlckxheWVyKHN0YWNrLCBpZCk7XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuXG4gICAgY29uc3QgaW1hZ2UgPSBEb2NrZXJJbWFnZS5mcm9tQnVpbGQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2xheWVyJykpO1xuICAgIGltYWdlLmNwKCcvbGF5ZXIuemlwJywgcGF0aC5qb2luKF9fZGlybmFtZSkpO1xuXG4gICAgY29uc3QgcHJvcHM6IGxhbWJkYS5MYXllclZlcnNpb25Qcm9wcyA9IHtcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnbGF5ZXIuemlwJykpLFxuICAgICAgZGVzY3JpcHRpb246ICd0aGlzIGxheWVyIGhhcyB3cmFwcGVyIHNjcmlwdCBoZWxwIHlvdSBzZXR0aW5nIHNlY3JldCBtYW5hZ2VyIGpzb24gc3RyaW5nIGludG8gbGFtYmRhIHJ1bnRpbWUnLFxuICAgIH07XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICB9XG59Il19
|
package/package.json
CHANGED
|
@@ -42,20 +42,20 @@
|
|
|
42
42
|
"@typescript-eslint/eslint-plugin": "^7",
|
|
43
43
|
"@typescript-eslint/parser": "^7",
|
|
44
44
|
"aws-cdk-lib": "2.33.0",
|
|
45
|
+
"commit-and-tag-version": "^12",
|
|
45
46
|
"constructs": "10.0.5",
|
|
46
47
|
"eslint": "^8",
|
|
47
|
-
"eslint-import-resolver-typescript": "^3.6.
|
|
48
|
+
"eslint-import-resolver-typescript": "^3.6.3",
|
|
48
49
|
"eslint-plugin-import": "^2.29.1",
|
|
49
50
|
"jest": "^27",
|
|
50
51
|
"jest-junit": "^15",
|
|
51
52
|
"jsii": "1.x",
|
|
52
53
|
"jsii-diff": "^1.102.0",
|
|
53
|
-
"jsii-docgen": "^
|
|
54
|
+
"jsii-docgen": "^10.5.0",
|
|
54
55
|
"jsii-pacmak": "^1.102.0",
|
|
55
56
|
"jsii-rosetta": "1.x",
|
|
56
57
|
"mock-fs": "5.1.2",
|
|
57
|
-
"projen": "^0.86.
|
|
58
|
-
"standard-version": "^9",
|
|
58
|
+
"projen": "^0.86.4",
|
|
59
59
|
"ts-jest": "^27",
|
|
60
60
|
"typescript": "^4.9"
|
|
61
61
|
},
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"publishConfig": {
|
|
80
80
|
"access": "public"
|
|
81
81
|
},
|
|
82
|
-
"version": "2.0.
|
|
82
|
+
"version": "2.0.707",
|
|
83
83
|
"jest": {
|
|
84
84
|
"coverageProvider": "v8",
|
|
85
85
|
"testMatch": [
|