The @sentry/serverless
package was discontinued in version 8.0.0 of the Sentry JavaScript SDKs in favour of dedicated
SDK packages for AWS Lambda and Google Cloud. For more information, head over to the respective v8 migration guides for
Google Cloud and
AWS Lambda.
This package is a wrapper around @sentry/node
, with added functionality related to various Serverless solutions. All
methods available in @sentry/node
can be imported from @sentry/serverless
.
Currently supported environment:
To use this SDK, call Sentry.AWSLambda.init(options)
at the very beginning of your JavaScript file.
import * as Sentry from '@sentry/serverless';
Sentry.AWSLambda.init({
dsn: '__DSN__',
// ...
});
// async (recommended)
exports.handler = Sentry.AWSLambda.wrapHandler(async (event, context) => {
throw new Error('oh, hello there!');
});
// sync
exports.handler = Sentry.AWSLambda.wrapHandler((event, context, callback) => {
throw new Error('oh, hello there!');
});
If you also want to trace performance of all the incoming requests and also outgoing AWS service requests, just set the
tracesSampleRate
option.
import * as Sentry from '@sentry/serverless';
Sentry.AWSLambda.init({
dsn: '__DSN__',
tracesSampleRate: 1.0,
});
Another and much simpler way to integrate Sentry to your AWS Lambda function is to add an official layer.
- Choose Layers -> Add Layer.
- Specify an ARN:
arn:aws:lambda:us-west-1:TODO:layer:TODO:VERSION
. - Go to Environment variables and add:
-
NODE_OPTIONS
:-r @sentry/serverless/build/npm/cjs/awslambda-auto
. -
SENTRY_DSN
:your dsn
. -
SENTRY_TRACES_SAMPLE_RATE
: a number between 0 and 1 representing the chance a transaction is sent to Sentry. For more information, see docs.
-
To use this SDK, call Sentry.GCPFunction.init(options)
at the very beginning of your JavaScript file.
import * as Sentry from '@sentry/serverless';
Sentry.GCPFunction.init({
dsn: '__DSN__',
tracesSampleRate: 1.0,
// ...
});
// For HTTP Functions:
exports.helloHttp = Sentry.GCPFunction.wrapHttpFunction((req, res) => {
throw new Error('oh, hello there!');
});
// For Background Functions:
exports.helloEvents = Sentry.GCPFunction.wrapEventFunction((data, context, callback) => {
throw new Error('oh, hello there!');
});
// For CloudEvents:
exports.helloEvents = Sentry.GCPFunction.wrapCloudEventFunction((context, callback) => {
throw new Error('oh, hello there!');
});