Skip to content

Commit 95ce741

Browse files
committed
unit test, process event
1 parent 29a42e7 commit 95ce741

File tree

11 files changed

+61
-31
lines changed

11 files changed

+61
-31
lines changed

sample-apps/blank/2-build-layer.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22
set -eo pipefail
33
mkdir -p lib/nodejs
4-
rm -rf lib/nodejs/node_modules
5-
npm install
4+
rm -rf node_modules lib/nodejs/node_modules
5+
npm install --production
66
mv node_modules lib/nodejs/

sample-apps/blank/5-cleanup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ if [ -f bucket-name.txt ]; then
1414
done
1515
fi
1616
rm -f out.yml out.json
17-
rm -rf function/node_modules function/package-lock.json
17+
rm -rf lib package-lock.json

sample-apps/blank/event.json

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
11
{
2-
"KEY": "VALUE"
2+
"Records": [
3+
{
4+
"messageId": "19dd0b57-b21e-4ac1-bd88-01bbb068cb78",
5+
"receiptHandle": "MessageReceiptHandle",
6+
"body": "Hello from SQS!",
7+
"attributes": {
8+
"ApproximateReceiveCount": "1",
9+
"SentTimestamp": "1523232000000",
10+
"SenderId": "123456789012",
11+
"ApproximateFirstReceiveTimestamp": "1523232000001"
12+
},
13+
"messageAttributes": {},
14+
"md5OfBody": "7b270e59b47ff90a553787216d55d91d",
15+
"eventSource": "aws:sqs",
16+
"eventSourceARN": "arn:aws:sqs:us-west-2:123456789012:MyQueue",
17+
"awsRegion": "us-west-2"
18+
}
19+
]
320
}

sample-apps/blank/function/index.js

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,26 @@
1-
const AWS = require('aws-sdk')
2-
// Read environment variable
3-
let region = process.env.AWS_REGION
4-
if (process.env.region)
5-
region = process.env.region
1+
const AWSXRay = require('aws-xray-sdk-core')
2+
const AWS = AWSXRay.captureAWS(require('aws-sdk'))
3+
64
// Create client outside of handler to reuse
7-
const lambda = new AWS.Lambda({region: region})
5+
const lambda = new AWS.Lambda()
86

97
// Handler
10-
exports.handler = function(event, context) {
11-
console.log('Region: ' + region)
12-
console.log('Event: ' + JSON.stringify(event, null, 2))
8+
exports.handler = async function(event, context) {
9+
event.Records.forEach(record => {
10+
console.log(record.body)
11+
})
12+
console.log('## ENVIRONMENT VARIABLES: ' + serialize(process.env))
13+
console.log('## CONTEXT: ' + serialize(context))
14+
console.log('## EVENT: ' + serialize(event))
15+
1316
return getAccountSettings()
1417
}
1518

1619
// Use SDK client
1720
var getAccountSettings = function(){
1821
return lambda.getAccountSettings().promise()
1922
}
23+
24+
var serialize = function(object) {
25+
return JSON.stringify(object, null, 2)
26+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const index = require('./index')
2+
const fs = require('fs')
3+
const AWSXRay = require('aws-xray-sdk-core')
4+
AWSXRay.setContextMissingStrategy('LOG_ERROR')
5+
6+
test('Runs function handler', async () => {
7+
let eventFile = fs.readFileSync('event.json')
8+
let event = JSON.parse(eventFile)
9+
let response = await index.handler(event, null)
10+
expect(JSON.stringify(response)).toContain('AccountLimit')
11+
}
12+
)

sample-apps/blank/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"version": "1.0.0",
44
"private": true,
55
"devDependencies": {
6-
"aws-sdk": "2.585.0"
6+
"aws-sdk": "2.631.0"
77
},
88
"dependencies": {
99
"aws-xray-sdk-core": "1.1.2"

sample-apps/error-processor/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
"name": "error-processor",
33
"version": "1.0.0",
44
"private": true,
5+
"devDependencies": {
6+
"aws-sdk": "2.631.0"
7+
},
58
"dependencies": {
69
"aws-xray-sdk-core": "1.1.2",
710
"chance": "1.0.16"
8-
},
9-
"scripts": {
10-
"start": "node app.js"
1111
}
1212
}

sample-apps/error-processor/random-error/index.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
var AWSXRay = require('aws-xray-sdk-core')
2-
var aws = AWSXRay.captureAWS(require('aws-sdk'))
1+
const AWSXRay = require('aws-xray-sdk-core')
2+
const aws = AWSXRay.captureAWS(require('aws-sdk'))
33

4-
var Chance = require('chance')
5-
var lambda = new aws.Lambda()
4+
const Chance = require('chance')
5+
const lambda = new aws.Lambda()
66

77
var myFunction = async function(event, context) {
88
var chance = new Chance()

sample-apps/nodejs-apig/2-deploy.sh

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
#!/bin/bash
22
set -eo pipefail
33
ARTIFACT_BUCKET=$(cat bucket-name.txt)
4-
cd function
5-
npm install --production
6-
cd ../
74
aws cloudformation package --template-file template.yml --s3-bucket $ARTIFACT_BUCKET --output-template-file out.yml
85
aws cloudformation deploy --template-file out.yml --stack-name nodejs-apig --capabilities CAPABILITY_NAMED_IAM

sample-apps/nodejs-apig/function/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ const lambda = new AWS.Lambda()
44

55
// Handler
66
exports.handler = async function(event, context) {
7-
console.log('ENVIRONMENT VARIABLES: ' + serialize(process.env))
8-
console.log('CONTEXT: ' + serialize(context))
9-
console.log('EVENT: ' + serialize(event))
7+
console.log('## ENVIRONMENT VARIABLES: ' + serialize(process.env))
8+
console.log('## CONTEXT: ' + serialize(context))
9+
console.log('## EVENT: ' + serialize(event))
1010
try {
1111
let accountSettings = await getAccountSettings()
1212
return formatResponse(serialize(accountSettings.AccountUsage))

sample-apps/nodejs-apig/function/package.json renamed to sample-apps/nodejs-apig/package.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
"version": "1.0.0",
44
"private": true,
55
"devDependencies": {
6-
"aws-sdk": "2.585.0"
7-
},
8-
"scripts": {
9-
"start": "node app.js"
6+
"aws-sdk": "2.631.0"
107
}
118
}

0 commit comments

Comments
 (0)