Notice
IOpipe has been acquired by New Relic. Please migrate to the equivalent New Relic Serverless plugin. Check out our migration guide for more information.
serverless-iopipe-layers
A Serverless plugin to add IOpipe observability using AWS Lambda Layers without requiring a code change.
Requirements
- serverless >= 1.34.0
Features
- Supports Node.js and Python runtimes (more runtimes to come)
- No code change required to enable IOpipe
- Bundles all of IOpipe's observability plugins in a single layer
Install
With NPM:
npm install --save-dev serverless-iopipe-layers
With yarn:
yarn add --dev serverless-iopipe-layers
Add the plugin to your serverless.yml
:
plugins: - serverless-iopipe-layers
Get a free IOpipe token and plug it into your serverless.yml
:
custom: iopipe: token: your-iopipe-token-here
Deploy and you're all set.
Usage
This plugin wraps your handlers without requiring a code change. If you're currently using IOpipe, you can remove the wrapping code you currently have and this plugin will do it for you automatically.
Config
The following config options are available via the iopipe
section of the custom
section of your serverless.yml
:
token
(required)
The IOpipe token to use.
debug
(optional)
Whether or not to enable debug mode. Must be a boolean value.
custom: iopipe: debug: true
exclude
(optional)
An array of functions to exclude from automatic wrapping.
custom: iopipe: exclude: - excluded-func-1 - another-excluded-func
layer_arn
(optional)
Pin to a specific layer version. The latest layer ARN is automatically fetched from the IOpipe Layers API
prepend
(optional)
Whether or not to prepend the IOpipe layer. Defaults to false
which appends the layer.
custom: iopipe: prepend: true
Supported Runtimes
This plugin currently supports the following AWS runtimes:
- nodejs6.10 (deprecated)
- nodejs8.10
- nodejs10.x
- python2.7
- python3.6
- python3.7
Using with serverless-webpack
When using with serverless-webpack it is highly recommended to use the nodejs10.x
runtime as this runtime does not require a helper script. For earlier Node.js runtimes a helper script is required which must be included via your webpack.config.js
. The serveless-iopipe-layers
plugin must follow the serverless-webpack
plugin in your serverless.yml
. See here for an example.
Using with Serverless Enterprise
When using with the Serverless Enterprise Plugin, because this plugin uses a similar method to wrap functions, a helper script must be used. If using with serverless-webpack
, the helper script must be included in your webpack.config.js
as described above.
Limitations
- Doesn't currently support local invocation
License
Apache 2.0