Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 41 additions & 16 deletions packages/aws-serverless/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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!');
Expand All @@ -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.

Expand Down
Loading