Skip to content

Commit e6e4a45

Browse files
author
Victor Yan
committed
Fix cannot find module 'aws-sdk' on custom config rule lambdas
1 parent a6722f6 commit e6e4a45

File tree

6 files changed

+39
-43
lines changed

6 files changed

+39
-43
lines changed
Binary file not shown.
Binary file not shown.

reference-artifacts/config-rules/src/ec2-instance-profile-permissions/index.js

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
const AWS = require('aws-sdk');
2-
AWS.config.logger = console;
3-
4-
const config = new AWS.ConfigService();
1+
const { ConfigServiceClient, PutEvaluationsCommand } = require("@aws-sdk/client-config-service");
2+
const client = new ConfigServiceClient();
53

64
const APPLICABLE_RESOURCES = ['AWS::IAM::Role'];
75

@@ -28,20 +26,20 @@ exports.handler = async function (event, context) {
2826
console.debug(`Evaluation`);
2927
console.debug(JSON.stringify(evaluation, null, 2));
3028

31-
await config
32-
.putEvaluations({
33-
ResultToken: event.resultToken,
34-
Evaluations: [
35-
{
36-
ComplianceResourceId: configurationItem.resourceId,
37-
ComplianceResourceType: configurationItem.resourceType,
38-
ComplianceType: evaluation.complianceType,
39-
OrderingTimestamp: configurationItem.configurationItemCaptureTime,
40-
Annotation: evaluation.annotation,
41-
},
42-
],
43-
})
44-
.promise();
29+
const payload = {
30+
ResultToken: event.resultToken,
31+
Evaluations: [
32+
{
33+
ComplianceResourceId: configurationItem.resourceId,
34+
ComplianceResourceType: configurationItem.resourceType,
35+
ComplianceType: evaluation.complianceType,
36+
OrderingTimestamp: new Date(configurationItem.configurationItemCaptureTime),
37+
Annotation: evaluation.annotation,
38+
},
39+
],
40+
};
41+
const putEvaluationsCommand = new PutEvaluationsCommand(payload);
42+
await client.send(putEvaluationsCommand);
4543
};
4644

4745
async function evaluateCompliance(props) {

reference-artifacts/config-rules/src/ec2-instance-profile/index.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
const AWS = require('aws-sdk');
2-
AWS.config.logger = console;
3-
4-
const config = new AWS.ConfigService();
1+
const { ConfigServiceClient, PutEvaluationsCommand } = require("@aws-sdk/client-config-service");
2+
const client = new ConfigServiceClient();
53

64
const APPLICABLE_RESOURCES = ['AWS::EC2::Instance'];
75

@@ -23,18 +21,20 @@ exports.handler = async function(event, context) {
2321
console.debug(`Evaluation`);
2422
console.debug(JSON.stringify(evaluation, null, 2));
2523

26-
await config.putEvaluations({
24+
const payload = {
2725
ResultToken: event.resultToken,
2826
Evaluations: [
2927
{
3028
ComplianceResourceId: configurationItem.resourceId,
3129
ComplianceResourceType: configurationItem.resourceType,
3230
ComplianceType: evaluation.complianceType,
33-
OrderingTimestamp: configurationItem.configurationItemCaptureTime,
31+
OrderingTimestamp: new Date(configurationItem.configurationItemCaptureTime),
3432
Annotation: evaluation.annotation,
3533
},
3634
],
37-
}).promise();
35+
};
36+
const putEvaluationsCommand = new PutEvaluationsCommand(payload);
37+
await client.send(putEvaluationsCommand);
3838
};
3939

4040
async function evaluateCompliance(props) {

reference-artifacts/config-rules/src/ssm-patching-role-tags/index.js

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
const AWS = require('aws-sdk');
2-
AWS.config.logger = console;
3-
4-
const config = new AWS.ConfigService();
1+
const { ConfigServiceClient, PutEvaluationsCommand } = require("@aws-sdk/client-config-service");
2+
const client = new ConfigServiceClient();
53

64
const APPLICABLE_RESOURCES = ['AWS::IAM::Role'];
75

@@ -29,20 +27,20 @@ exports.handler = async function (event, context) {
2927
console.debug(`Evaluation`);
3028
console.debug(JSON.stringify(evaluation, null, 2));
3129

32-
await config
33-
.putEvaluations({
34-
ResultToken: event.resultToken,
35-
Evaluations: [
36-
{
37-
ComplianceResourceId: configurationItem.resourceId,
38-
ComplianceResourceType: configurationItem.resourceType,
39-
ComplianceType: evaluation.complianceType,
40-
OrderingTimestamp: configurationItem.configurationItemCaptureTime,
41-
Annotation: evaluation.annotation,
42-
},
43-
],
44-
})
45-
.promise();
30+
const payload = {
31+
ResultToken: event.resultToken,
32+
Evaluations: [
33+
{
34+
ComplianceResourceId: configurationItem.resourceId,
35+
ComplianceResourceType: configurationItem.resourceType,
36+
ComplianceType: evaluation.complianceType,
37+
OrderingTimestamp: new Date(configurationItem.configurationItemCaptureTime),
38+
Annotation: evaluation.annotation,
39+
},
40+
],
41+
};
42+
const putEvaluationsCommand = new PutEvaluationsCommand(payload);
43+
await client.send(putEvaluationsCommand);
4644
};
4745

4846
async function evaluateCompliance(props) {
Binary file not shown.

0 commit comments

Comments
 (0)