fc886ee Dec 20, 2016
@gojko @royreiss
79 lines (73 sloc) 4.75 KB


Create the initial lambda function and related security role.


claudia create {OPTIONS}


  • --region: AWS region where to create the lambda
    • For example: us-east-1
  • --handler: optional Main function for Lambda to execute, as module.function
    • For example: if it is in the main.js file and exported as router, this would be main.router
  • --api-module: optional The main module to use when creating Web APIs. If you provide this parameter, do not set the handler option. This should be a module created using the Claudia API Builder.
    • For example: if the api is defined in web.js, this would be web
  • --deploy-proxy-api: optional If specified, a proxy API will be created for the Lambda function on API Gateway, and forward all requests to function. This is an alternative way to create web APIs to --api-module.
  • --name: optional lambda function name
    • For example: awesome-microservice
    • Defaults to: the project name from package.json
  • --version: optional A version alias to automatically assign to the new function
    • For example: development
  • --source: optional Directory with project files
    • Defaults to: current directory
  • --config: optional Config file where the creation result will be saved
    • Defaults to: claudia.json
  • --policies: optional A directory or file pattern for additional IAM policies which will automatically be included into the security role for the function
    • For example: policies/*.xml
  • --allow-recursion: optional Set up IAM permissions so a function can call itself recursively
  • --role: optional The name or ARN of an existing role to assign to the function. If not supplied, Claudia will create a new role. Supply an ARN to create a function without any IAM access.
    • For example: arn:aws:iam::123456789012:role/FileConverter
  • --runtime: optional Node.js runtime to use. For supported values, see
    • Defaults to: node4.3
  • --description: optional Textual description of the lambda function
    • Defaults to: the project description from package.json
  • --memory: optional The amount of memory, in MB, your Lambda function is given. The value must be a multiple of 64 MB.
    • Defaults to: 128
  • --timeout: optional The function execution time, in seconds, at which AWS Lambda should terminate the function
    • Defaults to: 3
  • --no-optional-dependencies: optional Do not upload optional dependencies to Lambda.
  • --use-local-dependencies: optional Do not install dependencies, use local node_modules directory instead
  • --cache-api-config: optional Name of the stage variable for storing the current API configuration signature. If set, it will also be used to check if the previously deployed configuration can be re-used and speed up deployment
    • For example: claudiaConfigCache
  • --keep: optional keep the produced package archive on disk for troubleshooting purposes. If not set, the temporary files will be removed after the Lambda function is successfully created
  • --use-s3-bucket: optional The name of a S3 bucket that Claudia will use to upload the function code before installing in Lambda. You can use this to upload large functions over slower connections more reliably, and to leave a binary artifact after uploads for auditing purposes. If not set, the archive will be uploaded directly to Lambda
    • For example: claudia-uploads
  • --aws-delay: optional number of milliseconds betweeen retrying AWS operations if they fail
    • For example: 3000
    • Defaults to: 5000
  • --aws-retries: optional number of times to retry AWS operations if they fail
    • For example: 15
    • Defaults to: 15
  • --security-group-ids: optional A comma-delimited list of AWS VPC Security Group IDs, which the function will be able to access. Note: these security groups need to be part of the same VPC as the subnets provided with --subnet-ids.
    • For example: sg-1234abcd
  • --subnet-ids: optional A comma-delimited list of AWS VPC Subnet IDs, which this function should be able to access. At least one subnet is required if you are using VPC access. Note: these subnets need to be part of the same VPC as the security groups provided with --security-group-ids.
    • For example: subnet-1234abcd,subnet-abcd4567
  • --set-env: optional comma-separated list of VAR=VALUE environment variables to set
    • For example: S3BUCKET=testbucket,SNSQUEUE=testqueue
  • --set-env-from-json: optional file path to a JSON file containing environment variables to set
    • For example: production-env.json
  • --env-kms-key-arn: optional KMS Key ARN to encrypt/decrypt environment variables