diff --git a/packages/aws-serverless/README.md b/packages/aws-serverless/README.md index 353b702fbcb9..81372f2178d2 100644 --- a/packages/aws-serverless/README.md +++ b/packages/aws-serverless/README.md @@ -15,16 +15,53 @@ This package is a wrapper around `@sentry/node`, with added functionality related to AWS Lambda. All methods available in `@sentry/node` can be imported from `@sentry/aws-serverless`. -To use this SDK, call `Sentry.init(options)` at the very beginning of your JavaScript file. +### Automatic Setup + +To use this SDK with an automatic setup, set the following environment variables in your Lambda function configuration: + +```bash +NODE_OPTIONS="--import @sentry/aws-serverless/awslambda-auto" +SENTRY_DSN="__DSN__" +# Add Tracing by setting tracesSampleRate and adding integration +# Set tracesSampleRate to 1.0 to capture 100% of transactions +# We recommend adjusting this value in production +# Learn more at +# https://docs.sentry.io/platforms/javascript/configuration/options/#traces-sample-rate +SENTRY_TRACES_SAMPLE_RATE="1.0" +``` + +### Manual Setup + +Alternatively, to further customize the SDK setup, you can also manually initialize the SDK in your lambda function. The benefit of this installation method is that you can fully customize your Sentry SDK setup in a Sentry.init call. -```javascript +Create a new file, for example `instrument.js` to initialize the SDK: + +```js import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ dsn: '__DSN__', - // ... + // Adds request headers and IP for users, for more info visit: + // https://docs.sentry.io/platforms/javascript/guides/aws-lambda/configuration/options/#sendDefaultPii + sendDefaultPii: true, + // Add Tracing by setting tracesSampleRate and adding integration + // Set tracesSampleRate to 1.0 to capture 100% of transactions + // We recommend adjusting this value in production + // Learn more at + // https://docs.sentry.io/platforms/javascript/configuration/options/#traces-sample-rate + tracesSampleRate: 1.0, }); +``` + +And then load the SDK before your function starts by importing the instrument.js file via a NODE_OPTIONS environment variable: + +```bash +NODE_OPTIONS="--import ./instrument.js" +``` + +## Verify +```js // async (recommended) export const handler = async (event, context) => { throw new Error('oh, hello there!'); @@ -36,19 +73,7 @@ export const handler = (event, context, callback) => { }; ``` -If you also want to trace performance of all the incoming requests and also outgoing AWS service requests, just set the -`tracesSampleRate` option. - -```javascript -import * as Sentry from '@sentry/aws-serverless'; - -Sentry.init({ - dsn: '__DSN__', - tracesSampleRate: 1.0, -}); -``` - -#### Integrate Sentry using the Sentry Lambda layer +## Integrate Sentry using the Sentry Lambda layer Another much simpler way to integrate Sentry to your AWS Lambda function is to add the official layer.