serverless-plugin-datadog 3.2.1 → 3.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. package/README.md +50 -59
  2. package/dist/package.json +11 -3
  3. package/dist/src/env.d.ts +7 -3
  4. package/dist/src/env.d.ts.map +1 -1
  5. package/dist/src/env.js +34 -2
  6. package/dist/src/env.js.map +1 -1
  7. package/dist/src/git-metadata/__tests__/git.test.d.ts +2 -0
  8. package/dist/src/git-metadata/__tests__/git.test.d.ts.map +1 -0
  9. package/dist/src/git-metadata/__tests__/git.test.js +106 -0
  10. package/dist/src/git-metadata/__tests__/git.test.js.map +1 -0
  11. package/dist/src/git-metadata/api.d.ts +4 -0
  12. package/dist/src/git-metadata/api.d.ts.map +1 -0
  13. package/dist/src/git-metadata/api.js +13 -0
  14. package/dist/src/git-metadata/api.js.map +1 -0
  15. package/dist/src/git-metadata/interfaces.d.ts +10 -0
  16. package/dist/src/git-metadata/interfaces.d.ts.map +1 -0
  17. package/dist/src/git-metadata/interfaces.js +43 -0
  18. package/dist/src/git-metadata/interfaces.js.map +1 -0
  19. package/dist/src/git-metadata/renderer.d.ts +9 -0
  20. package/dist/src/git-metadata/renderer.d.ts.map +1 -0
  21. package/dist/src/git-metadata/renderer.js +32 -0
  22. package/dist/src/git-metadata/renderer.js.map +1 -0
  23. package/dist/src/git.d.ts +8 -0
  24. package/dist/src/git.d.ts.map +1 -0
  25. package/dist/src/git.js +115 -0
  26. package/dist/src/git.js.map +1 -0
  27. package/dist/src/helpers/__tests__/ci.test.d.ts +2 -0
  28. package/dist/src/helpers/__tests__/ci.test.d.ts.map +1 -0
  29. package/dist/src/helpers/__tests__/ci.test.js +147 -0
  30. package/dist/src/helpers/__tests__/ci.test.js.map +1 -0
  31. package/dist/src/helpers/__tests__/git.test.d.ts +2 -0
  32. package/dist/src/helpers/__tests__/git.test.d.ts.map +1 -0
  33. package/dist/src/helpers/__tests__/git.test.js +65 -0
  34. package/dist/src/helpers/__tests__/git.test.js.map +1 -0
  35. package/dist/src/helpers/__tests__/retry.test.d.ts +2 -0
  36. package/dist/src/helpers/__tests__/retry.test.d.ts.map +1 -0
  37. package/dist/src/helpers/__tests__/retry.test.js +99 -0
  38. package/dist/src/helpers/__tests__/retry.test.js.map +1 -0
  39. package/dist/src/helpers/__tests__/tags.test.d.ts +2 -0
  40. package/dist/src/helpers/__tests__/tags.test.d.ts.map +1 -0
  41. package/dist/src/helpers/__tests__/tags.test.js +17 -0
  42. package/dist/src/helpers/__tests__/tags.test.js.map +1 -0
  43. package/dist/src/helpers/__tests__/upload.test.d.ts +2 -0
  44. package/dist/src/helpers/__tests__/upload.test.d.ts.map +1 -0
  45. package/dist/src/helpers/__tests__/upload.test.js +185 -0
  46. package/dist/src/helpers/__tests__/upload.test.js.map +1 -0
  47. package/dist/src/helpers/__tests__/user-provided-git.test.d.ts +2 -0
  48. package/dist/src/helpers/__tests__/user-provided-git.test.d.ts.map +1 -0
  49. package/dist/src/helpers/__tests__/user-provided-git.test.js +64 -0
  50. package/dist/src/helpers/__tests__/user-provided-git.test.js.map +1 -0
  51. package/dist/src/helpers/__tests__/utils.test.d.ts +2 -0
  52. package/dist/src/helpers/__tests__/utils.test.d.ts.map +1 -0
  53. package/dist/src/helpers/__tests__/utils.test.js +345 -0
  54. package/dist/src/helpers/__tests__/utils.test.js.map +1 -0
  55. package/dist/src/helpers/apikey.d.ts +13 -0
  56. package/dist/src/helpers/apikey.d.ts.map +1 -0
  57. package/dist/src/helpers/apikey.js +74 -0
  58. package/dist/src/helpers/apikey.js.map +1 -0
  59. package/dist/src/helpers/ci.d.ts +16 -0
  60. package/dist/src/helpers/ci.d.ts.map +1 -0
  61. package/dist/src/helpers/ci.js +378 -0
  62. package/dist/src/helpers/ci.js.map +1 -0
  63. package/dist/src/helpers/errors.d.ts +3 -0
  64. package/dist/src/helpers/errors.d.ts.map +1 -0
  65. package/dist/src/helpers/errors.js +7 -0
  66. package/dist/src/helpers/errors.js.map +1 -0
  67. package/dist/src/helpers/formatting.d.ts +6 -0
  68. package/dist/src/helpers/formatting.d.ts.map +1 -0
  69. package/dist/src/helpers/formatting.js +13 -0
  70. package/dist/src/helpers/formatting.js.map +1 -0
  71. package/dist/src/helpers/git.d.ts +3 -0
  72. package/dist/src/helpers/git.d.ts.map +1 -0
  73. package/dist/src/helpers/git.js +52 -0
  74. package/dist/src/helpers/git.js.map +1 -0
  75. package/dist/src/helpers/interfaces.d.ts +20 -0
  76. package/dist/src/helpers/interfaces.d.ts.map +1 -0
  77. package/dist/src/helpers/interfaces.js +3 -0
  78. package/dist/src/helpers/interfaces.js.map +1 -0
  79. package/dist/src/helpers/metrics.d.ts +12 -0
  80. package/dist/src/helpers/metrics.d.ts.map +1 -0
  81. package/dist/src/helpers/metrics.js +36 -0
  82. package/dist/src/helpers/metrics.js.map +1 -0
  83. package/dist/src/helpers/retry.d.ts +3 -0
  84. package/dist/src/helpers/retry.d.ts.map +1 -0
  85. package/dist/src/helpers/retry.js +39 -0
  86. package/dist/src/helpers/retry.js.map +1 -0
  87. package/dist/src/helpers/tags.d.ts +29 -0
  88. package/dist/src/helpers/tags.d.ts.map +1 -0
  89. package/dist/src/helpers/tags.js +50 -0
  90. package/dist/src/helpers/tags.js.map +1 -0
  91. package/dist/src/helpers/upload.d.ts +45 -0
  92. package/dist/src/helpers/upload.d.ts.map +1 -0
  93. package/dist/src/helpers/upload.js +70 -0
  94. package/dist/src/helpers/upload.js.map +1 -0
  95. package/dist/src/helpers/user-provided-git.d.ts +2 -0
  96. package/dist/src/helpers/user-provided-git.d.ts.map +1 -0
  97. package/dist/src/helpers/user-provided-git.js +23 -0
  98. package/dist/src/helpers/user-provided-git.js.map +1 -0
  99. package/dist/src/helpers/utils.d.ts +31 -0
  100. package/dist/src/helpers/utils.d.ts.map +1 -0
  101. package/dist/src/helpers/utils.js +115 -0
  102. package/dist/src/helpers/utils.js.map +1 -0
  103. package/dist/src/index.d.ts.map +1 -1
  104. package/dist/src/index.js +76 -16
  105. package/dist/src/index.js.map +1 -1
  106. package/dist/src/layer.d.ts +10 -1
  107. package/dist/src/layer.d.ts.map +1 -1
  108. package/dist/src/layer.js +39 -5
  109. package/dist/src/layer.js.map +1 -1
  110. package/dist/src/layers-gov.json +12 -6
  111. package/dist/src/layers.json +126 -63
  112. package/dist/src/source-code-integration.d.ts +12 -0
  113. package/dist/src/source-code-integration.d.ts.map +1 -0
  114. package/dist/src/source-code-integration.js +76 -0
  115. package/dist/src/source-code-integration.js.map +1 -0
  116. package/package.json +11 -3
