diff --git a/README.md b/README.md index 81aae183..9de2bb5a 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,7 @@ $ node-lambda deploy --help -b, --vpcSubnets [] VPC Subnet ID(s, comma separated list) for your Lambda Function, when using this, the below param is also required -g, --vpcSecurityGroups [] VPC Security Group ID(s, comma separated list) for your Lambda Function, when using this, the above param is also required -Q, --deadLetterConfigTargetArn [] Lambda DLQ resource + -T, --tracingConfig [] Lambda tracing settings -A, --packageDirectory [] Local package directory -S, --eventSourceFile [event_sources.json] Path to file holding event source mapping variables (e.g. "event_sources.json") -x, --excludeGlobs [] Add a space separated list of file(type)s to ignore (e.g. "*.json .env") diff --git a/bin/node-lambda b/bin/node-lambda index 7b8aed8b..3b113219 100755 --- a/bin/node-lambda +++ b/bin/node-lambda @@ -31,6 +31,7 @@ var AWS_PUBLISH = process.env.AWS_PUBLISH || false; var AWS_FUNCTION_VERSION = process.env.AWS_FUNCTION_VERSION || ''; var AWS_VPC_SUBNETS = process.env.AWS_VPC_SUBNETS || ''; var AWS_VPC_SECURITY_GROUPS = process.env.AWS_VPC_SECURITY_GROUPS || ''; +var AWS_TRACING_CONFIG = process.env.AWS_TRACING_CONFIG || ''; var EVENT_FILE = process.env.EVENT_FILE || 'event.json'; var PACKAGE_DIRECTORY = process.env.PACKAGE_DIRECTORY; var CONTEXT_FILE = process.env.CONTEXT_FILE || 'context.json'; @@ -69,6 +70,8 @@ program AWS_VPC_SECURITY_GROUPS) .option('-Q, --deadLetterConfigTargetArn [' + AWS_DLQ_TARGET_ARN + ']', 'Lambda DLQ resource', AWS_DLQ_TARGET_ARN) + .option('-T, --tracingConfig [' + AWS_TRACING_CONFIG + ']', 'Lambda tracing settings', + AWS_TRACING_CONFIG) .option('-A, --packageDirectory [' + PACKAGE_DIRECTORY + ']', 'Local Package Directory', PACKAGE_DIRECTORY) .option('-f, --configFile [' + CONFIG_FILE + ']', 'Path to file holding secret environment variables (e.g. "deploy.env")', CONFIG_FILE) diff --git a/lib/.env.example b/lib/.env.example index 65305a4f..55db5b82 100644 --- a/lib/.env.example +++ b/lib/.env.example @@ -13,5 +13,6 @@ AWS_DESCRIPTION= AWS_RUNTIME=nodejs6.10 AWS_VPC_SUBNETS= AWS_VPC_SECURITY_GROUPS= +AWS_TRACING_CONFIG= EXCLUDE_GLOBS="event.json" PACKAGE_DIRECTORY=build diff --git a/lib/main.js b/lib/main.js index 9dd517dd..7580f95f 100644 --- a/lib/main.js +++ b/lib/main.js @@ -109,6 +109,9 @@ Lambda.prototype._params = function (program, buffer) { }, DeadLetterConfig: { TargetArn: null + }, + TracingConfig: { + Mode: null } }; if (program.lambdaVersion) { @@ -133,6 +136,9 @@ Lambda.prototype._params = function (program, buffer) { TargetArn: program.deadLetterConfigTargetArn }; } + if (program.tracingConfig) { + params.TracingConfig.Mode = program.tracingConfig; + } return params; }; @@ -390,7 +396,8 @@ Lambda.prototype._uploadExisting = function (lambda, params, cb) { 'Runtime': params.Runtime, 'VpcConfig': params.VpcConfig, 'Environment': params.Environment, - 'DeadLetterConfig': params.DeadLetterConfig + 'DeadLetterConfig': params.DeadLetterConfig, + 'TracingConfig': params.TracingConfig, }, function (err, data) { return cb(err, data); }); diff --git a/test/main.js b/test/main.js index c2371c24..51a7c0a9 100644 --- a/test/main.js +++ b/test/main.js @@ -24,6 +24,7 @@ var originalProgram = { description: '', runtime: 'nodejs6.10', deadLetterConfigTargetArn: '', + tracingConfig: '', region: 'us-east-1,us-west-2,eu-west-1', eventFile: 'event.json', eventSourceFile: '', @@ -97,6 +98,18 @@ describe('node-lambda', function () { assert.isNull(params.DeadLetterConfig.TargetArn); }); + it('appends TracingConfig to params when params set', function() { + program.tracingConfig = 'Active'; + const params = lambda._params(program); + assert.equal(params.TracingConfig.Mode, 'Active'); + }); + + it('does not append TracingConfig when params are not set', function() { + program.tracingConfig = ''; + const params = lambda._params(program); + assert.isNull(params.TracingConfig.Mode); + }); + describe('configFile', function () { beforeEach(function () { // Prep...