A serverless plugin to automatically wrap your functions with iopipe.
- Node >=
4.3.2 - NPM >=
2.14.12 - Serverless >=
1.13.0 - Yarn >=
0.22.0(optional) - A valid
package.jsonfile - A valid
serverless.ymlfile
With yarn (recommended) in project directory:
yarn add iopipe
yarn add serverless-plugin-iopipe --dev
With npm in project directory:
npm install iopipe
npm install serverless-plugin-iopipe --save-dev
Add the plugin to your serverless.yml file:
plugins:
- serverless-plugin-iopipeAdd your IOpipe project token within the "custom" config in serverless.yml. Where is the token?
custom:
iopipeToken: YOUR_TOKEN HEREYou're set! The plugin will run during an sls deploy.
serverless-plugin-iopipe outputs a file that imports and wraps the function handlers defined in serverless.yml with IOpipe so you don't have to. It allows you to deploy and upgrade multiple functions simultaneously.
All options are set in the "custom" config in serverless.yml. See Example
The token (clientId) of the project you would like to wrap your functions with.
Skip a check that ensures iopipe is installed via npm/yarn and present in package.json
The plugin automatically upgrades the IOpipe library to the latest available version that satisfies the semver range specified in package.json. Use this option to disable that feature.
When auto-upgrading, Yarn will be used in place of NPM if a yarn.lock file is found. Use this flag disable yarn and use NPM to upgrade the iopipe library.
Exclude certain functions from the plugin. Comma separated string.
Use process.env.IOPIPE_TOKEN as a placeholder variable to allow the token to be configured via environment variables in Serverless, AWS CLI, or AWS Console instead of embedding the token string directly.
By default, the plugin sends anonymized, non-identifying usage statistics to Google Analytics. IOpipe will use this info to prioritize updates and enhancements to the plugin. If you'd like to opt out of this, just set this option.
- This plugin attempts to skip handlers that are already wrapped, but edge cases my arise, especially if you
requirethe iopipe module outside of the handler file. - If your
package.jsonis located in a non-standard place, auto-upgrading may not work. - If attempting to use es6 modules natively i.e.
export function handler..., may not work.
File an issue here, hit us up on Slack, or send us a note at [email protected]
- This project uses Prettier. Please execute
npm run eslintFixto auto-format the code before submitting pull requests.