Deploy AWS Lambda functions from command line using a .json config file.
$ cnpm install aws-lambda
Command line tool deploy code to AWS Lambda.
Versions prior to 1.0.5 suffer from "Command Injection" vulnerability,
thanks snyk.io and Song Li of Johns Hopkins University for reporting.
npm install -g aws-lambda
WARN: upgrading to v1.0.0 will remove your function environment and layers if they are not defined in the config file
lambda deploy <file.lambda> credentials needs permissions to CreateFunction, UpdateFunctionConfiguration and UpdateFunctionCodelambda delete <file.lambda> credentials needs permissions to DeleteFunctionlambda invoke <file.lambda> credentials needs permissions to InvokeFunction
{
"PATH": "./test-function",
"AWS_KEY": { "Ref" : "env.AWS_ACCESS_KEY_ID" },,
"AWS_SECRET": { "Ref" : "env.AWS_SECRET_ACCESS_KEY"},
"AWS_REGION": "us-east-1",
"FunctionName": "test-lambda",
"Role": "your_amazon_role",
"Runtime": "nodejs10.x",
"Handler": "index.handler",
"MemorySize": "128",
"Timeout": "3",
"Environment": {
"Variables": {
"Hello": "World",
}
},
"Layers": [
"arn:aws:lambda:eu-central-1:452980636694:layer:awspilot-dynamodb-2_0_0-beta:1"
],
"Tags": {
"k1": "v1",
"k2": "v2"
},
"Description": ""
}
# unlike json, comments are allowed in yaml, yey!
# remember to use spaces not tabs ????
PATH: ./new-function
AWS_KEY: !Ref "env.lambda_deploy_aws_key"
AWS_SECRET: !Ref "env.lambda_deploy_aws_secret"
AWS_REGION: "eu-central-1"
FunctionName: new-function-v12
Role: "arn:aws:iam::452980636694:role/CliLambdaDeploy-TestRole-1H89NZ845HHBK"
Runtime: "nodejs8.10"
Handler: "index.handler"
MemorySize: "128"
Timeout: "3"
Environment:
Variables:
Hello: "World"
Layers:
- "arn:aws:lambda:eu-central-1:452980636694:layer:awspilot-dynamodb-2_0_0-beta:1"
Tags:
k1: v1
k2: v2
Description: ""
// if installed globally then
$ lambda deploy /path/to/my-function.lambda
$ lambda deploy ../configs/my-function.lambda
// if 'npm installed' without the -g then you must use the full path
$ node_modules/.bin/lambda /path/to/my-function.lambda
// you can also add it in your scripts section of your package.json scripts: { "deploy-func1": "lambda deploy ../config/func1.lambda" }
$ npm run deploy-func1
aws-lambda can also watch the config file and the code folder specified in the config.PATH for changes and re-reploy on change
$ lambda start ../configs/my-function.lambda
Copyright 2013 - present © cnpmjs.org | Home |