@datadog/datadog-ci 0.17.9 → 0.17.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/lambda/__tests__/functions/commons.test.js +165 -0
- package/dist/commands/lambda/__tests__/functions/instrument.test.js +144 -87
- package/dist/commands/lambda/__tests__/functions/uninstrument.test.js +1 -0
- package/dist/commands/lambda/__tests__/uninstrument.test.js +1 -0
- package/dist/commands/lambda/constants.d.ts +16 -6
- package/dist/commands/lambda/constants.js +22 -6
- package/dist/commands/lambda/functions/commons.d.ts +16 -4
- package/dist/commands/lambda/functions/commons.js +32 -7
- package/dist/commands/lambda/functions/instrument.d.ts +1 -4
- package/dist/commands/lambda/functions/instrument.js +28 -38
- package/dist/commands/lambda/functions/uninstrument.js +4 -3
- package/dist/commands/synthetics/__tests__/utils.test.js +0 -4
- package/dist/commands/synthetics/cli.js +2 -2
- package/dist/commands/synthetics/utils.d.ts +0 -3
- package/dist/commands/synthetics/utils.js +1 -11
- package/dist/helpers/__tests__/ci.test.js +51 -137
- package/dist/helpers/__tests__/user-provided-git.test.js +14 -2
- package/dist/helpers/__tests__/utils.test.js +4 -0
- package/dist/helpers/ci.js +54 -95
- package/dist/helpers/interfaces.d.ts +28 -2
- package/dist/helpers/user-provided-git.js +11 -2
- package/dist/helpers/utils.d.ts +4 -0
- package/dist/helpers/utils.js +18 -1
- package/package.json +2 -2
|
@@ -15,6 +15,49 @@ const commons_1 = require("../../functions/commons");
|
|
|
15
15
|
const instrument_1 = require("../../instrument");
|
|
16
16
|
const fixtures_1 = require("../fixtures");
|
|
17
17
|
describe('commons', () => {
|
|
18
|
+
describe('addLayerArn', () => {
|
|
19
|
+
test('adds layers and removes previous versions', () => {
|
|
20
|
+
const runtime = 'python3.9';
|
|
21
|
+
const config = {
|
|
22
|
+
Runtime: runtime,
|
|
23
|
+
};
|
|
24
|
+
let layerARNs = [
|
|
25
|
+
'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Python39:48',
|
|
26
|
+
'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Extension:10',
|
|
27
|
+
];
|
|
28
|
+
const region = 'sa-east-1';
|
|
29
|
+
const lambdaLibraryLayerName = constants_1.RUNTIME_LAYER_LOOKUP[runtime];
|
|
30
|
+
const fullLambdaLibraryLayerArn = commons_1.getLayerArn(config, config.Runtime, region) + ':49';
|
|
31
|
+
const fullExtensionLayerArn = commons_1.getLayerArn(config, constants_1.EXTENSION_LAYER_KEY, region) + ':11';
|
|
32
|
+
layerARNs = commons_1.addLayerArn(fullLambdaLibraryLayerArn, lambdaLibraryLayerName, layerARNs);
|
|
33
|
+
layerARNs = commons_1.addLayerArn(fullExtensionLayerArn, constants_1.DD_LAMBDA_EXTENSION_LAYER_NAME, layerARNs);
|
|
34
|
+
expect(layerARNs).toEqual([
|
|
35
|
+
'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Python39:49',
|
|
36
|
+
'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Extension:11',
|
|
37
|
+
]);
|
|
38
|
+
});
|
|
39
|
+
test('swaps layers if architecture is arm64', () => {
|
|
40
|
+
const runtime = 'python3.9';
|
|
41
|
+
const config = {
|
|
42
|
+
Architectures: ['arm64'],
|
|
43
|
+
Runtime: runtime,
|
|
44
|
+
};
|
|
45
|
+
let layerARNs = [
|
|
46
|
+
'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Python39:49',
|
|
47
|
+
'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Extension:11',
|
|
48
|
+
];
|
|
49
|
+
const region = 'sa-east-1';
|
|
50
|
+
const lambdaLibraryLayerName = constants_1.RUNTIME_LAYER_LOOKUP[runtime];
|
|
51
|
+
const fullLambdaLibraryLayerArn = commons_1.getLayerArn(config, config.Runtime, region) + ':49';
|
|
52
|
+
const fullExtensionLayerArn = commons_1.getLayerArn(config, constants_1.EXTENSION_LAYER_KEY, region) + ':11';
|
|
53
|
+
layerARNs = commons_1.addLayerArn(fullLambdaLibraryLayerArn, lambdaLibraryLayerName, layerARNs);
|
|
54
|
+
layerARNs = commons_1.addLayerArn(fullExtensionLayerArn, constants_1.DD_LAMBDA_EXTENSION_LAYER_NAME, layerARNs);
|
|
55
|
+
expect(layerARNs).toEqual([
|
|
56
|
+
'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Python39-ARM:49',
|
|
57
|
+
'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Extension-ARM:11',
|
|
58
|
+
]);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
18
61
|
describe('collectFunctionsByRegion', () => {
|
|
19
62
|
test('groups functions with region read from arn', () => {
|
|
20
63
|
process.env = {};
|
|
@@ -87,6 +130,128 @@ describe('commons', () => {
|
|
|
87
130
|
expect(functionsGroup).toBeUndefined();
|
|
88
131
|
});
|
|
89
132
|
});
|
|
133
|
+
describe('getLayerArn', () => {
|
|
134
|
+
const OLD_ENV = process.env;
|
|
135
|
+
beforeEach(() => {
|
|
136
|
+
jest.resetModules();
|
|
137
|
+
process.env = {};
|
|
138
|
+
});
|
|
139
|
+
afterAll(() => {
|
|
140
|
+
process.env = OLD_ENV;
|
|
141
|
+
});
|
|
142
|
+
test('gets sa-east-1 Lambda Extension layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
143
|
+
const settings = {
|
|
144
|
+
flushMetricsToLogs: false,
|
|
145
|
+
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
146
|
+
mergeXrayTraces: false,
|
|
147
|
+
tracingEnabled: false,
|
|
148
|
+
};
|
|
149
|
+
const region = 'sa-east-1';
|
|
150
|
+
const layerArn = commons_1.getLayerArn({}, constants_1.EXTENSION_LAYER_KEY, region, settings);
|
|
151
|
+
expect(layerArn).toEqual(`arn:aws:lambda:${region}:${fixtures_1.mockAwsAccount}:layer:Datadog-Extension`);
|
|
152
|
+
}));
|
|
153
|
+
test('gets sa-east-1 arm64 Lambda Extension layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
154
|
+
const config = {
|
|
155
|
+
Architectures: ['arm64'],
|
|
156
|
+
};
|
|
157
|
+
const settings = {
|
|
158
|
+
flushMetricsToLogs: false,
|
|
159
|
+
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
160
|
+
mergeXrayTraces: false,
|
|
161
|
+
tracingEnabled: false,
|
|
162
|
+
};
|
|
163
|
+
const region = 'sa-east-1';
|
|
164
|
+
const layerArn = commons_1.getLayerArn(config, constants_1.EXTENSION_LAYER_KEY, region, settings);
|
|
165
|
+
expect(layerArn).toEqual(`arn:aws:lambda:${region}:${fixtures_1.mockAwsAccount}:layer:Datadog-Extension-ARM`);
|
|
166
|
+
}));
|
|
167
|
+
test('gets us-gov-1 gov cloud Lambda Extension layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
168
|
+
const settings = {
|
|
169
|
+
flushMetricsToLogs: false,
|
|
170
|
+
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
171
|
+
mergeXrayTraces: false,
|
|
172
|
+
tracingEnabled: false,
|
|
173
|
+
};
|
|
174
|
+
const region = 'us-gov-1';
|
|
175
|
+
const layerArn = commons_1.getLayerArn({}, constants_1.EXTENSION_LAYER_KEY, region, settings);
|
|
176
|
+
expect(layerArn).toEqual(`arn:aws-us-gov:lambda:${region}:${constants_1.GOVCLOUD_LAYER_AWS_ACCOUNT}:layer:Datadog-Extension`);
|
|
177
|
+
}));
|
|
178
|
+
test('gets us-gov-1 gov cloud arm64 Lambda Extension layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
179
|
+
const config = {
|
|
180
|
+
Architectures: ['arm64'],
|
|
181
|
+
};
|
|
182
|
+
const settings = {
|
|
183
|
+
flushMetricsToLogs: false,
|
|
184
|
+
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
185
|
+
mergeXrayTraces: false,
|
|
186
|
+
tracingEnabled: false,
|
|
187
|
+
};
|
|
188
|
+
const region = 'us-gov-1';
|
|
189
|
+
const layerArn = commons_1.getLayerArn(config, constants_1.EXTENSION_LAYER_KEY, region, settings);
|
|
190
|
+
expect(layerArn).toEqual(`arn:aws-us-gov:lambda:${region}:${constants_1.GOVCLOUD_LAYER_AWS_ACCOUNT}:layer:Datadog-Extension-ARM`);
|
|
191
|
+
}));
|
|
192
|
+
test('gets sa-east-1 Node12 Lambda Library layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
193
|
+
const runtime = 'nodejs12.x';
|
|
194
|
+
const config = {
|
|
195
|
+
Runtime: runtime,
|
|
196
|
+
};
|
|
197
|
+
const settings = {
|
|
198
|
+
flushMetricsToLogs: false,
|
|
199
|
+
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
200
|
+
mergeXrayTraces: false,
|
|
201
|
+
tracingEnabled: false,
|
|
202
|
+
};
|
|
203
|
+
const region = 'sa-east-1';
|
|
204
|
+
const layerArn = commons_1.getLayerArn(config, config.Runtime, region, settings);
|
|
205
|
+
expect(layerArn).toEqual(`arn:aws:lambda:${region}:${fixtures_1.mockAwsAccount}:layer:Datadog-Node12-x`);
|
|
206
|
+
}));
|
|
207
|
+
test('gets sa-east-1 Python3.9 arm64 Lambda Library layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
208
|
+
const runtime = 'python3.9';
|
|
209
|
+
const config = {
|
|
210
|
+
Architectures: ['arm64'],
|
|
211
|
+
Runtime: runtime,
|
|
212
|
+
};
|
|
213
|
+
const settings = {
|
|
214
|
+
flushMetricsToLogs: false,
|
|
215
|
+
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
216
|
+
mergeXrayTraces: false,
|
|
217
|
+
tracingEnabled: false,
|
|
218
|
+
};
|
|
219
|
+
const region = 'sa-east-1';
|
|
220
|
+
const layerArn = commons_1.getLayerArn(config, config.Runtime, region, settings);
|
|
221
|
+
expect(layerArn).toEqual(`arn:aws:lambda:${region}:${fixtures_1.mockAwsAccount}:layer:Datadog-Python39-ARM`);
|
|
222
|
+
}));
|
|
223
|
+
test('gets us-gov-1 Python37 gov cloud Lambda Library layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
224
|
+
const runtime = 'python3.7';
|
|
225
|
+
const config = {
|
|
226
|
+
Runtime: runtime,
|
|
227
|
+
};
|
|
228
|
+
const settings = {
|
|
229
|
+
flushMetricsToLogs: false,
|
|
230
|
+
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
231
|
+
mergeXrayTraces: false,
|
|
232
|
+
tracingEnabled: false,
|
|
233
|
+
};
|
|
234
|
+
const region = 'us-gov-1';
|
|
235
|
+
const layerArn = commons_1.getLayerArn(config, config.Runtime, region, settings);
|
|
236
|
+
expect(layerArn).toEqual(`arn:aws-us-gov:lambda:${region}:${constants_1.GOVCLOUD_LAYER_AWS_ACCOUNT}:layer:Datadog-Python37`);
|
|
237
|
+
}));
|
|
238
|
+
test('gets us-gov-1 Python39 gov cloud arm64 Lambda Library layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
239
|
+
const runtime = 'python3.9';
|
|
240
|
+
const config = {
|
|
241
|
+
Architectures: ['arm64'],
|
|
242
|
+
Runtime: runtime,
|
|
243
|
+
};
|
|
244
|
+
const settings = {
|
|
245
|
+
flushMetricsToLogs: false,
|
|
246
|
+
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
247
|
+
mergeXrayTraces: false,
|
|
248
|
+
tracingEnabled: false,
|
|
249
|
+
};
|
|
250
|
+
const region = 'us-gov-1';
|
|
251
|
+
const layerArn = commons_1.getLayerArn(config, config.Runtime, region, settings);
|
|
252
|
+
expect(layerArn).toEqual(`arn:aws-us-gov:lambda:${region}:${constants_1.GOVCLOUD_LAYER_AWS_ACCOUNT}:layer:Datadog-Python39-ARM`);
|
|
253
|
+
}));
|
|
254
|
+
});
|
|
90
255
|
describe('getRegion', () => {
|
|
91
256
|
test('should return the expected region', () => {
|
|
92
257
|
const functionARN = 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world';
|
|
@@ -44,10 +44,12 @@ describe('instrument', () => {
|
|
|
44
44
|
process.env = OLD_ENV;
|
|
45
45
|
});
|
|
46
46
|
test('calculates an update request with just lambda library layers', () => {
|
|
47
|
+
const runtime = 'nodejs12.x';
|
|
47
48
|
const config = {
|
|
48
49
|
FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
|
|
49
50
|
Handler: 'index.handler',
|
|
50
51
|
Layers: [],
|
|
52
|
+
Runtime: runtime,
|
|
51
53
|
};
|
|
52
54
|
const settings = {
|
|
53
55
|
flushMetricsToLogs: false,
|
|
@@ -56,10 +58,8 @@ describe('instrument', () => {
|
|
|
56
58
|
mergeXrayTraces: false,
|
|
57
59
|
tracingEnabled: false,
|
|
58
60
|
};
|
|
59
|
-
const
|
|
60
|
-
const
|
|
61
|
-
const runtime = 'nodejs12.x';
|
|
62
|
-
const updateRequest = instrument_1.calculateUpdateRequest(config, settings, lambdaLibraryLayerArn, lambdaExtensionLayerArn, runtime);
|
|
61
|
+
const region = 'sa-east-1';
|
|
62
|
+
const updateRequest = instrument_1.calculateUpdateRequest(config, settings, region, runtime);
|
|
63
63
|
expect(updateRequest).toMatchInlineSnapshot(`
|
|
64
64
|
Object {
|
|
65
65
|
"Environment": Object {
|
|
@@ -77,14 +77,53 @@ describe('instrument', () => {
|
|
|
77
77
|
"arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Node12-x:5",
|
|
78
78
|
],
|
|
79
79
|
}
|
|
80
|
+
`);
|
|
81
|
+
});
|
|
82
|
+
test('calculates an update request with just lambda library layers in arm architecture', () => {
|
|
83
|
+
const runtime = 'python3.9';
|
|
84
|
+
const config = {
|
|
85
|
+
Architectures: ['arm64'],
|
|
86
|
+
FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
|
|
87
|
+
Handler: 'handler.hello',
|
|
88
|
+
Layers: [],
|
|
89
|
+
Runtime: runtime,
|
|
90
|
+
};
|
|
91
|
+
const settings = {
|
|
92
|
+
flushMetricsToLogs: false,
|
|
93
|
+
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
94
|
+
layerVersion: 11,
|
|
95
|
+
mergeXrayTraces: false,
|
|
96
|
+
tracingEnabled: false,
|
|
97
|
+
};
|
|
98
|
+
const region = 'sa-east-1';
|
|
99
|
+
const updateRequest = instrument_1.calculateUpdateRequest(config, settings, region, runtime);
|
|
100
|
+
expect(updateRequest).toMatchInlineSnapshot(`
|
|
101
|
+
Object {
|
|
102
|
+
"Environment": Object {
|
|
103
|
+
"Variables": Object {
|
|
104
|
+
"DD_FLUSH_TO_LOG": "false",
|
|
105
|
+
"DD_LAMBDA_HANDLER": "handler.hello",
|
|
106
|
+
"DD_MERGE_XRAY_TRACES": "false",
|
|
107
|
+
"DD_SITE": "datadoghq.com",
|
|
108
|
+
"DD_TRACE_ENABLED": "false",
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
"FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
|
|
112
|
+
"Handler": "datadog_lambda.handler.handler",
|
|
113
|
+
"Layers": Array [
|
|
114
|
+
"arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Python39-ARM:11",
|
|
115
|
+
],
|
|
116
|
+
}
|
|
80
117
|
`);
|
|
81
118
|
});
|
|
82
119
|
test('calculates an update request with a lambda library, extension, and DATADOG_API_KEY', () => {
|
|
83
|
-
process.env.
|
|
120
|
+
process.env[constants_1.CI_API_KEY_ENV_VAR] = '1234';
|
|
121
|
+
const runtime = 'nodejs12.x';
|
|
84
122
|
const config = {
|
|
85
123
|
FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
|
|
86
124
|
Handler: 'index.handler',
|
|
87
125
|
Layers: [],
|
|
126
|
+
Runtime: runtime,
|
|
88
127
|
};
|
|
89
128
|
const settings = {
|
|
90
129
|
extensionVersion: 6,
|
|
@@ -94,10 +133,8 @@ describe('instrument', () => {
|
|
|
94
133
|
mergeXrayTraces: false,
|
|
95
134
|
tracingEnabled: false,
|
|
96
135
|
};
|
|
97
|
-
const
|
|
98
|
-
const
|
|
99
|
-
const runtime = 'nodejs12.x';
|
|
100
|
-
const updateRequest = instrument_1.calculateUpdateRequest(config, settings, lambdaLibraryLayerArn, lambdaExtensionLayerArn, runtime);
|
|
136
|
+
const region = 'sa-east-1';
|
|
137
|
+
const updateRequest = instrument_1.calculateUpdateRequest(config, settings, region, runtime);
|
|
101
138
|
expect(updateRequest).toMatchInlineSnapshot(`
|
|
102
139
|
Object {
|
|
103
140
|
"Environment": Object {
|
|
@@ -117,14 +154,56 @@ describe('instrument', () => {
|
|
|
117
154
|
"arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Node12-x:5",
|
|
118
155
|
],
|
|
119
156
|
}
|
|
157
|
+
`);
|
|
158
|
+
});
|
|
159
|
+
test('calculates an update request with a lambda library, extension, and DATADOG_API_KEY_SECRET_ARN', () => {
|
|
160
|
+
process.env[constants_1.CI_API_KEY_SECRET_ARN_ENV_VAR] = 'some-secret:arn:from:aws';
|
|
161
|
+
const runtime = 'python3.9';
|
|
162
|
+
const config = {
|
|
163
|
+
FunctionArn: 'arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world',
|
|
164
|
+
Handler: 'index.handler',
|
|
165
|
+
Layers: [],
|
|
166
|
+
Runtime: runtime,
|
|
167
|
+
};
|
|
168
|
+
const settings = {
|
|
169
|
+
extensionVersion: 11,
|
|
170
|
+
flushMetricsToLogs: false,
|
|
171
|
+
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
172
|
+
layerVersion: 49,
|
|
173
|
+
mergeXrayTraces: false,
|
|
174
|
+
tracingEnabled: false,
|
|
175
|
+
};
|
|
176
|
+
const region = 'sa-east-1';
|
|
177
|
+
const updateRequest = instrument_1.calculateUpdateRequest(config, settings, region, runtime);
|
|
178
|
+
expect(updateRequest).toMatchInlineSnapshot(`
|
|
179
|
+
Object {
|
|
180
|
+
"Environment": Object {
|
|
181
|
+
"Variables": Object {
|
|
182
|
+
"DD_API_KEY_SECRET_ARN": "some-secret:arn:from:aws",
|
|
183
|
+
"DD_FLUSH_TO_LOG": "false",
|
|
184
|
+
"DD_LAMBDA_HANDLER": "index.handler",
|
|
185
|
+
"DD_MERGE_XRAY_TRACES": "false",
|
|
186
|
+
"DD_SITE": "datadoghq.com",
|
|
187
|
+
"DD_TRACE_ENABLED": "false",
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
"FunctionName": "arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world",
|
|
191
|
+
"Handler": "datadog_lambda.handler.handler",
|
|
192
|
+
"Layers": Array [
|
|
193
|
+
"arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Extension:11",
|
|
194
|
+
"arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Python39:49",
|
|
195
|
+
],
|
|
196
|
+
}
|
|
120
197
|
`);
|
|
121
198
|
});
|
|
122
199
|
test('calculates an update request with a lambda library, extension, and DATADOG_KMS_API_KEY', () => {
|
|
123
|
-
process.env.
|
|
200
|
+
process.env[constants_1.CI_KMS_API_KEY_ENV_VAR] = '5678';
|
|
201
|
+
const runtime = 'python3.6';
|
|
124
202
|
const config = {
|
|
125
203
|
FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
|
|
126
204
|
Handler: 'index.handler',
|
|
127
205
|
Layers: [],
|
|
206
|
+
Runtime: runtime,
|
|
128
207
|
};
|
|
129
208
|
const settings = {
|
|
130
209
|
extensionVersion: 6,
|
|
@@ -134,10 +213,8 @@ describe('instrument', () => {
|
|
|
134
213
|
mergeXrayTraces: false,
|
|
135
214
|
tracingEnabled: false,
|
|
136
215
|
};
|
|
137
|
-
const
|
|
138
|
-
const
|
|
139
|
-
const runtime = 'python3.6';
|
|
140
|
-
const updateRequest = instrument_1.calculateUpdateRequest(config, settings, lambdaLibraryLayerArn, lambdaExtensionLayerArn, runtime);
|
|
216
|
+
const region = 'sa-east-1';
|
|
217
|
+
const updateRequest = instrument_1.calculateUpdateRequest(config, settings, region, runtime);
|
|
141
218
|
expect(updateRequest).toMatchInlineSnapshot(`
|
|
142
219
|
Object {
|
|
143
220
|
"Environment": Object {
|
|
@@ -157,13 +234,43 @@ describe('instrument', () => {
|
|
|
157
234
|
"arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Python36:5",
|
|
158
235
|
],
|
|
159
236
|
}
|
|
237
|
+
`);
|
|
238
|
+
});
|
|
239
|
+
test('prioritizes the KMS API KEY when all of them are exported', () => {
|
|
240
|
+
process.env = {
|
|
241
|
+
[constants_1.CI_API_KEY_ENV_VAR]: '1234',
|
|
242
|
+
[constants_1.CI_API_KEY_SECRET_ARN_ENV_VAR]: '5678',
|
|
243
|
+
[constants_1.CI_KMS_API_KEY_ENV_VAR]: 'should-be-selected',
|
|
244
|
+
};
|
|
245
|
+
const config = {
|
|
246
|
+
FunctionArn: 'arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world',
|
|
247
|
+
Handler: 'index.handler',
|
|
248
|
+
Layers: [],
|
|
249
|
+
};
|
|
250
|
+
const runtime = 'python3.9';
|
|
251
|
+
const region = 'sa-east-1';
|
|
252
|
+
const updateRequest = instrument_1.calculateUpdateRequest(config, {}, region, runtime);
|
|
253
|
+
expect(updateRequest).toMatchInlineSnapshot(`
|
|
254
|
+
Object {
|
|
255
|
+
"Environment": Object {
|
|
256
|
+
"Variables": Object {
|
|
257
|
+
"DD_KMS_API_KEY": "should-be-selected",
|
|
258
|
+
"DD_LAMBDA_HANDLER": "index.handler",
|
|
259
|
+
"DD_SITE": "datadoghq.com",
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
"FunctionName": "arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world",
|
|
263
|
+
"Handler": "datadog_lambda.handler.handler",
|
|
264
|
+
}
|
|
160
265
|
`);
|
|
161
266
|
});
|
|
162
267
|
test('by default calculates an update request with DATADOG_SITE being set to datadoghq.com', () => {
|
|
268
|
+
const runtime = 'python3.6';
|
|
163
269
|
const config = {
|
|
164
270
|
FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
|
|
165
271
|
Handler: 'index.handler',
|
|
166
272
|
Layers: [],
|
|
273
|
+
Runtime: runtime,
|
|
167
274
|
};
|
|
168
275
|
const settings = {
|
|
169
276
|
flushMetricsToLogs: false,
|
|
@@ -171,10 +278,8 @@ describe('instrument', () => {
|
|
|
171
278
|
mergeXrayTraces: false,
|
|
172
279
|
tracingEnabled: false,
|
|
173
280
|
};
|
|
174
|
-
const
|
|
175
|
-
const
|
|
176
|
-
const runtime = 'python3.6';
|
|
177
|
-
const updateRequest = instrument_1.calculateUpdateRequest(config, settings, lambdaLibraryLayerArn, lambdaExtensionLayerArn, runtime);
|
|
281
|
+
const region = 'sa-east-1';
|
|
282
|
+
const updateRequest = instrument_1.calculateUpdateRequest(config, settings, region, runtime);
|
|
178
283
|
expect(updateRequest).toMatchInlineSnapshot(`
|
|
179
284
|
Object {
|
|
180
285
|
"Environment": Object {
|
|
@@ -204,10 +309,9 @@ describe('instrument', () => {
|
|
|
204
309
|
mergeXrayTraces: false,
|
|
205
310
|
tracingEnabled: false,
|
|
206
311
|
};
|
|
207
|
-
const
|
|
208
|
-
const lambdaExtensionLayerArn = `arn:aws:lambda:sa-east-1:${fixtures_1.mockAwsAccount}:layer:Datadog-Extension`;
|
|
312
|
+
const region = 'sa-east-1';
|
|
209
313
|
const runtime = 'python3.6';
|
|
210
|
-
const updateRequest = instrument_1.calculateUpdateRequest(config, settings,
|
|
314
|
+
const updateRequest = instrument_1.calculateUpdateRequest(config, settings, region, runtime);
|
|
211
315
|
expect(updateRequest).toMatchInlineSnapshot(`
|
|
212
316
|
Object {
|
|
213
317
|
"Environment": Object {
|
|
@@ -238,11 +342,10 @@ describe('instrument', () => {
|
|
|
238
342
|
mergeXrayTraces: false,
|
|
239
343
|
tracingEnabled: false,
|
|
240
344
|
};
|
|
241
|
-
const
|
|
242
|
-
const lambdaExtensionLayerArn = `arn:aws:lambda:sa-east-1:${fixtures_1.mockAwsAccount}:layer:Datadog-Extension`;
|
|
345
|
+
const region = 'us-east-1';
|
|
243
346
|
const runtime = 'python3.6';
|
|
244
347
|
expect(() => {
|
|
245
|
-
instrument_1.calculateUpdateRequest(config, settings,
|
|
348
|
+
instrument_1.calculateUpdateRequest(config, settings, region, runtime);
|
|
246
349
|
}).toThrowError('Warning: Invalid site URL. Must be either datadoghq.com, datadoghq.eu, us3.datadoghq.com, or ddog-gov.com.');
|
|
247
350
|
});
|
|
248
351
|
test('throws an error when neither DATADOG_API_KEY nor DATADOG_KMS_API_KEY are given through the environment while using extensionVersion', () => {
|
|
@@ -259,45 +362,33 @@ describe('instrument', () => {
|
|
|
259
362
|
mergeXrayTraces: false,
|
|
260
363
|
tracingEnabled: false,
|
|
261
364
|
};
|
|
262
|
-
const
|
|
263
|
-
const lambdaExtensionLayerArn = `arn:aws:lambda:sa-east-1:${fixtures_1.mockAwsAccount}:layer:Datadog-Extension`;
|
|
365
|
+
const region = 'us-east-1';
|
|
264
366
|
const runtime = 'python3.6';
|
|
265
367
|
expect(() => {
|
|
266
|
-
instrument_1.calculateUpdateRequest(config, settings,
|
|
267
|
-
}).toThrowError("When 'extensionLayer' is set, DATADOG_API_KEY or
|
|
368
|
+
instrument_1.calculateUpdateRequest(config, settings, region, runtime);
|
|
369
|
+
}).toThrowError("When 'extensionLayer' is set, DATADOG_API_KEY, DATADOG_KMS_API_KEY, or DATADOG_API_KEY_SECRET_ARN must also be set");
|
|
268
370
|
});
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
});
|
|
279
|
-
test('gets sa-east-1 Lambda Extension layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
280
|
-
const settings = {
|
|
281
|
-
flushMetricsToLogs: false,
|
|
282
|
-
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
283
|
-
mergeXrayTraces: false,
|
|
284
|
-
tracingEnabled: false,
|
|
371
|
+
test('throws error when trying to add `DD_API_KEY_SECRET_ARN` while using sync metrics in a node runtime', () => {
|
|
372
|
+
process.env[constants_1.CI_API_KEY_SECRET_ARN_ENV_VAR] = 'some-secret:arn:from:aws';
|
|
373
|
+
const runtime = 'nodejs14.x';
|
|
374
|
+
const region = 'us-east-1';
|
|
375
|
+
const config = {
|
|
376
|
+
FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
|
|
377
|
+
Handler: 'index.handler',
|
|
378
|
+
Layers: [],
|
|
379
|
+
Runtime: runtime,
|
|
285
380
|
};
|
|
286
|
-
const region = 'sa-east-1';
|
|
287
|
-
const layerArn = instrument_1.getExtensionArn(settings, region);
|
|
288
|
-
expect(layerArn).toEqual(`arn:aws:lambda:${region}:${fixtures_1.mockAwsAccount}:layer:Datadog-Extension`);
|
|
289
|
-
}));
|
|
290
|
-
test('gets sa-east-1 gov cloud Lambda Extension layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
291
381
|
const settings = {
|
|
292
382
|
flushMetricsToLogs: false,
|
|
293
383
|
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
384
|
+
layerVersion: 13,
|
|
294
385
|
mergeXrayTraces: false,
|
|
295
386
|
tracingEnabled: false,
|
|
296
387
|
};
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
})
|
|
388
|
+
expect(() => {
|
|
389
|
+
instrument_1.calculateUpdateRequest(config, settings, region, runtime);
|
|
390
|
+
}).toThrowError('`apiKeySecretArn` is not supported for Node runtimes when using Synchronous Metrics. Use either `apiKey` or `apiKmsKey`.');
|
|
391
|
+
});
|
|
301
392
|
});
|
|
302
393
|
describe('getFunctionConfig', () => {
|
|
303
394
|
const OLD_ENV = process.env;
|
|
@@ -610,38 +701,4 @@ describe('instrument', () => {
|
|
|
610
701
|
yield expect(instrument_1.getLambdaConfigsFromRegEx(lambda, cloudWatch, 'us-east-1', 'fake-pattern', settings)).rejects.toStrictEqual(new Error('Max retry count exceeded.'));
|
|
611
702
|
}));
|
|
612
703
|
});
|
|
613
|
-
describe('getLayerArn', () => {
|
|
614
|
-
const OLD_ENV = process.env;
|
|
615
|
-
beforeEach(() => {
|
|
616
|
-
jest.resetModules();
|
|
617
|
-
process.env = {};
|
|
618
|
-
});
|
|
619
|
-
afterAll(() => {
|
|
620
|
-
process.env = OLD_ENV;
|
|
621
|
-
});
|
|
622
|
-
test('gets sa-east-1 Node12 Lambda Library layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
623
|
-
const runtime = 'nodejs12.x';
|
|
624
|
-
const settings = {
|
|
625
|
-
flushMetricsToLogs: false,
|
|
626
|
-
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
627
|
-
mergeXrayTraces: false,
|
|
628
|
-
tracingEnabled: false,
|
|
629
|
-
};
|
|
630
|
-
const region = 'sa-east-1';
|
|
631
|
-
const layerArn = instrument_1.getLayerArn(runtime, settings, region);
|
|
632
|
-
expect(layerArn).toEqual(`arn:aws:lambda:${region}:${fixtures_1.mockAwsAccount}:layer:Datadog-Node12-x`);
|
|
633
|
-
}));
|
|
634
|
-
test('gets sa-east-1 Python37 gov cloud Lambda Library layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
635
|
-
const runtime = 'python3.7';
|
|
636
|
-
const settings = {
|
|
637
|
-
flushMetricsToLogs: false,
|
|
638
|
-
layerAWSAccount: fixtures_1.mockAwsAccount,
|
|
639
|
-
mergeXrayTraces: false,
|
|
640
|
-
tracingEnabled: false,
|
|
641
|
-
};
|
|
642
|
-
const region = 'us-gov-1';
|
|
643
|
-
const layerArn = instrument_1.getLayerArn(runtime, settings, region);
|
|
644
|
-
expect(layerArn).toEqual(`arn:aws-us-gov:lambda:${region}:${constants_1.GOVCLOUD_LAYER_AWS_ACCOUNT}:layer:Datadog-Python37`);
|
|
645
|
-
}));
|
|
646
|
-
});
|
|
647
704
|
});
|
|
@@ -49,6 +49,7 @@ describe('uninstrument', () => {
|
|
|
49
49
|
'arn:aws:lambda:us-east-1:000000000000:function:uninstrument': {
|
|
50
50
|
Environment: {
|
|
51
51
|
Variables: {
|
|
52
|
+
[constants_1.API_KEY_SECRET_ARN_ENV_VAR]: 'some-secret:arn:from:aws',
|
|
52
53
|
[constants_1.ENVIRONMENT_ENV_VAR]: 'staging',
|
|
53
54
|
[constants_1.FLUSH_TO_LOG_ENV_VAR]: 'true',
|
|
54
55
|
[constants_1.LAMBDA_HANDLER_ENV_VAR]: 'lambda_function.lambda_handler',
|
|
@@ -52,6 +52,7 @@ describe('uninstrument', () => {
|
|
|
52
52
|
fs.readFile.mockImplementation((a, b, callback) => callback({ code: 'ENOENT' }));
|
|
53
53
|
aws_sdk_1.Lambda.mockImplementation(() => fixtures_1.makeMockLambda({
|
|
54
54
|
'arn:aws:lambda:us-east-1:000000000000:function:uninstrument': {
|
|
55
|
+
Architectures: ['x86_64'],
|
|
55
56
|
Environment: {
|
|
56
57
|
Variables: {
|
|
57
58
|
[constants_1.ENVIRONMENT_ENV_VAR]: 'staging',
|
|
@@ -1,19 +1,28 @@
|
|
|
1
|
+
export declare const DD_LAMBDA_EXTENSION_LAYER_NAME = "Datadog-Extension";
|
|
2
|
+
export declare const EXTENSION_LAYER_KEY = "extension";
|
|
1
3
|
export declare const RUNTIME_LAYER_LOOKUP: {
|
|
2
|
-
readonly
|
|
4
|
+
readonly extension: "Datadog-Extension";
|
|
3
5
|
readonly 'nodejs12.x': "Datadog-Node12-x";
|
|
4
6
|
readonly 'nodejs14.x': "Datadog-Node14-x";
|
|
5
|
-
readonly 'python2.7': "Datadog-Python27";
|
|
6
7
|
readonly 'python3.6': "Datadog-Python36";
|
|
7
8
|
readonly 'python3.7': "Datadog-Python37";
|
|
8
9
|
readonly 'python3.8': "Datadog-Python38";
|
|
9
10
|
readonly 'python3.9': "Datadog-Python39";
|
|
10
11
|
};
|
|
11
|
-
export declare type Runtime = keyof typeof RUNTIME_LAYER_LOOKUP
|
|
12
|
+
export declare type Runtime = Exclude<keyof typeof RUNTIME_LAYER_LOOKUP, typeof EXTENSION_LAYER_KEY>;
|
|
13
|
+
export declare const ARM_RUNTIMES: string[];
|
|
14
|
+
export declare const ARM64_ARCHITECTURE = "arm64";
|
|
15
|
+
export declare const ARM_LAYER_SUFFIX = "-ARM";
|
|
16
|
+
export declare enum RuntimeType {
|
|
17
|
+
NODE = 0,
|
|
18
|
+
PYTHON = 1
|
|
19
|
+
}
|
|
20
|
+
export declare const RUNTIME_LOOKUP: {
|
|
21
|
+
[key: string]: RuntimeType;
|
|
22
|
+
};
|
|
12
23
|
export declare const HANDLER_LOCATION: {
|
|
13
|
-
'nodejs10.x': string;
|
|
14
24
|
'nodejs12.x': string;
|
|
15
25
|
'nodejs14.x': string;
|
|
16
|
-
'python2.7': string;
|
|
17
26
|
'python3.6': string;
|
|
18
27
|
'python3.7': string;
|
|
19
28
|
'python3.8': string;
|
|
@@ -23,8 +32,8 @@ export declare const DEFAULT_LAYER_AWS_ACCOUNT = "464622532012";
|
|
|
23
32
|
export declare const GOVCLOUD_LAYER_AWS_ACCOUNT = "002406178527";
|
|
24
33
|
export declare const SUBSCRIPTION_FILTER_NAME = "datadog-ci-filter";
|
|
25
34
|
export declare const TAG_VERSION_NAME = "dd_sls_ci";
|
|
26
|
-
export declare const DD_LAMBDA_EXTENSION_LAYER_NAME = "Datadog-Extension";
|
|
27
35
|
export declare const API_KEY_ENV_VAR = "DD_API_KEY";
|
|
36
|
+
export declare const API_KEY_SECRET_ARN_ENV_VAR = "DD_API_KEY_SECRET_ARN";
|
|
28
37
|
export declare const KMS_API_KEY_ENV_VAR = "DD_KMS_API_KEY";
|
|
29
38
|
export declare const SITE_ENV_VAR = "DD_SITE";
|
|
30
39
|
export declare const TRACE_ENABLED_ENV_VAR = "DD_TRACE_ENABLED";
|
|
@@ -38,6 +47,7 @@ export declare const ENVIRONMENT_ENV_VAR = "DD_ENV";
|
|
|
38
47
|
export declare const EXTRA_TAGS_ENV_VAR = "DD_TAGS";
|
|
39
48
|
export declare const CI_SITE_ENV_VAR = "DATADOG_SITE";
|
|
40
49
|
export declare const CI_API_KEY_ENV_VAR = "DATADOG_API_KEY";
|
|
50
|
+
export declare const CI_API_KEY_SECRET_ARN_ENV_VAR = "DATADOG_API_KEY_SECRET_ARN";
|
|
41
51
|
export declare const CI_KMS_API_KEY_ENV_VAR = "DATADOG_KMS_API_KEY";
|
|
42
52
|
export declare const LIST_FUNCTIONS_MAX_RETRY_COUNT = 2;
|
|
43
53
|
export declare const MAX_LAMBDA_STATE_CHECK_ATTEMPTS = 3;
|
|
@@ -1,23 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EXTRA_TAGS_REG_EXP = exports.MAX_LAMBDA_STATE_CHECK_ATTEMPTS = exports.LIST_FUNCTIONS_MAX_RETRY_COUNT = exports.CI_KMS_API_KEY_ENV_VAR = exports.CI_API_KEY_ENV_VAR = exports.CI_SITE_ENV_VAR = exports.EXTRA_TAGS_ENV_VAR = exports.ENVIRONMENT_ENV_VAR = exports.VERSION_ENV_VAR = exports.SERVICE_ENV_VAR = exports.LAMBDA_HANDLER_ENV_VAR = exports.LOG_LEVEL_ENV_VAR = exports.FLUSH_TO_LOG_ENV_VAR = exports.MERGE_XRAY_TRACES_ENV_VAR = exports.TRACE_ENABLED_ENV_VAR = exports.SITE_ENV_VAR = exports.KMS_API_KEY_ENV_VAR = exports.
|
|
3
|
+
exports.EXTRA_TAGS_REG_EXP = exports.MAX_LAMBDA_STATE_CHECK_ATTEMPTS = exports.LIST_FUNCTIONS_MAX_RETRY_COUNT = exports.CI_KMS_API_KEY_ENV_VAR = exports.CI_API_KEY_SECRET_ARN_ENV_VAR = exports.CI_API_KEY_ENV_VAR = exports.CI_SITE_ENV_VAR = exports.EXTRA_TAGS_ENV_VAR = exports.ENVIRONMENT_ENV_VAR = exports.VERSION_ENV_VAR = exports.SERVICE_ENV_VAR = exports.LAMBDA_HANDLER_ENV_VAR = exports.LOG_LEVEL_ENV_VAR = exports.FLUSH_TO_LOG_ENV_VAR = exports.MERGE_XRAY_TRACES_ENV_VAR = exports.TRACE_ENABLED_ENV_VAR = exports.SITE_ENV_VAR = exports.KMS_API_KEY_ENV_VAR = exports.API_KEY_SECRET_ARN_ENV_VAR = exports.API_KEY_ENV_VAR = exports.TAG_VERSION_NAME = exports.SUBSCRIPTION_FILTER_NAME = exports.GOVCLOUD_LAYER_AWS_ACCOUNT = exports.DEFAULT_LAYER_AWS_ACCOUNT = exports.HANDLER_LOCATION = exports.RUNTIME_LOOKUP = exports.RuntimeType = exports.ARM_LAYER_SUFFIX = exports.ARM64_ARCHITECTURE = exports.ARM_RUNTIMES = exports.RUNTIME_LAYER_LOOKUP = exports.EXTENSION_LAYER_KEY = exports.DD_LAMBDA_EXTENSION_LAYER_NAME = void 0;
|
|
4
|
+
exports.DD_LAMBDA_EXTENSION_LAYER_NAME = 'Datadog-Extension';
|
|
5
|
+
exports.EXTENSION_LAYER_KEY = 'extension';
|
|
4
6
|
exports.RUNTIME_LAYER_LOOKUP = {
|
|
5
|
-
|
|
7
|
+
[exports.EXTENSION_LAYER_KEY]: exports.DD_LAMBDA_EXTENSION_LAYER_NAME,
|
|
6
8
|
'nodejs12.x': 'Datadog-Node12-x',
|
|
7
9
|
'nodejs14.x': 'Datadog-Node14-x',
|
|
8
|
-
'python2.7': 'Datadog-Python27',
|
|
9
10
|
'python3.6': 'Datadog-Python36',
|
|
10
11
|
'python3.7': 'Datadog-Python37',
|
|
11
12
|
'python3.8': 'Datadog-Python38',
|
|
12
13
|
'python3.9': 'Datadog-Python39',
|
|
13
14
|
};
|
|
15
|
+
exports.ARM_RUNTIMES = [exports.EXTENSION_LAYER_KEY, 'python3.8', 'python3.9'];
|
|
16
|
+
exports.ARM64_ARCHITECTURE = 'arm64';
|
|
17
|
+
exports.ARM_LAYER_SUFFIX = '-ARM';
|
|
18
|
+
var RuntimeType;
|
|
19
|
+
(function (RuntimeType) {
|
|
20
|
+
RuntimeType[RuntimeType["NODE"] = 0] = "NODE";
|
|
21
|
+
RuntimeType[RuntimeType["PYTHON"] = 1] = "PYTHON";
|
|
22
|
+
})(RuntimeType = exports.RuntimeType || (exports.RuntimeType = {}));
|
|
23
|
+
exports.RUNTIME_LOOKUP = {
|
|
24
|
+
'nodejs12.x': RuntimeType.NODE,
|
|
25
|
+
'nodejs14.x': RuntimeType.NODE,
|
|
26
|
+
'python3.6': RuntimeType.PYTHON,
|
|
27
|
+
'python3.7': RuntimeType.PYTHON,
|
|
28
|
+
'python3.8': RuntimeType.PYTHON,
|
|
29
|
+
'python3.9': RuntimeType.PYTHON,
|
|
30
|
+
};
|
|
14
31
|
const PYTHON_HANDLER_LOCATION = 'datadog_lambda.handler.handler';
|
|
15
32
|
const NODE_HANDLER_LOCATION = '/opt/nodejs/node_modules/datadog-lambda-js/handler.handler';
|
|
16
33
|
exports.HANDLER_LOCATION = {
|
|
17
|
-
'nodejs10.x': NODE_HANDLER_LOCATION,
|
|
18
34
|
'nodejs12.x': NODE_HANDLER_LOCATION,
|
|
19
35
|
'nodejs14.x': NODE_HANDLER_LOCATION,
|
|
20
|
-
'python2.7': PYTHON_HANDLER_LOCATION,
|
|
21
36
|
'python3.6': PYTHON_HANDLER_LOCATION,
|
|
22
37
|
'python3.7': PYTHON_HANDLER_LOCATION,
|
|
23
38
|
'python3.8': PYTHON_HANDLER_LOCATION,
|
|
@@ -27,9 +42,9 @@ exports.DEFAULT_LAYER_AWS_ACCOUNT = '464622532012';
|
|
|
27
42
|
exports.GOVCLOUD_LAYER_AWS_ACCOUNT = '002406178527';
|
|
28
43
|
exports.SUBSCRIPTION_FILTER_NAME = 'datadog-ci-filter';
|
|
29
44
|
exports.TAG_VERSION_NAME = 'dd_sls_ci';
|
|
30
|
-
exports.DD_LAMBDA_EXTENSION_LAYER_NAME = 'Datadog-Extension';
|
|
31
45
|
// Environment variables used in the Lambda environment
|
|
32
46
|
exports.API_KEY_ENV_VAR = 'DD_API_KEY';
|
|
47
|
+
exports.API_KEY_SECRET_ARN_ENV_VAR = 'DD_API_KEY_SECRET_ARN';
|
|
33
48
|
exports.KMS_API_KEY_ENV_VAR = 'DD_KMS_API_KEY';
|
|
34
49
|
exports.SITE_ENV_VAR = 'DD_SITE';
|
|
35
50
|
exports.TRACE_ENABLED_ENV_VAR = 'DD_TRACE_ENABLED';
|
|
@@ -44,6 +59,7 @@ exports.EXTRA_TAGS_ENV_VAR = 'DD_TAGS';
|
|
|
44
59
|
// Environment variables used by Datadog CI
|
|
45
60
|
exports.CI_SITE_ENV_VAR = 'DATADOG_SITE';
|
|
46
61
|
exports.CI_API_KEY_ENV_VAR = 'DATADOG_API_KEY';
|
|
62
|
+
exports.CI_API_KEY_SECRET_ARN_ENV_VAR = 'DATADOG_API_KEY_SECRET_ARN';
|
|
47
63
|
exports.CI_KMS_API_KEY_ENV_VAR = 'DATADOG_KMS_API_KEY';
|
|
48
64
|
exports.LIST_FUNCTIONS_MAX_RETRY_COUNT = 2;
|
|
49
65
|
exports.MAX_LAMBDA_STATE_CHECK_ATTEMPTS = 3;
|