- additional fixes for the lambda lifecycle updates, thanks to Mangwan
- Support for architecture option in create and update commands, thanks to Tony BenBrahim
- Dedupe with "--production" and "--no-optional" flags, thanks to Daniel Gorbatov
- Updates uuid to version 3, thanks to @barslev
- support for nodejs14.x
- support for
--s3-key
while creating and updating functions, combined with--use-s3-bucket
, to specify the destination key. (Thanks to Chris Barnaby)
- support for listing deployed versions, using
claudia list
- support for Lambda runtime nodejs12.x
- updated docs for create, listing supported regions (thanks to Claudio Acioli).
- fixing npm dependency vulnerabilities
- support for tagging API Gateway resources (thanks to Richard Jones.
- support for adding SNS topic subscription filters
- support for adding dead letter queues when creating functions
- support for AWS partitions (making claudia work with aws-us-gov and aws-cn)
- support for oauth2 authorization scopes, thanks to Kevin Coleman.
- add option to specify binary media types when deploying a proxy API, thanks to Primož Verdnik
- nodejs10.x used by default, removed support for node6.10
- fix deployment to AWS China regions (#187)
- support for command line prompts for MFA/STS authentication, thanks to Grégory Horion.
- upgrade aws-sdk to avoid regression problems with 2.424.0 (aws/aws-sdk-js#2588)
- support for MFA/STS authentication, thanks to Grégory Horion.
- support for using Lambda Layers. Use
--layers
withcreate
, or--layers
,--add-layers
and--remove-layers
withupdate
.
- allow up to 900 second timeouts with Lambda, thanks to Steven Chadwick
- using 0 as resultTtl for authorisers disables authoriser caching, thanks to Savramis Sartios
- support for add-sqs-event-source
- better handling of KMS timeouts when creating a function and setting environment variables at the same time
- removed shelljs as a dependency from the project, which reduces file size and makes it easier to maintain the code
- bug fix for add-cognito-user-pool-trigger, when user pool has custom domain, thanks to Christian Sepulveda
- better error handling when a config file is requested for an invalid directory
- use
--npm-options
to pass additional options to NPM when installing packages. Useful to specify behaviour for package locking. - packaging using NPM 6 is now faster as audits are turned off by default
- packaging support for NPM 5 and 6 using relative file dependencies -- this previously worked only with NPM 3 because NPM 5 uses symbolic links for relative references
- upload size optimised using for NPM 5 and 6 by deduping dependencies after packaging
- use
--post-package-script=<NPM SCRIPT NAME>
withclaudia create
orclaudia update
to execute a custom post-package step to clean up resources, optimise package size etc. This runs after all validations are complete, and development dependencies are not available at this stage... but you can use npm to uninstall utility tools as part of this step if needed. - new command.
claudia pack
just packages the files, correctly handling NPM dependencies, without deploying anywhere. Useful for troubleshooting, or if you want to deploy to Lambda using some other tool but get Claudia to prepare the package for you. This is specially useful for CloudFormation deployments if you want to use NPM 5 or 6. The command works with any Node.js Lambda project, not just Claudia-specific ones. - claudia automatically fixes file access permissions in your package that would prevent Lambda from running code.
- NPM output is now directly written to the console, rather than a separate log file, to make packaging errors more obvious
- (for newly created functions only) claudia destroy will not delete a role if it was created using --role
- compatibility with Node.js 8.10 and NPM 5
- fix for package-lock.json and --no-optional-dependencies when using NPM 5
- Claudia now creates new functions using the node8.10 Lambda runtime by default
- more resilient waiting on IAM propagation when patching existing roles for VPC access
- added tag command to assist with Lambda tagging, thanks to Mohamed Osama
- bugfix for CORS setup with path params
- enable generate-serverless-express to handle binary content
- support for using server-side encryption for code uploads to s3, thanks to Ricky Blaha
- support for Kinesis Data Stream triggers with
add-kinesis-event-source
- support for request based custom API Gateway Authorisers
- support for deploying to Lambda@Edge with
set-cloudfront-trigger
- support for generating quick start projects with
generate
- support for configuring 3GB Lambda functions using
--memory
- support for deploying custom API Gateway Responses
- speed up API GW deployments by using a single handler for CORS OPTIONS instead of replicating it for each supported route
- fix for deploying lambdas with a VPC configuration and manually specified roles
This release is fully backwards compatible with 2.0 in terms of client code, but changes internal protocols between claudia API Builder and claudia, which is why we increased the major version. For API and bot deployments, this release requires Claudia API Builder 3.0.
- support for
allow-alexa-skill-trigger
(thanks to Slobodan Stojanovic)
update
andset-version
can now patch existing environment variables without replacing the entire set. use--update-env
or--update-env-from-json
update
can now reconfigure several commonly requested options:--timeout
,--memory
,--runtime
and--handler
- support
--proxy
in claudia to specify a HTTP proxy when working behind corporate firewalls (thanks to Jason Riddle) - isolate claudia filesystem additions better to avoid clashes with third party libraries that also change fs objects, such as Nuxt (thanks to Paweł Barszcz)
- bugfix for
AliasAttributes
removal when creating cognito user pool triggers, thanks @matsnow
- support for Cognito User Pool triggers (eg
claudia add-cognito-user-pool-trigger --user-pool-id POOLID --events PreSignUp
) - bugfix for add-s3-event-source, when claudia was created with a role given as an ARN
- Use the new node6.10 runtime by default when creating functions. You can still use the older 4.3 runtime by supplying the --runtime flag
### 2.9.0, 20 Feb 2017
- Cognito Authorizers now finally work with Claudia Api Builder, thanks to Andrew Gits, Paul Korzhyk and David Hooper.
- support for triggering Lambda functions using IOT topic filters
- allows the same lambda version to bind multiple times to the same bucket (fix for #101)
- allow env variables set on the command line to be set when validating the package (fixes #96)
- bugfix:
claudia destroy
now uses--profile
correctly (fix for #100)
- support for
--suffix
when adding S3 event sourcs. (thanks to Kamil Dybicz)
- support for API Gateway Binary content handling
- support for configuring VPC access using
--subnet-ids
and--security-group-ids
(thanks to Roy Reiss)
- added --events option for customizing S3 event types (thanks to Harry Gu)
- allow setting AWS http client timeout with --aws-client-timeout (thanks to Leonardo Nicolas)
- Allow CORS max-age to be set using API builder
- Set environment variables in create, update and set-version
- Pass a role ARN with create --role to deploy without any IAM access
- Remove claudia.json after destroying a function
- Lambda now supports loading Node modules from subdirectories, so Claudia no longer warns about it
- API Gateway post-deploy steps now get
apiCacheReused
in Lambda properties, set totrue
if API definition was reused from cache - Claudia now uses native promises and promise support in AWS SDK instead of Bluebird
- Dependencies are shrinkwrapped to prevent problems with sub-dependencies breaking backwards compatibility
- downgrade shelljs to avoid bug that would silently cause some files not to be copied when using --local-dependencies
- bugfix for deployment from directories containing a space (#84)
- force V4 signing for S3, to support european S3 operations
- bugfix for using scoped packages @company/name (#80), thanks to Nicolas Cochard
- bugfix for using local .npmrc files inside project folders (#81)
- prevent ambiguous definitions when handler specified without . or api module specified with function/extension
- bugfix for setting cache params and method params with API gateway.
- bugfix for setting Access-Control-Allow-Credentials header for CORS
- bugfix for
--no-optional-dependencies
, thanks to jveres - bugfix for wildcards including files in package.json
- Claudia is now using NPM to package files, instead of directly copying individual files, so all NPM tricks and workflow events for packaging are directly supported
- support for
--generate-serverless-express-proxy
, helping users create aws-serverless-express wrappers.
- support for --deploy-proxy-api
- using AWS Proxy integration to support custom response codes and headers easier (will only work with claudia-api-builder 2.0.0)
- stopping support for node 0.10
- Reuse code easier across different functions: Claudia can now work working with local relative dependencies in package.json (referencing relative directories on your disk)
- Use Claudia easier in storage-restricted environments, such as cloud continuous integration: Temporary files produced for packaging are now cleaned up automatically after deployment. Specify --keep with
create
orupdate
to keep the zip files around for troubleshooting (claudia will print out the location of the archive in that case). (A huge thanks to Philipp Holly) - Use Claudia easier with low bandwidth and larger functions, and keep binary packages on S3 for auditing purposes: supply a S3 bucket name with
--use-s3-bucket <bucket-name>
when usingclaudia create
orclaudia update
and Claudia will send a binary archive to S3 then install it to Lambda from there, instead of uploading code directly to Lambda. It will also print out the uploaded file key in the command results, so you can easily integrate it with auditing tools.
- support for
--no-optional-dependencies
, allowing you to exclude things like aws-sdk and imagemagick from the package uploaded to Lambda - support for
--cache-api-config
, allowing faster deployments of web APIs and chat bots when the API configuration does not change
- support for custom authorizers defined by claudia-api-builder
- support for
--profile
to select a profile (this could be used instead of setting the AWS_PROFILE variable) - better validation for authorization types and credentials requested by claudia API builder APIs
### 1.6.2, 18 August 2016
add-scheduled-event
no longer checks for role inclaudia.json
, it was not being used anyway
- bugfix for deployments under assumed roles/STS tokens
- API Gateway request support for
.normalizedHeaders
, containing a copy of the headers with lowercase header names, for easier processing - API Gateway request support for
.rawBody
, containing the unparsed body inapplication/json
requests, to allow for Facebook authentication and otherwise taking a hash of the raw body when needed. (thanks to Fabricio C Zuardi)
- support for setting custom credentials and passing on caller credentials with IAM and STS (thanks to Conor Dockry)
- bugfix that caused template mappings to fail if a header contained a quote
- support for
AWS_IAM
authorization type in API Gateway configuration (thanks to Chris Bumgardner)
- support for
--allow-recursion
in create to automate IAM permissions for the function to call itself - create and update will refuse to work when the source is the same as the Node temp folder, avoiding recursive disk fill-up
- Claudia can be forced to use local dependencies, instead of doing npm install, by
--use-local-dependencies
- experimental support for postDeploy steps in Api Builder
- bugfix for working with non-reentrant dependency modules
create
andupdate
now log command execution to avoid looking like claudia is stuck when deploying a large project. use--quiet
to suppress output
- bugfix for using relative paths in
--source
- bugfix for #39 -- when the files property is specified,
.gitignore
is not used
- support for
--memory
and--timeout
increate
- bugfix/workaround for quoted POST and query string arguments, see https://forums.aws.amazon.com/thread.jspa?threadID=229672
- added cognito/authorizer fields to the context in API gateway, so they are available to the lambda function
- lambda description set automatically from the package.json description, can be overridden by --description when creating
- form POST now also includes .body with raw input (so it can be posted back to paypal IPN)
- create, update and set-version now print out a web API URL if they create/update a web API
- it's no longer necessary to use
files
inpackage.json
to deploy using Claudia. If the files property is not specified, Claudia will package everything apart fromnode_modules
, typical VCS utility files (eg.git
) and automatically exclude all patterns specified in.gitignore
and.npmignore
--name
is now optional increate
, by default Claudia will use the name frompackage.json
- Claudia now creates Node.js 4.3.2 deployments by default.
- Use --runtime when calling create to specify an alternative runtime (eg nodejs for the legacy 0.10)
- support for JSON result templates that contain a charset
- bugfix for application/xml POSTs
- all validations are executed before any objects are created/updated, to avoid partially created functions
- web API handlers can now set custom headers (requires API Builder 1.1.0 or later). See the Custom Headers Example Project
- web API handlers can now set custom CORS origins, or completely disable CORS (requires API Builder 1.1.0 or later). See the Custom CORS Example Project
- web API now accepts text/plain content for POST, PUT and PATCH
- create and update prevent several common user errors and report more meaningfully on those
- when the lambda handler can't be required (eg package dependency issue or syntax error)
- when the API module does not export a Claudia API Builder-compatible interface (eg forgot to do module.exports)
- when the API module does not contain any configured methods
- when the API module does not contain the configured handler method
- when the custom policies argument is specified but no files match it
- when updating over a non-existent (eg removed) function or API definition
- when working with an incompatible API version (eg claudia needs to be updated)
- retry TooManyRequestsException automatically, AWS SDK seems to have a recurring bug to not retry those
- use --version to print current version
- test-lambda now accepts --version
- documentation re-structured so individual commands now print out options with --help
- markdown docs for the API on github
- bugfix to handle correctly POST operations with a charset (jQuery Ajax does this)
- utility destroy command for undeploying lambda and removing the API and associated roles.
- support for apiKeyRequired option in the apiBuilder methods. See Requiring Api Keys for more information
- better error message when the
api-module
argument is not compatible with theApiBuilder
interface (eg people forget to export the api);
- support for text/xml requests
- scheduled events now support
--cron
shorthand argument for easier parsing on Windows
- scheduled events now support
--rate
shorthand argument for easier parsing on Windows
- Support for alternative config files (instead of claudia.json). just supply
--config FILE_NAME
to any command
- bugfix for empty FORM post parameters