package/dist/src/index.js CHANGED
@@ -35,17 +35,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
35
35
  });
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
- const layers = __importStar(require("./layers.json"));
39
- const govLayers = __importStar(require("./layers-gov.json"));
40
38
  const package_json_1 = require("../package.json");
41
39
  const env_1 = require("./env");
40
+ const forwarder_1 = require("./forwarder");
41
+ const git_1 = require("./git");
42
42
  const layer_1 = require("./layer");
43
+ const govLayers = __importStar(require("./layers-gov.json"));
44
+ const layers = __importStar(require("./layers.json"));
45
+ const monitor_api_requests_1 = require("./monitor-api-requests");
46
+ const monitors_1 = require("./monitors");
47
+ const output_1 = require("./output");
48
+ const source_code_integration_1 = require("./source-code-integration");
43
49
  const tracing_1 = require("./tracing");
44
50
  const wrapper_1 = require("./wrapper");
45
- const forwarder_1 = require("./forwarder");
46
- const output_1 = require("./output");
47
- const monitors_1 = require("./monitors");
48
- const monitor_api_requests_1 = require("./monitor-api-requests");
49
51
  var TagKeys;
50
52
  (function (TagKeys) {
51
53
  TagKeys["Service"] = "service";
@@ -91,6 +93,9 @@ module.exports = class ServerlessPlugin {
91
93
  return;
92
94
  this.serverless.cli.log("Auto instrumenting functions with Datadog");
93
95
  configHasOldProperties(config);
96
+ if (config.monitorsApiKey !== undefined || config.monitorsAppKey !== undefined) {
97
+ this.serverless.cli.log("Warning: `monitorsApiKey` and `monitorsAppKey` have been deprecated. Please set DATADOG_API_KEY and DATADOG_APP_KEY in your environment instead.");
98
+ }
94
99
  validateConfiguration(config);
95
100
  const defaultRuntime = this.serverless.service.provider.runtime;
96
101
  const handlers = (0, layer_1.findHandlers)(this.serverless.service, config.exclude, defaultRuntime);
@@ -129,6 +134,7 @@ module.exports = class ServerlessPlugin {
129
134
  });
130
135
  }
131
136
  afterPackageFunction() {
137
+ var _a, _b;
132
138
  return __awaiter(this, void 0, void 0, function* () {
133
139
  const config = (0, env_1.getConfig)(this.serverless.service);
134
140
  if (config.enabled === false)
@@ -156,6 +162,19 @@ module.exports = class ServerlessPlugin {
156
162
  }
157
163
  }
158
164
  this.addTags(handlers, config.enableTags);
165
+ const simpleGit = yield (0, git_1.newSimpleGit)();
166
+ if (config.enableSourceCodeIntegration &&
167
+ ((_a = process.env.DATADOG_API_KEY) !== null && _a !== void 0 ? _a : config.apiKey) !== undefined &&
168
+ simpleGit !== undefined &&
169
+ (yield simpleGit.checkIsRepo())) {
170
+ try {
171
+ yield this.addSourceCodeIntegration(handlers, simpleGit, ((_b = process.env.DATADOG_API_KEY) !== null && _b !== void 0 ? _b : config.apiKey), config.site);
172
+ }
173
+ catch (err) {
174
+ this.serverless.cli.log(`Error occurred when adding source code integration: ${err}`);
175
+ return;
176
+ }
177
+ }
159
178
  (0, wrapper_1.redirectHandlers)(handlers, config.addLayers, config.customHandler);
160
179
  if (config.integrationTesting === false) {
161
180
  yield (0, output_1.addOutputLinks)(this.serverless, config.site, handlers);
@@ -166,22 +185,27 @@ module.exports = class ServerlessPlugin {
166
185
  });
167
186
  }
168
187
  afterDeploy() {
188
+ var _a, _b, _c, _d;
169
189
  return __awaiter(this, void 0, void 0, function* () {
170
190
  const config = (0, env_1.getConfig)(this.serverless.service);
171
191
  const service = this.serverless.service.getServiceName();
172
192
  const env = this.serverless.getProvider("aws").getStage();
173
193
  if (config.enabled === false)
174
194
  return;
175
- if (config.monitors && config.monitorsApiKey && config.monitorsAppKey) {
195
+ if (config.monitors &&
196
+ ((_a = config.apiKey) !== null && _a !== void 0 ? _a : process.env.DATADOG_API_KEY) &&
197
+ ((_b = config.appKey) !== null && _b !== void 0 ? _b : process.env.DATADOG_APP_KEY)) {
176
198
  const cloudFormationStackId = yield (0, monitor_api_requests_1.getCloudFormationStackId)(this.serverless);
177
199
  try {
178
- const logStatements = yield (0, monitors_1.setMonitors)(config.site, config.monitors, config.monitorsApiKey, config.monitorsAppKey, cloudFormationStackId, service, env);
200
+ const logStatements = yield (0, monitors_1.setMonitors)(config.site, config.monitors, ((_c = config.apiKey) !== null && _c !== void 0 ? _c : process.env.DATADOG_API_KEY), ((_d = config.appKey) !== null && _d !== void 0 ? _d : process.env.DATADOG_APP_KEY), cloudFormationStackId, service, env);
179
201
  for (const logStatement of logStatements) {
180
202
  this.serverless.cli.log(logStatement);
181
203
  }
182
204
  }
183
205
  catch (err) {
184
- this.serverless.cli.log("Error occurred when configuring monitors.");
206
+ if (err instanceof Error) {
207
+ this.serverless.cli.log(`Error occurred when configuring monitors: ${err.message}`);
208
+ }
185
209
  }
186
210
  }
187
211
  return (0, output_1.printOutputs)(this.serverless, config.site);
@@ -225,6 +249,21 @@ module.exports = class ServerlessPlugin {
225
249
  }
226
250
  });
227
251
  }
252
+ /**
253
+ * Uploads git metadata for the current directory to Datadog and goes through
254
+ * each function defined in serverless and attaches the git.commit.sha to DD_TAGS.
255
+ */
256
+ addSourceCodeIntegration(handlers, simpleGit, apiKey, datadogSite) {
257
+ return __awaiter(this, void 0, void 0, function* () {
258
+ const sourceCodeIntegration = new source_code_integration_1.SourceCodeIntegration(apiKey, datadogSite, simpleGit);
259
+ const gitCommitHash = yield sourceCodeIntegration.uploadGitMetadata();
260
+ handlers.forEach(({ handler }) => {
261
+ var _a;
262
+ (_a = handler.environment) !== null && _a !== void 0 ? _a : (handler.environment = {});
263
+ handler.environment[env_1.ddTagsEnvVar] = "git.commit.sha:" + gitCommitHash;
264
+ });
265
+ });
266
+ }
228
267
  };
229
268
  function configHasOldProperties(obj) {
230
269
  let hasOldProperties = false;
@@ -246,6 +285,7 @@ function configHasOldProperties(obj) {
246
285
  }
247
286
  }
248
287
  function validateConfiguration(config) {
288
+ checkForMultipleApiKeys(config);
249
289
  const siteList = [
250
290
  "datadoghq.com",
251
291
  "datadoghq.eu",
@@ -253,23 +293,43 @@ function validateConfiguration(config) {
253
293
  "us5.datadoghq.com",
254
294
  "ddog-gov.com",
255
295
  ];
256
- if (config.apiKey !== undefined && config.apiKMSKey !== undefined) {
257
- throw new Error("`apiKey` and `apiKMSKey` should not be set at the same time.");
258
- }
259
296
  if (config.site !== undefined && !siteList.includes(config.site.toLowerCase())) {
260
297
  throw new Error("Warning: Invalid site URL. Must be either datadoghq.com, datadoghq.eu, us3.datadoghq.com, us5.datadoghq.com, or ddog-gov.com.");
261
298
  }
262
299
  if (config.addExtension) {
263
- if (config.apiKey === undefined && config.apiKMSKey === undefined) {
264
- throw new Error("When `addExtension` is true, `apiKey` or `apiKMSKey` must also be set.");
300
+ if (config.apiKey === undefined &&
301
+ process.env.DATADOG_API_KEY === undefined &&
302
+ config.apiKMSKey === undefined &&
303
+ config.apiKeySecretArn === undefined) {
304
+ throw new Error("When `addExtension` is true, the environment variable `DATADOG_API_KEY` or configuration variable `apiKMSKey` or `apiKeySecretArn` must be set.");
265
305
  }
266
306
  }
267
307
  if (config.monitors) {
268
- if (config.monitorsApiKey === undefined || config.monitorsAppKey === undefined) {
269
- throw new Error("When `monitors` is defined, `monitorsApiKey` and `monitorsAppKey` must also be defined");
308
+ if ((process.env.DATADOG_API_KEY === undefined || process.env.DATADOG_APP_KEY === undefined) &&
309
+ // Support deprecated monitorsApiKey and monitorsAppKey
310
+ (config.apiKey === undefined || config.appKey === undefined)) {
311
+ throw new Error("When `monitors` is enabled, `DATADOG_API_KEY` and `DATADOG_APP_KEY` environment variables must be set.");
270
312
  }
271
313
  }
272
314
  }
315
+ function checkForMultipleApiKeys(config) {
316
+ let multipleApiKeysMessage;
317
+ if (config.apiKey !== undefined && config.apiKMSKey !== undefined && config.apiKeySecretArn !== undefined) {
318
+ multipleApiKeysMessage = "`apiKey`, `apiKMSKey`, and `apiKeySecretArn`";
319
+ }
320
+ else if (config.apiKey !== undefined && config.apiKMSKey !== undefined) {
321
+ multipleApiKeysMessage = "`apiKey` and `apiKMSKey`";
322
+ }
323
+ else if (config.apiKey !== undefined && config.apiKeySecretArn !== undefined) {
324
+ multipleApiKeysMessage = "`apiKey` and `apiKeySecretArn`";
325
+ }
326
+ else if (config.apiKMSKey !== undefined && config.apiKeySecretArn !== undefined) {
327
+ multipleApiKeysMessage = "`apiKMSKey` and `apiKeySecretArn`";
328
+ }
329
+ if (multipleApiKeysMessage) {
330
+ throw new Error(`${multipleApiKeysMessage} should not be set at the same time.`);
331
+ }
332
+ }
273
333
  function setDatadogForwarder(config) {
274
334
  const forwarderArn = config.forwarderArn;
275
335
  const forwarder = config.forwarder;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,15 @@ export declare enum RuntimeType {
8
8
  export interface FunctionInfo {
9
9
  name: string;
10
10
  type: RuntimeType;
11
- handler: FunctionDefinition;
11
+ handler: ExtendedFunctionDefinition;
12
12
  runtime?: string;
13
13
  }
14
+ export declare const X86_64_ARCHITECTURE = "x86_64";
15
+ export declare const ARM64_ARCHITECTURE = "arm64";
16
+ export declare const DEFAULT_ARCHITECTURE = "x86_64";
17
+ export interface ExtendedFunctionDefinition extends FunctionDefinition {
18
+ architecture?: string;
19
+ }
14
20
  export interface LayerJSON {
15
21
  regions: {
16
22
  [region: string]: {
@@ -21,6 +27,9 @@ export interface LayerJSON {
21
27
  export declare const runtimeLookup: {
22
28
  [key: string]: RuntimeType;
23
29
  };
30
+ export declare const armRuntimeKeys: {
31
+ [key: string]: string;
32
+ };
24
33
  export declare function findHandlers(service: Service, exclude: string[], defaultRuntime?: string): FunctionInfo[];
25
34
  export declare function applyLambdaLibraryLayers(service: Service, handlers: FunctionInfo[], layers: LayerJSON): void;
26
35
  export declare function applyExtensionLayer(service: Service, handlers: FunctionInfo[], layers: LayerJSON): void;
@@ -1 +1 @@
1
- {"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../../src/layer.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,OAAO,MAAM,4BAA4B,CAAC;AAEjD,oBAAY,WAAW;IACrB,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,WAAW,IAAA;CACZ;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GACX;YACE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;SACvC,GACD,SAAS,CAAC;KACf,CAAC;CACH;AAED,eAAO,MAAM,aAAa,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;CASvD,CAAC;AAEF,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAgBzG;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,QAoBrG;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,QAiBhG;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAIhF;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,IAAI,yBAAyB,CAE7G"}
1
+ {"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../../src/layer.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,OAAO,MAAM,4BAA4B,CAAC;AACjD,oBAAY,WAAW;IACrB,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,WAAW,IAAA;CACZ;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,0BAA0B,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAC1C,eAAO,MAAM,oBAAoB,WAAsB,CAAC;AAGxD,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GACX;YACE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;SACvC,GACD,SAAS,CAAC;KACf,CAAC;CACH;AAED,eAAO,MAAM,aAAa,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;CASvD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAInD,CAAC;AAEF,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAgBzG;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,QA0BrG;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,QA0BhG;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAIhF;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,IAAI,yBAAyB,CAE7G"}
package/dist/src/layer.js CHANGED
@@ -1,13 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isFunctionDefinitionHandler = exports.pushLayerARN = exports.applyExtensionLayer = exports.applyLambdaLibraryLayers = exports.findHandlers = exports.runtimeLookup = exports.RuntimeType = void 0;
4
- const extensionLayerKey = "extension";
3
+ exports.isFunctionDefinitionHandler = exports.pushLayerARN = exports.applyExtensionLayer = exports.applyLambdaLibraryLayers = exports.findHandlers = exports.armRuntimeKeys = exports.runtimeLookup = exports.DEFAULT_ARCHITECTURE = exports.ARM64_ARCHITECTURE = exports.X86_64_ARCHITECTURE = exports.RuntimeType = void 0;
5
4
  var RuntimeType;
6
5
  (function (RuntimeType) {
7
6
  RuntimeType[RuntimeType["NODE"] = 0] = "NODE";
8
7
  RuntimeType[RuntimeType["PYTHON"] = 1] = "PYTHON";
9
8
  RuntimeType[RuntimeType["UNSUPPORTED"] = 2] = "UNSUPPORTED";
10
9
  })(RuntimeType = exports.RuntimeType || (exports.RuntimeType = {}));
10
+ exports.X86_64_ARCHITECTURE = "x86_64";
11
+ exports.ARM64_ARCHITECTURE = "arm64";
12
+ exports.DEFAULT_ARCHITECTURE = exports.X86_64_ARCHITECTURE;
11
13
  exports.runtimeLookup = {
12
14
  "nodejs10.x": RuntimeType.NODE,
13
15
  "nodejs12.x": RuntimeType.NODE,
@@ -18,6 +20,11 @@ exports.runtimeLookup = {
18
20
  "python3.8": RuntimeType.PYTHON,
19
21
  "python3.9": RuntimeType.PYTHON,
20
22
  };
23
+ exports.armRuntimeKeys = {
24
+ "python3.8": "python3.8-arm",
25
+ "python3.9": "python3.9-arm",
26
+ extension: "extension-arm",
27
+ };
21
28
  function findHandlers(service, exclude, defaultRuntime) {
22
29
  return Object.entries(service.functions)
23
30
  .map(([name, handler]) => {
@@ -35,6 +42,7 @@ function findHandlers(service, exclude, defaultRuntime) {
35
42
  }
36
43
  exports.findHandlers = findHandlers;
37
44
  function applyLambdaLibraryLayers(service, handlers, layers) {
45
+ var _a, _b;
38
46
  const { region } = service.provider;
39
47
  const regionRuntimes = layers.regions[region];
40
48
  if (regionRuntimes === undefined) {
@@ -45,7 +53,13 @@ function applyLambdaLibraryLayers(service, handlers, layers) {
45
53
  continue;
46
54
  }
47
55
  const { runtime } = handler;
48
- const lambdaLayerARN = runtime !== undefined ? regionRuntimes[runtime] : undefined;
56
+ const architecture = (_b = (_a = handler.handler.architecture) !== null && _a !== void 0 ? _a : service.provider.architecture) !== null && _b !== void 0 ? _b : exports.DEFAULT_ARCHITECTURE;
57
+ let runtimeKey = runtime;
58
+ if (architecture === exports.ARM64_ARCHITECTURE && runtime && runtime in exports.armRuntimeKeys) {
59
+ runtimeKey = exports.armRuntimeKeys[runtime];
60
+ removePreviousLayer(service, handler, regionRuntimes[runtime]);
61
+ }
62
+ const lambdaLayerARN = runtimeKey !== undefined ? regionRuntimes[runtimeKey] : undefined;
49
63
  if (lambdaLayerARN) {
50
64
  addLayer(service, handler, lambdaLayerARN);
51
65
  }
@@ -53,6 +67,7 @@ function applyLambdaLibraryLayers(service, handlers, layers) {
53
67
  }
54
68
  exports.applyLambdaLibraryLayers = applyLambdaLibraryLayers;
55
69
  function applyExtensionLayer(service, handlers, layers) {
70
+ var _a, _b;
56
71
  const { region } = service.provider;
57
72
  const regionRuntimes = layers.regions[region];
58
73
  if (regionRuntimes === undefined) {
@@ -62,7 +77,13 @@ function applyExtensionLayer(service, handlers, layers) {
62
77
  if (handler.type === RuntimeType.UNSUPPORTED) {
63
78
  continue;
64
79
  }
80
+ const architecture = (_b = (_a = handler.handler.architecture) !== null && _a !== void 0 ? _a : service.provider.architecture) !== null && _b !== void 0 ? _b : exports.DEFAULT_ARCHITECTURE;
65
81
  let extensionLayerARN;
82
+ let extensionLayerKey = "extension";
83
+ if (architecture === exports.ARM64_ARCHITECTURE) {
84
+ removePreviousLayer(service, handler, regionRuntimes[extensionLayerKey]);
85
+ extensionLayerKey = exports.armRuntimeKeys[extensionLayerKey];
86
+ }
66
87
  extensionLayerARN = regionRuntimes[extensionLayerKey];
67
88
  if (extensionLayerARN) {
68
89
  addLayer(service, handler, extensionLayerARN);
@@ -81,6 +102,9 @@ function isFunctionDefinitionHandler(funcDef) {
81
102
  }
82
103
  exports.isFunctionDefinitionHandler = isFunctionDefinitionHandler;
83
104
  function addLayer(service, handler, layerArn) {
105
+ setLayers(handler, pushLayerARN(layerArn, getLayers(service, handler)));
106
+ }
107
+ function getLayers(service, handler) {
84
108
  const functionLayersList = handler.handler.layers || [];
85
109
  const serviceLayersList = service.provider.layers || [];
86
110
  // Function-level layers override service-level layers
@@ -89,10 +113,20 @@ function addLayer(service, handler, layerArn) {
89
113
  // Set them at the function level, as our layers are runtime-dependent and could vary
90
114
  // between functions in the same project
91
115
  if (functionLayersList.length > 0 || serviceLayersList.length === 0) {
92
- handler.handler.layers = pushLayerARN(layerArn, functionLayersList);
116
+ return functionLayersList;
93
117
  }
94
118
  else {
95
- handler.handler.layers = pushLayerARN(layerArn, serviceLayersList);
119
+ return serviceLayersList;
96
120
  }
97
121
  }
122
+ function removePreviousLayer(service, handler, previousLayer) {
123
+ let layersList = getLayers(service, handler);
124
+ if (new Set(layersList).has(previousLayer)) {
125
+ layersList = layersList === null || layersList === void 0 ? void 0 : layersList.filter((layer) => layer !== previousLayer);
126
+ }
127
+ setLayers(handler, layersList);
128
+ }
129
+ function setLayers(handler, layers) {
130
+ handler.handler.layers = layers;
131
+ }
98
132
  //# sourceMappingURL=layer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layer.js","sourceRoot":"","sources":["../../src/layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layer.js","sourceRoot":"","sources":["../../src/layer.ts"],"names":[],"mappings":"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"}
@@ -2,25 +2,31 @@
2
2
  "regions": {
3
3
  "us-gov-west-1": {
4
4
  "nodejs10.x": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Node10-x:59",
5
- "nodejs12.x": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Node12-x:66",
6
- "nodejs14.x": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Node14-x:66",
5
+ "nodejs12.x": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Node12-x:67",
6
+ "nodejs14.x": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Node14-x:67",
7
7
  "python2.7": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Python27:49",
8
8
  "python3.6": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Python36:50",
9
9
  "python3.7": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Python37:50",
10
10
  "python3.8": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Python38:50",
11
+ "python3.8-arm": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Python38-ARM:50",
11
12
  "python3.9": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Python39:50",
12
- "extension": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Extension:14"
13
+ "python3.9-arm": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Python39-ARM:50",
14
+ "extension": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Extension:17",
15
+ "extension-arm": "arn:aws-us-gov:lambda:us-gov-west-1:002406178527:layer:Datadog-Extension-ARM:17"
13
16
  },
14
17
  "us-gov-east-1": {
15
18
  "nodejs10.x": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Node10-x:59",
16
- "nodejs12.x": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Node12-x:66",
17
- "nodejs14.x": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Node14-x:66",
19
+ "nodejs12.x": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Node12-x:67",
20
+ "nodejs14.x": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Node14-x:67",
18
21
  "python2.7": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Python27:49",
19
22
  "python3.6": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Python36:50",
20
23
  "python3.7": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Python37:50",
21
24
  "python3.8": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Python38:50",
25
+ "python3.8-arm": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Python38-ARM:50",
22
26
  "python3.9": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Python39:50",
23
- "extension": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Extension:14"
27
+ "python3.9-arm": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Python39-ARM:50",
28
+ "extension": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Extension:17",
29
+ "extension-arm": "arn:aws-us-gov:lambda:us-gov-east-1:002406178527:layer:Datadog-Extension-ARM:17"
24
30
  }
25
31
  }
26
32
  }