@aws-cdk/aws-lambda-python-alpha 2.2.0-alpha.0 → 2.6.0-alpha.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/.jsii +184 -52
- package/.jsii.tabl.json +375 -79
- package/.warnings.jsii.js +17 -11
- package/LICENSE +1 -1
- package/NOTICE +1 -1
- package/README.md +103 -23
- package/lib/Dockerfile +7 -2
- package/lib/bundling.d.ts +15 -53
- package/lib/bundling.js +46 -60
- package/lib/function.d.ts +20 -50
- package/lib/function.js +14 -20
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/layer.d.ts +12 -1
- package/lib/layer.js +4 -3
- package/lib/packaging.d.ts +40 -0
- package/lib/packaging.js +61 -0
- package/lib/types.d.ts +79 -0
- package/lib/types.js +3 -0
- package/package.json +6 -6
- package/rosetta/default.ts-fixture +1 -1
- package/lib/Dockerfile.dependencies +0 -22
package/lib/function.js
CHANGED
|
@@ -6,52 +6,46 @@ const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
|
6
6
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
7
7
|
const fs = require("fs");
|
|
8
8
|
const path = require("path");
|
|
9
|
-
const
|
|
9
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
10
10
|
const bundling_1 = require("./bundling");
|
|
11
11
|
/**
|
|
12
12
|
* (experimental) A Python Lambda function.
|
|
13
13
|
*
|
|
14
14
|
* @experimental
|
|
15
15
|
*/
|
|
16
|
-
class PythonFunction extends
|
|
16
|
+
class PythonFunction extends aws_lambda_1.Function {
|
|
17
17
|
/**
|
|
18
18
|
* @experimental
|
|
19
19
|
*/
|
|
20
20
|
constructor(scope, id, props) {
|
|
21
|
-
var _b, _c, _d, _e;
|
|
22
21
|
jsiiDeprecationWarnings._aws_cdk_aws_lambda_python_alpha_PythonFunctionProps(props);
|
|
23
|
-
|
|
24
|
-
throw new Error('Only `PYTHON` runtimes are supported.');
|
|
25
|
-
}
|
|
22
|
+
const { index = 'index.py', handler = 'handler', runtime } = props;
|
|
26
23
|
if (props.index && !/\.py$/.test(props.index)) {
|
|
27
24
|
throw new Error('Only Python (.py) index files are supported.');
|
|
28
25
|
}
|
|
29
|
-
// Entry
|
|
26
|
+
// Entry
|
|
30
27
|
const entry = path.resolve(props.entry);
|
|
31
|
-
const index = (_b = props.index) !== null && _b !== void 0 ? _b : 'index.py';
|
|
32
28
|
const resolvedIndex = path.resolve(entry, index);
|
|
33
29
|
if (!fs.existsSync(resolvedIndex)) {
|
|
34
30
|
throw new Error(`Cannot find index file at ${resolvedIndex}`);
|
|
35
31
|
}
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
32
|
+
const resolvedHandler = `${index.slice(0, -3)}.${handler}`.replace('/', '.');
|
|
33
|
+
if (props.runtime && props.runtime.family !== aws_lambda_1.RuntimeFamily.PYTHON) {
|
|
34
|
+
throw new Error('Only `PYTHON` runtimes are supported.');
|
|
35
|
+
}
|
|
39
36
|
super(scope, id, {
|
|
40
37
|
...props,
|
|
41
38
|
runtime,
|
|
42
|
-
code: bundling_1.bundle({
|
|
43
|
-
runtime,
|
|
44
|
-
architecture,
|
|
39
|
+
code: bundling_1.Bundling.bundle({
|
|
45
40
|
entry,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
assetHash: props.assetHash,
|
|
41
|
+
runtime,
|
|
42
|
+
...props.bundling,
|
|
49
43
|
}),
|
|
50
|
-
handler:
|
|
44
|
+
handler: resolvedHandler,
|
|
51
45
|
});
|
|
52
46
|
}
|
|
53
47
|
}
|
|
54
48
|
exports.PythonFunction = PythonFunction;
|
|
55
49
|
_a = JSII_RTTI_SYMBOL_1;
|
|
56
|
-
PythonFunction[_a] = { fqn: "@aws-cdk/aws-lambda-python-alpha.PythonFunction", version: "2.
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
PythonFunction[_a] = { fqn: "@aws-cdk/aws-lambda-python-alpha.PythonFunction", version: "2.6.0-alpha.0" };
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLHVEQUEyRjtBQUMzRix5Q0FBc0M7Ozs7OztBQXVCdEMsTUFBYSxjQUFlLFNBQVEscUJBQVE7Ozs7SUFDMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjs7UUFDbEUsTUFBTSxFQUFFLEtBQUssR0FBRyxVQUFVLEVBQUUsT0FBTyxHQUFHLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDbkUsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1NBQ2pFO1FBRUQsUUFBUTtRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLGFBQWEsRUFBRSxDQUFDLENBQUM7U0FDL0Q7UUFFRCxNQUFNLGVBQWUsR0FBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUU1RSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssMEJBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDbEUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1NBQzFEO1FBRUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixPQUFPO1lBQ1AsSUFBSSxFQUFFLG1CQUFRLENBQUMsTUFBTSxDQUFDO2dCQUNwQixLQUFLO2dCQUNMLE9BQU87Z0JBQ1AsR0FBRyxLQUFLLENBQUMsUUFBUTthQUNsQixDQUFDO1lBQ0YsT0FBTyxFQUFFLGVBQWU7U0FDekIsQ0FBQyxDQUFDO0tBQ0o7O0FBOUJILHdDQStCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEZ1bmN0aW9uLCBGdW5jdGlvbk9wdGlvbnMsIFJ1bnRpbWUsIFJ1bnRpbWVGYW1pbHkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IEJ1bmRsaW5nIH0gZnJvbSAnLi9idW5kbGluZyc7XG5pbXBvcnQgeyBCdW5kbGluZ09wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFB5dGhvbkZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBGdW5jdGlvbk9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBlbnRyeTogc3RyaW5nO1xuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJ1bnRpbWU6IFJ1bnRpbWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgaW5kZXg/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGhhbmRsZXI/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGJ1bmRsaW5nPzogQnVuZGxpbmdPcHRpb25zO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIFB5dGhvbkZ1bmN0aW9uIGV4dGVuZHMgRnVuY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHl0aG9uRnVuY3Rpb25Qcm9wcykge1xuICAgIGNvbnN0IHsgaW5kZXggPSAnaW5kZXgucHknLCBoYW5kbGVyID0gJ2hhbmRsZXInLCBydW50aW1lIH0gPSBwcm9wcztcbiAgICBpZiAocHJvcHMuaW5kZXggJiYgIS9cXC5weSQvLnRlc3QocHJvcHMuaW5kZXgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgUHl0aG9uICgucHkpIGluZGV4IGZpbGVzIGFyZSBzdXBwb3J0ZWQuJyk7XG4gICAgfVxuXG4gICAgLy8gRW50cnlcbiAgICBjb25zdCBlbnRyeSA9IHBhdGgucmVzb2x2ZShwcm9wcy5lbnRyeSk7XG4gICAgY29uc3QgcmVzb2x2ZWRJbmRleCA9IHBhdGgucmVzb2x2ZShlbnRyeSwgaW5kZXgpO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhyZXNvbHZlZEluZGV4KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBpbmRleCBmaWxlIGF0ICR7cmVzb2x2ZWRJbmRleH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvbHZlZEhhbmRsZXIgPWAke2luZGV4LnNsaWNlKDAsIC0zKX0uJHtoYW5kbGVyfWAucmVwbGFjZSgnLycsICcuJyk7XG5cbiAgICBpZiAocHJvcHMucnVudGltZSAmJiBwcm9wcy5ydW50aW1lLmZhbWlseSAhPT0gUnVudGltZUZhbWlseS5QWVRIT04pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBgUFlUSE9OYCBydW50aW1lcyBhcmUgc3VwcG9ydGVkLicpO1xuICAgIH1cblxuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBydW50aW1lLFxuICAgICAgY29kZTogQnVuZGxpbmcuYnVuZGxlKHtcbiAgICAgICAgZW50cnksXG4gICAgICAgIHJ1bnRpbWUsXG4gICAgICAgIC4uLnByb3BzLmJ1bmRsaW5nLFxuICAgICAgfSksXG4gICAgICBoYW5kbGVyOiByZXNvbHZlZEhhbmRsZXIsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -12,4 +12,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./function"), exports);
|
|
14
14
|
__exportStar(require("./layer"), exports);
|
|
15
|
-
|
|
15
|
+
__exportStar(require("./types"), exports);
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBMkI7QUFDM0IsMENBQXdCO0FBQ3hCLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZnVuY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9sYXllcic7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbiJdfQ==
|
package/lib/layer.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
2
2
|
import { Construct } from 'constructs';
|
|
3
|
+
import { BundlingOptions } from './types';
|
|
3
4
|
/**
|
|
4
5
|
* (experimental) Properties for PythonLayerVersion.
|
|
5
6
|
*
|
|
@@ -15,7 +16,7 @@ export interface PythonLayerVersionProps extends lambda.LayerVersionOptions {
|
|
|
15
16
|
/**
|
|
16
17
|
* (experimental) The runtimes compatible with the python layer.
|
|
17
18
|
*
|
|
18
|
-
* @default -
|
|
19
|
+
* @default - Only Python 3.7 is supported.
|
|
19
20
|
* @experimental
|
|
20
21
|
*/
|
|
21
22
|
readonly compatibleRuntimes?: lambda.Runtime[];
|
|
@@ -26,6 +27,16 @@ export interface PythonLayerVersionProps extends lambda.LayerVersionOptions {
|
|
|
26
27
|
* @experimental
|
|
27
28
|
*/
|
|
28
29
|
readonly compatibleArchitectures?: lambda.Architecture[];
|
|
30
|
+
/**
|
|
31
|
+
* (experimental) Bundling options to use for this function.
|
|
32
|
+
*
|
|
33
|
+
* Use this to specify custom bundling options like
|
|
34
|
+
* the bundling Docker image, asset hash type, custom hash, architecture, etc.
|
|
35
|
+
*
|
|
36
|
+
* @default - Use the default bundling Docker image, with x86_64 architecture.
|
|
37
|
+
* @experimental
|
|
38
|
+
*/
|
|
39
|
+
readonly bundling?: BundlingOptions;
|
|
29
40
|
}
|
|
30
41
|
/**
|
|
31
42
|
* (experimental) A lambda layer version.
|
package/lib/layer.js
CHANGED
|
@@ -35,16 +35,17 @@ class PythonLayerVersion extends lambda.LayerVersion {
|
|
|
35
35
|
super(scope, id, {
|
|
36
36
|
...props,
|
|
37
37
|
compatibleRuntimes,
|
|
38
|
-
code: bundling_1.bundle({
|
|
38
|
+
code: bundling_1.Bundling.bundle({
|
|
39
39
|
entry,
|
|
40
40
|
runtime,
|
|
41
41
|
architecture,
|
|
42
42
|
outputPathSuffix: 'python',
|
|
43
|
+
...props.bundling,
|
|
43
44
|
}),
|
|
44
45
|
});
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
48
|
exports.PythonLayerVersion = PythonLayerVersion;
|
|
48
49
|
_a = JSII_RTTI_SYMBOL_1;
|
|
49
|
-
PythonLayerVersion[_a] = { fqn: "@aws-cdk/aws-lambda-python-alpha.PythonLayerVersion", version: "2.
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
PythonLayerVersion[_a] = { fqn: "@aws-cdk/aws-lambda-python-alpha.PythonLayerVersion", version: "2.6.0-alpha.0" };
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsaURBQWlEO0FBRWpELHlDQUFzQzs7Ozs7O0FBa0J0QyxNQUFhLGtCQUFtQixTQUFRLE1BQU0sQ0FBQyxZQUFZOzs7O0lBQ3pELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7OztRQUN0RSxNQUFNLGtCQUFrQixTQUFHLEtBQUssQ0FBQyxrQkFBa0IsbUNBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25GLE1BQU0sdUJBQXVCLFNBQUcsS0FBSyxDQUFDLHVCQUF1QixtQ0FBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUYsaURBQWlEO1FBQ2pELEtBQUssTUFBTSxPQUFPLElBQUksa0JBQWtCLEVBQUU7WUFDeEMsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtnQkFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO2FBQzFEO1NBQ0Y7UUFFRCxxQkFBcUI7UUFDckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsbUZBQW1GO1FBQ25GLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sWUFBWSxHQUFHLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWhELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1Isa0JBQWtCO1lBQ2xCLElBQUksRUFBRSxtQkFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDcEIsS0FBSztnQkFDTCxPQUFPO2dCQUNQLFlBQVk7Z0JBQ1osZ0JBQWdCLEVBQUUsUUFBUTtnQkFDMUIsR0FBRyxLQUFLLENBQUMsUUFBUTthQUNsQixDQUFDO1NBQ0gsQ0FBQyxDQUFDO0tBQ0o7O0FBN0JILGdEQThCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJ1bmRsaW5nIH0gZnJvbSAnLi9idW5kbGluZyc7XG5pbXBvcnQgeyBCdW5kbGluZ09wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgUHl0aG9uTGF5ZXJWZXJzaW9uUHJvcHMgZXh0ZW5kcyBsYW1iZGEuTGF5ZXJWZXJzaW9uT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBlbnRyeTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29tcGF0aWJsZVJ1bnRpbWVzPzogbGFtYmRhLlJ1bnRpbWVbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbXBhdGlibGVBcmNoaXRlY3R1cmVzPzogbGFtYmRhLkFyY2hpdGVjdHVyZVtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYnVuZGxpbmc/OiBCdW5kbGluZ09wdGlvbnM7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBQeXRob25MYXllclZlcnNpb24gZXh0ZW5kcyBsYW1iZGEuTGF5ZXJWZXJzaW9uIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFB5dGhvbkxheWVyVmVyc2lvblByb3BzKSB7XG4gICAgY29uc3QgY29tcGF0aWJsZVJ1bnRpbWVzID0gcHJvcHMuY29tcGF0aWJsZVJ1bnRpbWVzID8/IFtsYW1iZGEuUnVudGltZS5QWVRIT05fM183XTtcbiAgICBjb25zdCBjb21wYXRpYmxlQXJjaGl0ZWN0dXJlcyA9IHByb3BzLmNvbXBhdGlibGVBcmNoaXRlY3R1cmVzID8/IFtsYW1iZGEuQXJjaGl0ZWN0dXJlLlg4Nl82NF07XG5cbiAgICAvLyBFbnN1cmUgdGhhdCBhbGwgY29tcGF0aWJsZSBydW50aW1lcyBhcmUgcHl0aG9uXG4gICAgZm9yIChjb25zdCBydW50aW1lIG9mIGNvbXBhdGlibGVSdW50aW1lcykge1xuICAgICAgaWYgKHJ1bnRpbWUgJiYgcnVudGltZS5mYW1pbHkgIT09IGxhbWJkYS5SdW50aW1lRmFtaWx5LlBZVEhPTikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgYFBZVEhPTmAgcnVudGltZXMgYXJlIHN1cHBvcnRlZC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbnRyeSBhbmQgZGVmYXVsdHNcbiAgICBjb25zdCBlbnRyeSA9IHBhdGgucmVzb2x2ZShwcm9wcy5lbnRyeSk7XG4gICAgLy8gUGljayB0aGUgZmlyc3QgY29tcGF0aWJsZVJ1bnRpbWUgYW5kIGNvbXBhdGlibGVBcmNoaXRlY3R1cmVzIHRvIHVzZSBmb3IgYnVuZGxpbmdcbiAgICBjb25zdCBydW50aW1lID0gY29tcGF0aWJsZVJ1bnRpbWVzWzBdO1xuICAgIGNvbnN0IGFyY2hpdGVjdHVyZSA9IGNvbXBhdGlibGVBcmNoaXRlY3R1cmVzWzBdO1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNvbXBhdGlibGVSdW50aW1lcyxcbiAgICAgIGNvZGU6IEJ1bmRsaW5nLmJ1bmRsZSh7XG4gICAgICAgIGVudHJ5LFxuICAgICAgICBydW50aW1lLFxuICAgICAgICBhcmNoaXRlY3R1cmUsXG4gICAgICAgIG91dHB1dFBhdGhTdWZmaXg6ICdweXRob24nLFxuICAgICAgICAuLi5wcm9wcy5idW5kbGluZyxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare enum DependenciesFile {
|
|
2
|
+
PIP = "requirements.txt",
|
|
3
|
+
POETRY = "poetry.lock",
|
|
4
|
+
PIPENV = "Pipfile.lock",
|
|
5
|
+
NONE = ""
|
|
6
|
+
}
|
|
7
|
+
export interface PackagingProps {
|
|
8
|
+
/**
|
|
9
|
+
* Dependency file for the type of packaging.
|
|
10
|
+
*/
|
|
11
|
+
readonly dependenciesFile: DependenciesFile;
|
|
12
|
+
/**
|
|
13
|
+
* Command to export the dependencies into a pip-compatible `requirements.txt` format.
|
|
14
|
+
*
|
|
15
|
+
* @default - No dependencies are exported.
|
|
16
|
+
*/
|
|
17
|
+
readonly exportCommand?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare class Packaging {
|
|
20
|
+
/**
|
|
21
|
+
* Standard packaging with `pip`.
|
|
22
|
+
*/
|
|
23
|
+
static readonly PIP: Packaging;
|
|
24
|
+
/**
|
|
25
|
+
* Packaging with `pipenv`.
|
|
26
|
+
*/
|
|
27
|
+
static readonly PIPENV: Packaging;
|
|
28
|
+
/**
|
|
29
|
+
* Packaging with `poetry`.
|
|
30
|
+
*/
|
|
31
|
+
static readonly POETRY: Packaging;
|
|
32
|
+
/**
|
|
33
|
+
* No dependencies or packaging.
|
|
34
|
+
*/
|
|
35
|
+
static readonly NONE: Packaging;
|
|
36
|
+
static fromEntry(entry: string): Packaging;
|
|
37
|
+
readonly dependenciesFile: string;
|
|
38
|
+
readonly exportCommand?: string;
|
|
39
|
+
constructor(props: PackagingProps);
|
|
40
|
+
}
|
package/lib/packaging.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Packaging = exports.DependenciesFile = void 0;
|
|
4
|
+
const fs = require("fs");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
var DependenciesFile;
|
|
7
|
+
(function (DependenciesFile) {
|
|
8
|
+
DependenciesFile["PIP"] = "requirements.txt";
|
|
9
|
+
DependenciesFile["POETRY"] = "poetry.lock";
|
|
10
|
+
DependenciesFile["PIPENV"] = "Pipfile.lock";
|
|
11
|
+
DependenciesFile["NONE"] = "";
|
|
12
|
+
})(DependenciesFile = exports.DependenciesFile || (exports.DependenciesFile = {}));
|
|
13
|
+
class Packaging {
|
|
14
|
+
constructor(props) {
|
|
15
|
+
this.dependenciesFile = props.dependenciesFile;
|
|
16
|
+
this.exportCommand = props.exportCommand;
|
|
17
|
+
}
|
|
18
|
+
static fromEntry(entry) {
|
|
19
|
+
if (fs.existsSync(path.join(entry, DependenciesFile.PIPENV))) {
|
|
20
|
+
return Packaging.PIPENV;
|
|
21
|
+
}
|
|
22
|
+
if (fs.existsSync(path.join(entry, DependenciesFile.POETRY))) {
|
|
23
|
+
return Packaging.POETRY;
|
|
24
|
+
}
|
|
25
|
+
else if (fs.existsSync(path.join(entry, DependenciesFile.PIP))) {
|
|
26
|
+
return Packaging.PIP;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return Packaging.NONE;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.Packaging = Packaging;
|
|
34
|
+
/**
|
|
35
|
+
* Standard packaging with `pip`.
|
|
36
|
+
*/
|
|
37
|
+
Packaging.PIP = new Packaging({
|
|
38
|
+
dependenciesFile: DependenciesFile.PIP,
|
|
39
|
+
});
|
|
40
|
+
/**
|
|
41
|
+
* Packaging with `pipenv`.
|
|
42
|
+
*/
|
|
43
|
+
Packaging.PIPENV = new Packaging({
|
|
44
|
+
dependenciesFile: DependenciesFile.PIPENV,
|
|
45
|
+
// By default, pipenv creates a virtualenv in `/.local`, so we force it to create one in the package directory.
|
|
46
|
+
// At the end, we remove the virtualenv to avoid creating a duplicate copy in the Lambda package.
|
|
47
|
+
exportCommand: `PIPENV_VENV_IN_PROJECT=1 pipenv lock -r > ${DependenciesFile.PIP} && rm -rf .venv`,
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Packaging with `poetry`.
|
|
51
|
+
*/
|
|
52
|
+
Packaging.POETRY = new Packaging({
|
|
53
|
+
dependenciesFile: DependenciesFile.POETRY,
|
|
54
|
+
// Export dependencies with credentials avaiable in the bundling image.
|
|
55
|
+
exportCommand: `poetry export --with-credentials --format ${DependenciesFile.PIP} --output ${DependenciesFile.PIP}`,
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* No dependencies or packaging.
|
|
59
|
+
*/
|
|
60
|
+
Packaging.NONE = new Packaging({ dependenciesFile: DependenciesFile.NONE });
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGFja2FnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFFN0IsSUFBWSxnQkFLWDtBQUxELFdBQVksZ0JBQWdCO0lBQzFCLDRDQUF3QixDQUFBO0lBQ3hCLDBDQUFzQixDQUFBO0lBQ3RCLDJDQUF1QixDQUFBO0lBQ3ZCLDZCQUFTLENBQUE7QUFDWCxDQUFDLEVBTFcsZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUFLM0I7QUFlRCxNQUFhLFNBQVM7SUErQ3BCLFlBQVksS0FBcUI7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7S0FDMUM7SUFqQk0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFhO1FBQ25DLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO1lBQzVELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztTQUN6QjtRQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO1lBQzlELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztTQUN6QjthQUFNLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2hFLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQztTQUN0QjthQUFNO1lBQ0wsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ3ZCO0tBQ0Y7O0FBM0NILDhCQW1EQztBQWpEQzs7R0FFRztBQUNvQixhQUFHLEdBQUcsSUFBSSxTQUFTLENBQUM7SUFDekMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztDQUN2QyxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNvQixnQkFBTSxHQUFHLElBQUksU0FBUyxDQUFDO0lBQzVDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLE1BQU07SUFDekMsK0dBQStHO0lBQy9HLGlHQUFpRztJQUNqRyxhQUFhLEVBQUUsNkNBQTZDLGdCQUFnQixDQUFDLEdBQUcsa0JBQWtCO0NBQ25HLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ29CLGdCQUFNLEdBQUcsSUFBSSxTQUFTLENBQUM7SUFDNUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtJQUN6Qyx1RUFBdUU7SUFDdkUsYUFBYSxFQUFFLDZDQUE2QyxnQkFBZ0IsQ0FBQyxHQUFHLGFBQWEsZ0JBQWdCLENBQUMsR0FBRyxFQUFFO0NBQ3BILENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ29CLGNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5leHBvcnQgZW51bSBEZXBlbmRlbmNpZXNGaWxlIHtcbiAgUElQID0gJ3JlcXVpcmVtZW50cy50eHQnLFxuICBQT0VUUlkgPSAncG9ldHJ5LmxvY2snLFxuICBQSVBFTlYgPSAnUGlwZmlsZS5sb2NrJyxcbiAgTk9ORSA9ICcnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFja2FnaW5nUHJvcHMge1xuICAvKipcbiAgICogRGVwZW5kZW5jeSBmaWxlIGZvciB0aGUgdHlwZSBvZiBwYWNrYWdpbmcuXG4gICAqL1xuICByZWFkb25seSBkZXBlbmRlbmNpZXNGaWxlOiBEZXBlbmRlbmNpZXNGaWxlO1xuICAvKipcbiAgICogQ29tbWFuZCB0byBleHBvcnQgdGhlIGRlcGVuZGVuY2llcyBpbnRvIGEgcGlwLWNvbXBhdGlibGUgYHJlcXVpcmVtZW50cy50eHRgIGZvcm1hdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBkZXBlbmRlbmNpZXMgYXJlIGV4cG9ydGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhwb3J0Q29tbWFuZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFBhY2thZ2luZyB7XG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIHBhY2thZ2luZyB3aXRoIGBwaXBgLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQSVAgPSBuZXcgUGFja2FnaW5nKHtcbiAgICBkZXBlbmRlbmNpZXNGaWxlOiBEZXBlbmRlbmNpZXNGaWxlLlBJUCxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFBhY2thZ2luZyB3aXRoIGBwaXBlbnZgLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQSVBFTlYgPSBuZXcgUGFja2FnaW5nKHtcbiAgICBkZXBlbmRlbmNpZXNGaWxlOiBEZXBlbmRlbmNpZXNGaWxlLlBJUEVOVixcbiAgICAvLyBCeSBkZWZhdWx0LCBwaXBlbnYgY3JlYXRlcyBhIHZpcnR1YWxlbnYgaW4gYC8ubG9jYWxgLCBzbyB3ZSBmb3JjZSBpdCB0byBjcmVhdGUgb25lIGluIHRoZSBwYWNrYWdlIGRpcmVjdG9yeS5cbiAgICAvLyBBdCB0aGUgZW5kLCB3ZSByZW1vdmUgdGhlIHZpcnR1YWxlbnYgdG8gYXZvaWQgY3JlYXRpbmcgYSBkdXBsaWNhdGUgY29weSBpbiB0aGUgTGFtYmRhIHBhY2thZ2UuXG4gICAgZXhwb3J0Q29tbWFuZDogYFBJUEVOVl9WRU5WX0lOX1BST0pFQ1Q9MSBwaXBlbnYgbG9jayAtciA+ICR7RGVwZW5kZW5jaWVzRmlsZS5QSVB9ICYmIHJtIC1yZiAudmVudmAsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBQYWNrYWdpbmcgd2l0aCBgcG9ldHJ5YC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUE9FVFJZID0gbmV3IFBhY2thZ2luZyh7XG4gICAgZGVwZW5kZW5jaWVzRmlsZTogRGVwZW5kZW5jaWVzRmlsZS5QT0VUUlksXG4gICAgLy8gRXhwb3J0IGRlcGVuZGVuY2llcyB3aXRoIGNyZWRlbnRpYWxzIGF2YWlhYmxlIGluIHRoZSBidW5kbGluZyBpbWFnZS5cbiAgICBleHBvcnRDb21tYW5kOiBgcG9ldHJ5IGV4cG9ydCAtLXdpdGgtY3JlZGVudGlhbHMgLS1mb3JtYXQgJHtEZXBlbmRlbmNpZXNGaWxlLlBJUH0gLS1vdXRwdXQgJHtEZXBlbmRlbmNpZXNGaWxlLlBJUH1gLFxuICB9KTtcblxuICAvKipcbiAgICogTm8gZGVwZW5kZW5jaWVzIG9yIHBhY2thZ2luZy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ORSA9IG5ldyBQYWNrYWdpbmcoeyBkZXBlbmRlbmNpZXNGaWxlOiBEZXBlbmRlbmNpZXNGaWxlLk5PTkUgfSk7XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tRW50cnkoZW50cnk6IHN0cmluZyk6IFBhY2thZ2luZyB7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKGVudHJ5LCBEZXBlbmRlbmNpZXNGaWxlLlBJUEVOVikpKSB7XG4gICAgICByZXR1cm4gUGFja2FnaW5nLlBJUEVOVjtcbiAgICB9IGlmIChmcy5leGlzdHNTeW5jKHBhdGguam9pbihlbnRyeSwgRGVwZW5kZW5jaWVzRmlsZS5QT0VUUlkpKSkge1xuICAgICAgcmV0dXJuIFBhY2thZ2luZy5QT0VUUlk7XG4gICAgfSBlbHNlIGlmIChmcy5leGlzdHNTeW5jKHBhdGguam9pbihlbnRyeSwgRGVwZW5kZW5jaWVzRmlsZS5QSVApKSkge1xuICAgICAgcmV0dXJuIFBhY2thZ2luZy5QSVA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQYWNrYWdpbmcuTk9ORTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZGVwZW5kZW5jaWVzRmlsZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZXhwb3J0Q29tbWFuZD86IHN0cmluZztcbiAgY29uc3RydWN0b3IocHJvcHM6IFBhY2thZ2luZ1Byb3BzKSB7XG4gICAgdGhpcy5kZXBlbmRlbmNpZXNGaWxlID0gcHJvcHMuZGVwZW5kZW5jaWVzRmlsZTtcbiAgICB0aGlzLmV4cG9ydENvbW1hbmQgPSBwcm9wcy5leHBvcnRDb21tYW5kO1xuICB9XG59Il19
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { AssetHashType, DockerImage } from 'aws-cdk-lib';
|
|
2
|
+
/**
|
|
3
|
+
* (experimental) Options for bundling.
|
|
4
|
+
*
|
|
5
|
+
* @experimental
|
|
6
|
+
*/
|
|
7
|
+
export interface BundlingOptions {
|
|
8
|
+
/**
|
|
9
|
+
* (experimental) Output path suffix: the suffix for the directory into which the bundled output is written.
|
|
10
|
+
*
|
|
11
|
+
* @default - 'python' for a layer, empty string otherwise.
|
|
12
|
+
* @experimental
|
|
13
|
+
*/
|
|
14
|
+
readonly outputPathSuffix?: string;
|
|
15
|
+
/**
|
|
16
|
+
* (experimental) Docker image to use for bundling.
|
|
17
|
+
*
|
|
18
|
+
* If no options are provided, the default bundling image
|
|
19
|
+
* will be used. Dependencies will be installed using the default packaging commands
|
|
20
|
+
* and copied over from into the Lambda asset.
|
|
21
|
+
*
|
|
22
|
+
* @default - Default bundling image.
|
|
23
|
+
* @experimental
|
|
24
|
+
*/
|
|
25
|
+
readonly image?: DockerImage;
|
|
26
|
+
/**
|
|
27
|
+
* (experimental) Optional build arguments to pass to the default container.
|
|
28
|
+
*
|
|
29
|
+
* This can be used to customize
|
|
30
|
+
* the index URLs used for installing dependencies.
|
|
31
|
+
* This is not used if a custom image is provided.
|
|
32
|
+
*
|
|
33
|
+
* @default - No build arguments.
|
|
34
|
+
* @experimental
|
|
35
|
+
*/
|
|
36
|
+
readonly buildArgs?: {
|
|
37
|
+
[key: string]: string;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* (experimental) Determines how asset hash is calculated. Assets will get rebuild and uploaded only if their hash has changed.
|
|
41
|
+
*
|
|
42
|
+
* If asset hash is set to `SOURCE` (default), then only changes to the source
|
|
43
|
+
* directory will cause the asset to rebuild. This means, for example, that in
|
|
44
|
+
* order to pick up a new dependency version, a change must be made to the
|
|
45
|
+
* source tree. Ideally, this can be implemented by including a dependency
|
|
46
|
+
* lockfile in your source tree or using fixed dependencies.
|
|
47
|
+
*
|
|
48
|
+
* If the asset hash is set to `OUTPUT`, the hash is calculated after
|
|
49
|
+
* bundling. This means that any change in the output will cause the asset to
|
|
50
|
+
* be invalidated and uploaded. Bear in mind that `pip` adds timestamps to
|
|
51
|
+
* dependencies it installs, which implies that in this mode Python bundles
|
|
52
|
+
* will _always_ get rebuild and uploaded. Normally this is an anti-pattern
|
|
53
|
+
* since build
|
|
54
|
+
*
|
|
55
|
+
* @default AssetHashType.SOURCE By default, hash is calculated based on the
|
|
56
|
+
* contents of the source directory. This means that only updates to the
|
|
57
|
+
* source will cause the asset to rebuild.
|
|
58
|
+
* @experimental
|
|
59
|
+
*/
|
|
60
|
+
readonly assetHashType?: AssetHashType;
|
|
61
|
+
/**
|
|
62
|
+
* (experimental) Specify a custom hash for this asset.
|
|
63
|
+
*
|
|
64
|
+
* If `assetHashType` is set it must
|
|
65
|
+
* be set to `AssetHashType.CUSTOM`. For consistency, this custom hash will
|
|
66
|
+
* be SHA256 hashed and encoded as hex. The resulting hash will be the asset
|
|
67
|
+
* hash.
|
|
68
|
+
*
|
|
69
|
+
* NOTE: the hash is used in order to identify a specific revision of the asset, and
|
|
70
|
+
* used for optimizing and caching deployment activities related to this asset such as
|
|
71
|
+
* packaging, uploading to Amazon S3, etc. If you chose to customize the hash, you will
|
|
72
|
+
* need to make sure it is updated every time the asset changes, or otherwise it is
|
|
73
|
+
* possible that some deployments will not be invalidated.
|
|
74
|
+
*
|
|
75
|
+
* @default - Based on `assetHashType`
|
|
76
|
+
* @experimental
|
|
77
|
+
*/
|
|
78
|
+
readonly assetHash?: string;
|
|
79
|
+
}
|
package/lib/types.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXNzZXRIYXNoVHlwZSwgRG9ja2VySW1hZ2UgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBCdW5kbGluZ09wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG91dHB1dFBhdGhTdWZmaXg/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgaW1hZ2U/OiBEb2NrZXJJbWFnZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBidWlsZEFyZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbiAgcmVhZG9ubHkgYXNzZXRIYXNoVHlwZT86IEFzc2V0SGFzaFR5cGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhc3NldEhhc2g/OiBzdHJpbmc7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/aws-lambda-python-alpha",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0-alpha.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The CDK Construct Library for AWS Lambda in Python",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -76,17 +76,17 @@
|
|
|
76
76
|
},
|
|
77
77
|
"license": "Apache-2.0",
|
|
78
78
|
"devDependencies": {
|
|
79
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
80
|
-
"@aws-cdk/cdk-integ-tools": "2.
|
|
81
|
-
"@aws-cdk/pkglint": "2.
|
|
79
|
+
"@aws-cdk/cdk-build-tools": "2.6.0",
|
|
80
|
+
"@aws-cdk/cdk-integ-tools": "2.6.0",
|
|
81
|
+
"@aws-cdk/pkglint": "2.6.0",
|
|
82
82
|
"@types/jest": "^27.0.3",
|
|
83
|
-
"aws-cdk-lib": "2.
|
|
83
|
+
"aws-cdk-lib": "2.6.0",
|
|
84
84
|
"constructs": "^10.0.0"
|
|
85
85
|
},
|
|
86
86
|
"dependencies": {},
|
|
87
87
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
88
88
|
"peerDependencies": {
|
|
89
|
-
"aws-cdk-lib": "^2.
|
|
89
|
+
"aws-cdk-lib": "^2.6.0",
|
|
90
90
|
"constructs": "^10.0.0"
|
|
91
91
|
},
|
|
92
92
|
"engines": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Fixture with packages imported, but nothing else
|
|
2
2
|
import { Construct } from 'constructs';
|
|
3
|
-
import { Stack } from 'aws-cdk-lib';
|
|
3
|
+
import { DockerImage, Stack } from 'aws-cdk-lib';
|
|
4
4
|
import { Runtime } from 'aws-cdk-lib/aws-lambda';
|
|
5
5
|
import * as lambda from '@aws-cdk/aws-lambda-python-alpha';
|
|
6
6
|
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# The correct AWS SAM build image based on the runtime of the function will be
|
|
2
|
-
# passed as build arg. The default allows to do `docker build .` when testing.
|
|
3
|
-
ARG IMAGE=public.ecr.aws/sam/build-python3.7
|
|
4
|
-
FROM $IMAGE
|
|
5
|
-
|
|
6
|
-
# Ensure rsync is installed
|
|
7
|
-
RUN yum -q list installed rsync &>/dev/null || yum install -y rsync
|
|
8
|
-
|
|
9
|
-
# Upgrade pip (required by cryptography v3.4 and above, which is a dependency of poetry)
|
|
10
|
-
RUN pip install --upgrade pip
|
|
11
|
-
|
|
12
|
-
# Install pipenv and poetry so we can create a requirements.txt if we detect pipfile or poetry.lock respectively
|
|
13
|
-
RUN pip install pipenv poetry
|
|
14
|
-
|
|
15
|
-
# Install the dependencies in a cacheable layer
|
|
16
|
-
WORKDIR /var/dependencies
|
|
17
|
-
COPY Pipfile* pyproject* poetry* requirements.tx[t] ./
|
|
18
|
-
RUN [ -f 'Pipfile' ] && pipenv lock -r >requirements.txt; \
|
|
19
|
-
[ -f 'poetry.lock' ] && poetry export --with-credentials --format requirements.txt --output requirements.txt; \
|
|
20
|
-
[ -f 'requirements.txt' ] && pip install -r requirements.txt -t .;
|
|
21
|
-
|
|
22
|
-
CMD [ "python" ]
|