New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

docker-lambda

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

docker-lambda - npm Package Compare versions

Comparing version
0.12.1
to
0.12.2
+1
-1
package.json
{
"name": "docker-lambda",
"version": "0.12.1",
"version": "0.12.2",
"description": "A Docker image and test runner that (very closely) mimics the live AWS Lambda environment",

@@ -5,0 +5,0 @@ "main": "index.js",

FROM lambci/lambda-base:build
ENV PATH=/var/lang/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
LD_LIBRARY_PATH=/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib \
LANG=en_US.UTF-8 \
AWS_EXECUTION_ENV=AWS_Lambda_nodejs6.10 \
NODE_PATH=/var/runtime:/var/task:/var/runtime/node_modules \
npm_config_unsafe-perm=true
RUN rm -rf /var/runtime /var/lang && \
curl https://lambci.s3.amazonaws.com/fs/nodejs6.10.tgz | tar -zx -C /
CMD ["npm", "rebuild"]
var crypto = require('crypto')
var HANDLER = process.argv[2] || process.env.AWS_LAMBDA_FUNCTION_HANDLER || 'index.handler'
var EVENT_BODY = process.argv[3] || process.env.AWS_LAMBDA_EVENT_BODY || '{}'
var FN_NAME = process.env.AWS_LAMBDA_FUNCTION_NAME || 'test'
var VERSION = process.env.AWS_LAMBDA_FUNCTION_VERSION || '$LATEST'
var MEM_SIZE = process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE || 1536
var TIMEOUT = process.env.AWS_LAMBDA_FUNCTION_TIMEOUT || 300
var REGION = process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION || 'us-east-1'
var ACCOUNT_ID = process.env.AWS_ACCOUNT_ID || randomAccountId()
var ACCESS_KEY_ID = process.env.AWS_ACCESS_KEY_ID || 'SOME_ACCESS_KEY_ID'
var SECRET_ACCESS_KEY = process.env.AWS_SECRET_ACCESS_KEY || 'SOME_SECRET_ACCESS_KEY'
var SESSION_TOKEN = process.env.AWS_SESSION_TOKEN
function consoleLog(str) {
process.stderr.write(formatConsole(str))
}
function systemLog(str) {
process.stderr.write(formatSystem(str) + '\n')
}
function systemErr(str) {
process.stderr.write(formatErr(str) + '\n')
}
function handleResult(resultStr) {
process.stdout.write(resultStr)
}
// Don't think this can be done in the Docker image
process.umask(2)
process.env.AWS_LAMBDA_FUNCTION_NAME = FN_NAME
process.env.AWS_LAMBDA_FUNCTION_VERSION = VERSION
process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE = MEM_SIZE
process.env.AWS_LAMBDA_LOG_GROUP_NAME = '/aws/lambda/' + FN_NAME
process.env.AWS_LAMBDA_LOG_STREAM_NAME = new Date().toISOString().slice(0, 10).replace(/-/g, '/') +
'/[' + VERSION + ']' + crypto.randomBytes(16).toString('hex')
process.env.AWS_REGION = REGION
process.env.AWS_DEFAULT_REGION = REGION
var OPTIONS = {
initInvokeId: uuid(),
invokeId: uuid(),
handler: HANDLER,
suppressInit: true,
credentials: {
key: ACCESS_KEY_ID,
secret: SECRET_ACCESS_KEY,
session: SESSION_TOKEN,
},
eventBody: EVENT_BODY,
contextObjects: {
// clientContext: '{}',
// cognitoIdentityId: undefined,
// cognitoPoolId: undefined,
},
invokedFunctionArn: arn(REGION, ACCOUNT_ID, FN_NAME),
}
// Some weird spelling error in the source?
OPTIONS.invokeid = OPTIONS.invokeId
var invoked = false
var errored = false
var start = null
module.exports = {
initRuntime: function() { return OPTIONS },
waitForInvoke: function(fn) {
if (invoked) return
systemLog('START RequestId: ' + OPTIONS.invokeId + ' Version: ' + VERSION)
start = process.hrtime()
invoked = true
fn(OPTIONS)
},
reportRunning: function(invokeId) {}, // eslint-disable-line no-unused-vars
reportDone: function(invokeId, errType, resultStr) {
if (!invoked) return
var diffMs = hrTimeMs(process.hrtime(start))
var billedMs = Math.min(100 * (Math.floor(diffMs / 100) + 1), TIMEOUT * 1000)
systemLog('END RequestId: ' + invokeId)
systemLog([
'REPORT RequestId: ' + invokeId,
'Duration: ' + diffMs.toFixed(2) + ' ms',
'Billed Duration: ' + billedMs + ' ms',
'Memory Size: ' + MEM_SIZE + ' MB',
'Max Memory Used: ' + Math.round(process.memoryUsage().rss / (1024 * 1024)) + ' MB',
'',
].join('\t'))
if (typeof resultStr == 'string') {
handleResult(resultStr)
}
process.exit(errored || errType ? 1 : 0)
},
reportFault: function(invokeId, msg, errName, errStack) {
errored = true
systemErr(msg + (errName ? ': ' + errName : ''))
if (errStack) systemErr(errStack)
},
getRemainingTime: function() {
return (TIMEOUT * 1000) - Math.floor(hrTimeMs(process.hrtime(start)))
},
sendConsoleLogs: consoleLog,
maxLoggerErrorSize: 256 * 1024,
}
function formatConsole(str) {
return str.replace(/^[0-9TZ:\.\-]+\t[0-9a-f\-]+\t/, '\033[34m$&\u001b[0m')
}
function formatSystem(str) {
return '\033[32m' + str + '\033[0m'
}
function formatErr(str) {
return '\033[31m' + str + '\033[0m'
}
function hrTimeMs(hrtime) {
return (hrtime[0] * 1e9 + hrtime[1]) / 1e6
}
// Approximates the look of a v1 UUID
function uuid() {
return crypto.randomBytes(4).toString('hex') + '-' +
crypto.randomBytes(2).toString('hex') + '-' +
crypto.randomBytes(2).toString('hex').replace(/^./, '1') + '-' +
crypto.randomBytes(2).toString('hex') + '-' +
crypto.randomBytes(6).toString('hex')
}
function randomAccountId() {
return String(0x100000000 * Math.random())
}
function arn(region, accountId, fnName) {
return 'arn:aws:lambda:' + region + ':' + accountId.replace(/[^\d]/g, '') + ':function:' + fnName
}
FROM lambci/lambda-base
ENV PATH=/var/lang/bin:/usr/local/bin:/usr/bin/:/bin \
LD_LIBRARY_PATH=/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib \
LANG=en_US.UTF-8 \
AWS_EXECUTION_ENV=AWS_Lambda_nodejs6.10 \
NODE_PATH=/var/runtime:/var/task:/var/runtime/node_modules \
LAMBDA_TASK_ROOT=/var/task \
LAMBDA_RUNTIME_DIR=/var/runtime
RUN rm -rf /var/runtime /var/lang && mkdir /tmp && chown sbx_user1051:495 /tmp && chmod 700 /tmp && \
curl https://lambci.s3.amazonaws.com/fs/nodejs6.10.tgz | tar -zx -C /
ADD awslambda-mock.js /var/runtime/node_modules/awslambda/build/Release/awslambda.js
WORKDIR /var/task
USER sbx_user1051
ENTRYPOINT ["/var/lang/bin/node", "--max-old-space-size=1229", "--max-semi-space-size=76", "--max-executable-size=153", "--expose-gc", \
"/var/runtime/node_modules/awslambda/index.js"]

Sorry, the diff of this file is not supported yet