serverless-plugin-datadog 5.71.0 → 5.72.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/README.md +1 -1
- package/dist/package.json +1 -1
- package/dist/src/compile.d.ts +3 -0
- package/dist/src/compile.d.ts.map +1 -0
- package/dist/src/compile.js +10 -0
- package/dist/src/compile.js.map +1 -0
- package/dist/src/layers-gov.json +20 -20
- package/dist/src/layers.json +302 -290
- package/dist/src/precomile-python.d.ts +2 -0
- package/dist/src/precomile-python.d.ts.map +1 -0
- package/dist/src/precomile-python.js +69 -0
- package/dist/src/precomile-python.js.map +1 -0
- package/dist/src/precompile-python.d.ts +2 -0
- package/dist/src/precompile-python.d.ts.map +1 -0
- package/dist/src/precompile-python.js +78 -0
- package/dist/src/precompile-python.js.map +1 -0
- package/dist/src/step-functions-helper.d.ts +7 -4
- package/dist/src/step-functions-helper.d.ts.map +1 -1
- package/dist/src/step-functions-helper.js +62 -32
- package/dist/src/step-functions-helper.js.map +1 -1
- package/package.json +1 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"precomile-python.d.ts","sourceRoot":"","sources":["../../src/precomile-python.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,GAAG,QAW/C"}
|
@@ -0,0 +1,69 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
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 (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
exports.precompilePython = void 0;
|
27
|
+
const child_process_1 = require("child_process");
|
28
|
+
const fs = __importStar(require("fs"));
|
29
|
+
const path = __importStar(require("path"));
|
30
|
+
function precompilePython(serverless) {
|
31
|
+
serverless.cli.log('Precompiling Python files');
|
32
|
+
let tempDirName = 'datadog';
|
33
|
+
let slsDir = serverless.processedInput.options.package || '.serverless';
|
34
|
+
let tempDir = path.resolve(slsDir, tempDirName);
|
35
|
+
for (const file of lsDirFiles(slsDir, false)) {
|
36
|
+
if (file.endsWith('.zip')) {
|
37
|
+
preCompilePackage(tempDir, file);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
41
|
+
exports.precompilePython = precompilePython;
|
42
|
+
function preCompilePackage(tempDir, zipFile) {
|
43
|
+
(0, child_process_1.spawnSync)('unzip', ['-d', tempDir, zipFile]);
|
44
|
+
(0, child_process_1.spawnSync)('python', ['-m', 'compileall', '-b', tempDir]);
|
45
|
+
replacePyFiles(tempDir);
|
46
|
+
(0, child_process_1.spawnSync)('rm', [zipFile]);
|
47
|
+
(0, child_process_1.execSync)(`cd ${tempDir} && zip -r ${zipFile} .`);
|
48
|
+
(0, child_process_1.spawnSync)('rm', ['-r', tempDir]);
|
49
|
+
}
|
50
|
+
function replacePyFiles(dir) {
|
51
|
+
for (const file of lsDirFiles(dir)) {
|
52
|
+
if (file.endsWith('.pyc')) {
|
53
|
+
let pyFile = file.replace('.pyc', '.py');
|
54
|
+
(0, child_process_1.spawnSync)('rm', [pyFile]);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
function* lsDirFiles(dir, recursive = true) {
|
59
|
+
for (const dirent of fs.readdirSync(dir, { withFileTypes: true })) {
|
60
|
+
const res = path.resolve(dir, dirent.name);
|
61
|
+
if (recursive && dirent.isDirectory()) {
|
62
|
+
yield* lsDirFiles(res, recursive);
|
63
|
+
}
|
64
|
+
else {
|
65
|
+
yield res;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
//# sourceMappingURL=precomile-python.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"precomile-python.js","sourceRoot":"","sources":["../../src/precomile-python.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAoD;AACpD,uCAAyB;AACzB,2CAA6B;AAE7B,SAAgB,gBAAgB,CAAC,UAAe;IAC9C,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAChD,IAAI,WAAW,GAAG,SAAS,CAAC;IAC5B,IAAI,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,IAAI,aAAa,CAAC;IACxE,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;QAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACzB,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SAClC;KACF;AACH,CAAC;AAXD,4CAWC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,OAAe;IACzD,IAAA,yBAAS,EAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7C,IAAA,yBAAS,EAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,IAAA,yBAAS,EAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3B,IAAA,wBAAQ,EAAC,MAAM,OAAO,cAAc,OAAO,IAAI,CAAC,CAAC;IACjD,IAAA,yBAAS,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE;QAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACzB,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACzC,IAAA,yBAAS,EAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;SAC3B;KACF;AACH,CAAC;AAED,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAW,EAAE,SAAS,GAAG,IAAI;IAChD,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,SAAS,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE;YACrC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SACnC;aAAM;YACL,MAAM,GAAG,CAAC;SACX;KACF;AACH,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"precompile-python.d.ts","sourceRoot":"","sources":["../../src/precompile-python.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,GAAG,QAW/C"}
|
@@ -0,0 +1,78 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
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 (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
exports.precompilePython = void 0;
|
27
|
+
const child_process_1 = require("child_process");
|
28
|
+
const fs = __importStar(require("fs"));
|
29
|
+
const path = __importStar(require("path"));
|
30
|
+
function precompilePython(serverless) {
|
31
|
+
serverless.cli.log('Precompiling Python files');
|
32
|
+
let tempDirName = 'datadog';
|
33
|
+
let slsDir = serverless.processedInput.options.package || '.serverless';
|
34
|
+
let tempDir = path.resolve(slsDir, tempDirName);
|
35
|
+
for (const file of lsDirFiles(slsDir, false)) {
|
36
|
+
if (file.endsWith('.zip')) {
|
37
|
+
preCompilePackage(serverless.service.provider.runtime, tempDir, file);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
41
|
+
exports.precompilePython = precompilePython;
|
42
|
+
function preCompilePackage(python, tempDir, zipFile) {
|
43
|
+
(0, child_process_1.spawnSync)('unzip', ['-d', tempDir, zipFile]);
|
44
|
+
precompile(python, tempDir);
|
45
|
+
replacePyFiles(tempDir);
|
46
|
+
(0, child_process_1.spawnSync)('rm', [zipFile]);
|
47
|
+
(0, child_process_1.execSync)(`cd ${tempDir} && zip -r ${zipFile} .`);
|
48
|
+
(0, child_process_1.spawnSync)('rm', ['-r', tempDir]);
|
49
|
+
}
|
50
|
+
function precompile(python, dir) {
|
51
|
+
// TODO: run precompile in docker container
|
52
|
+
//spawnSync('python', ['-m', 'compileall', '-b', dir]);
|
53
|
+
console.log("----------------------------------------");
|
54
|
+
console.log("python: ", python);
|
55
|
+
console.log("----------------------------------------");
|
56
|
+
let image = python.replace('python3', 'python:3');
|
57
|
+
(0, child_process_1.spawnSync)('docker', ['run', '-v', `${dir}:/mnt`, image, 'python', '-m', 'compileall', '-b', '/mnt']);
|
58
|
+
}
|
59
|
+
function replacePyFiles(dir) {
|
60
|
+
for (const file of lsDirFiles(dir)) {
|
61
|
+
if (file.endsWith('.pyc')) {
|
62
|
+
let pyFile = file.replace('.pyc', '.py');
|
63
|
+
(0, child_process_1.spawnSync)('rm', [pyFile]);
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
function* lsDirFiles(dir, recursive = true) {
|
68
|
+
for (const dirent of fs.readdirSync(dir, { withFileTypes: true })) {
|
69
|
+
const res = path.resolve(dir, dirent.name);
|
70
|
+
if (recursive && dirent.isDirectory()) {
|
71
|
+
yield* lsDirFiles(res, recursive);
|
72
|
+
}
|
73
|
+
else {
|
74
|
+
yield res;
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
78
|
+
//# sourceMappingURL=precompile-python.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"precompile-python.js","sourceRoot":"","sources":["../../src/precompile-python.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAoD;AACpD,uCAAyB;AACzB,2CAA6B;AAE7B,SAAgB,gBAAgB,CAAC,UAAe;IAC9C,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAChD,IAAI,WAAW,GAAG,SAAS,CAAC;IAC5B,IAAI,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,IAAI,aAAa,CAAC;IACxE,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;QAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACzB,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SACvE;KACF;AACH,CAAC;AAXD,4CAWC;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,OAAe,EAAE,OAAe;IACzE,IAAA,yBAAS,EAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7C,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5B,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,IAAA,yBAAS,EAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3B,IAAA,wBAAQ,EAAC,MAAM,OAAO,cAAc,OAAO,IAAI,CAAC,CAAC;IACjD,IAAA,yBAAS,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,GAAW;IAC7C,2CAA2C;IAC3C,uDAAuD;IACvD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAClD,IAAA,yBAAS,EAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE;QAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACzB,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACzC,IAAA,yBAAS,EAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;SAC3B;KACF;AACH,CAAC;AAED,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAW,EAAE,SAAS,GAAG,IAAI;IAChD,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,SAAS,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE;YACrC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SACnC;aAAM;YACL,MAAM,GAAG,CAAC;SACX;KACF;AACH,CAAC"}
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import Serverless from "serverless";
|
2
|
-
export declare function isSafeToModifyStepFunctionInvoctation(parameters: any): boolean;
|
3
2
|
export interface GeneralResource {
|
4
3
|
Type: string;
|
5
4
|
Properties?: {
|
@@ -21,15 +20,18 @@ export type PayloadObject = {
|
|
21
20
|
"StateMachine.$"?: any;
|
22
21
|
StateMachine?: any;
|
23
22
|
};
|
23
|
+
export type StepFunctionInput = {
|
24
|
+
"CONTEXT.$"?: string;
|
25
|
+
CONTEXT?: string;
|
26
|
+
[key: string]: unknown;
|
27
|
+
};
|
24
28
|
export interface StateMachineStep {
|
25
29
|
Resource?: string;
|
26
30
|
Parameters?: {
|
27
31
|
FunctionName?: string;
|
28
32
|
"Payload.$"?: string;
|
29
33
|
Payload?: string | PayloadObject;
|
30
|
-
Input?:
|
31
|
-
"CONTEXT.$"?: string;
|
32
|
-
};
|
34
|
+
Input?: string | StepFunctionInput;
|
33
35
|
};
|
34
36
|
Next?: string;
|
35
37
|
End?: boolean;
|
@@ -41,5 +43,6 @@ export declare function updateDefinitionString(definitionString: string | {
|
|
41
43
|
}, serverless: Serverless, stateMachineName: string): string | {
|
42
44
|
"Fn::Sub": (string | object)[];
|
43
45
|
};
|
46
|
+
export declare function updateDefinitionForStepFunctionInvocationStep(stepName: string, step: StateMachineStep, serverless: Serverless, stateMachineName: string): boolean;
|
44
47
|
export declare function inspectAndRecommendStepFunctionsInstrumentation(serverless: Serverless): void;
|
45
48
|
//# sourceMappingURL=step-functions-helper.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"step-functions-helper.d.ts","sourceRoot":"","sources":["../../src/step-functions-helper.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;
|
1
|
+
{"version":3,"file":"step-functions-helper.d.ts","sourceRoot":"","sources":["../../src/step-functions-helper.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE;QACX,gBAAgB,CAAC,EACb,MAAM,GACN;YACE,SAAS,EAAE,GAAG,EAAE,CAAC;SAClB,CAAC;KACP,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAC;CAC7C;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE;QACX,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;KACpC,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAU5E;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAK9E;AAkBD,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,EAC7D,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,MAAM,GACvB,MAAM,GAAG;IAAE,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,CAiC7C;AA2ID,wBAAgB,6CAA6C,CAC3D,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAuDT;AAED,wBAAgB,+CAA+C,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAO5F"}
|
@@ -1,30 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.inspectAndRecommendStepFunctionsInstrumentation = exports.
|
4
|
-
// Truth table
|
5
|
-
// Input | Expected
|
6
|
-
// -------------------------|---------
|
7
|
-
// Empty object | true
|
8
|
-
// undefined | true
|
9
|
-
// not object | false
|
10
|
-
// object without CONTEXT.$ | true
|
11
|
-
// object with CONTEXT.$ | false
|
12
|
-
function isSafeToModifyStepFunctionInvoctation(parameters) {
|
13
|
-
if (typeof parameters !== "object") {
|
14
|
-
return false;
|
15
|
-
}
|
16
|
-
if (!parameters.hasOwnProperty("Input")) {
|
17
|
-
return true;
|
18
|
-
}
|
19
|
-
if (typeof parameters.Input !== "object") {
|
20
|
-
return false;
|
21
|
-
}
|
22
|
-
if (!parameters.Input.hasOwnProperty("CONTEXT.$")) {
|
23
|
-
return true;
|
24
|
-
}
|
25
|
-
return false;
|
26
|
-
}
|
27
|
-
exports.isSafeToModifyStepFunctionInvoctation = isSafeToModifyStepFunctionInvoctation;
|
3
|
+
exports.inspectAndRecommendStepFunctionsInstrumentation = exports.updateDefinitionForStepFunctionInvocationStep = exports.updateDefinitionString = exports.isStepFunctionInvocation = exports.isDefaultLambdaApiStep = void 0;
|
28
4
|
function isDefaultLambdaApiStep(resource) {
|
29
5
|
// default means not legacy lambda api
|
30
6
|
if (resource === undefined) {
|
@@ -81,7 +57,7 @@ function updateDefinitionString(definitionString, serverless, stateMachineName)
|
|
81
57
|
updateDefinitionForDefaultLambdaApiStep(stepName, step, serverless, stateMachineName);
|
82
58
|
}
|
83
59
|
else if (isStepFunctionInvocation(step === null || step === void 0 ? void 0 : step.Resource)) {
|
84
|
-
updateDefinitionForStepFunctionInvocationStep(step);
|
60
|
+
updateDefinitionForStepFunctionInvocationStep(stepName, step, serverless, stateMachineName);
|
85
61
|
}
|
86
62
|
}
|
87
63
|
// Step 3: Convert definition object back into definition string
|
@@ -174,14 +150,68 @@ check out https://docs.datadoghq.com/serverless/step_functions/troubleshooting/\
|
|
174
150
|
step.Parameters["Payload.$"] = "$$['Execution', 'State', 'StateMachine']";
|
175
151
|
serverless.cli.log(`Merging traces for step: ${stepName} of state machine: ${stateMachineName}.`);
|
176
152
|
}
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
153
|
+
// Truth table
|
154
|
+
// Input | Expected
|
155
|
+
// -------------------------|---------
|
156
|
+
// Empty object | true
|
157
|
+
// undefined | true
|
158
|
+
// not object | false
|
159
|
+
// object without CONTEXT.$ | true
|
160
|
+
// object with CONTEXT.$ | false
|
161
|
+
// Truth table
|
162
|
+
// Case | Input | Expected
|
163
|
+
// -----|----------------------------------------------------------|---------
|
164
|
+
// 0.1 | Parameters field is not an object | false
|
165
|
+
// 0.2 | Parameters field has no Input field | true
|
166
|
+
// 0.3 | Parameters.Input is not an object | false
|
167
|
+
// 1 | No "CONTEXT" or "CONTEXT.$" | true
|
168
|
+
// 2 | Has "CONTEXT" | false
|
169
|
+
// 3.1 | "CONTEXT.$": "States.JsonMerge($$, $, false)" or | false
|
170
|
+
// | "CONTEXT.$": "$$['Execution', 'State', 'StateMachine']" |
|
171
|
+
// 3.2 | Custom "CONTEXT.$" | false
|
172
|
+
function updateDefinitionForStepFunctionInvocationStep(stepName, step, serverless, stateMachineName) {
|
173
|
+
const parameters = step === null || step === void 0 ? void 0 : step.Parameters;
|
174
|
+
// Case 0.1: Parameters field is not an object
|
175
|
+
if (typeof parameters !== "object") {
|
176
|
+
return false;
|
177
|
+
}
|
178
|
+
// Case 0.2: Parameters field has no Input field
|
179
|
+
if (!parameters.hasOwnProperty("Input")) {
|
180
|
+
parameters.Input = { "CONTEXT.$": "States.JsonMerge($$, $, false)" };
|
181
|
+
return true;
|
183
182
|
}
|
183
|
+
// Case 0.3: Parameters.Input is not an object
|
184
|
+
if (typeof parameters.Input !== "object") {
|
185
|
+
return false;
|
186
|
+
}
|
187
|
+
// Case 1: No "CONTEXT" or "CONTEXT.$"
|
188
|
+
if (!parameters.Input.hasOwnProperty("CONTEXT") && !parameters.Input.hasOwnProperty("CONTEXT.$")) {
|
189
|
+
parameters.Input["CONTEXT.$"] = "$$['Execution', 'State', 'StateMachine']";
|
190
|
+
return true;
|
191
|
+
}
|
192
|
+
// Case 2: Has 'CONTEXT' field.
|
193
|
+
// This case should be rare, so we don't support context injection for this case for now.
|
194
|
+
if (parameters.Input.hasOwnProperty("CONTEXT")) {
|
195
|
+
serverless.cli
|
196
|
+
.log(`[Warn] Step ${stepName} of state machine ${stateMachineName} has custom CONTEXT field. Step Functions Context \
|
197
|
+
Object injection skipped. Your Step Functions trace will not be merged with downstream Step Function traces. To manually \
|
198
|
+
merge these traces, check out https://docs.datadoghq.com/serverless/step_functions/troubleshooting/\n`);
|
199
|
+
return false;
|
200
|
+
}
|
201
|
+
// Case 3.1 context injection is already set up
|
202
|
+
if (parameters.Input["CONTEXT.$"] === "States.JsonMerge($$, $, false)" ||
|
203
|
+
parameters.Input["CONTEXT.$"] === `$$['Execution', 'State', 'StateMachine']`) {
|
204
|
+
serverless.cli.log(`Step ${stepName} of state machine ${stateMachineName}: Context injection is already set up. Skipping context injection.\n`);
|
205
|
+
return false;
|
206
|
+
}
|
207
|
+
// Case 3.2 custom CONTEXT.$ field
|
208
|
+
serverless.cli
|
209
|
+
.log(`[Warn] Step ${stepName} of state machine ${stateMachineName}: Parameters.Input field has a custom CONTEXT.$ field. Step \
|
210
|
+
Functions Context Object injection skipped. Your Step Functions trace will not be merged with downstream Step Function traces. To \
|
211
|
+
manually merge these traces, check out https://docs.datadoghq.com/serverless/step_functions/troubleshooting/\n`);
|
212
|
+
return false;
|
184
213
|
}
|
214
|
+
exports.updateDefinitionForStepFunctionInvocationStep = updateDefinitionForStepFunctionInvocationStep;
|
185
215
|
function inspectAndRecommendStepFunctionsInstrumentation(serverless) {
|
186
216
|
var _a;
|
187
217
|
const stepFunctions = Object.values(((_a = serverless.service.stepFunctions) === null || _a === void 0 ? void 0 : _a.stateMachines) || {});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"step-functions-helper.js","sourceRoot":"","sources":["../../src/step-functions-helper.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"step-functions-helper.js","sourceRoot":"","sources":["../../src/step-functions-helper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "serverless-plugin-datadog",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.72.0",
|
4
4
|
"description": "Serverless plugin to automatically instrument python and node functions with datadog tracing",
|
5
5
|
"main": "dist/src/index.js",
|
6
6
|
"repository": "https://github.com/DataDog/serverless-plugin-datadog",
|