# AdotLambdaExecWrapper

The wrapper script to be used for the Lambda function in order to enable auto instrumentation with ADOT.

**Note:** These wrappers are for the legacy ADOT Lambda layers with an embedded collector.
The recommended optimized ADOT Lambda layers use `/opt/otel-instrument` set via the
`AWS_LAMBDA_EXEC_WRAPPER` environment variable directly.

- Source: [`aws-lambda/lib/adot-layers.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-lambda/lib/adot-layers.ts#L188)
- Type last changed: v2.151.0 · 2 Aug 2024

## Example

```ts
import {
  AdotLambdaExecWrapper,
  AdotLayerVersion,
  AdotLambdaLayerJavaScriptSdkVersion,
} from 'aws-cdk-lib/aws-lambda';

const fn = new lambda.Function(this, 'MyFunction', {
  runtime: lambda.Runtime.NODEJS_LATEST,
  handler: 'index.handler',
  code: lambda.Code.fromInline('exports.handler = function(event, ctx, cb) { return cb(null, "hi"); }'),
  adotInstrumentation: {
    layerVersion: AdotLayerVersion.fromJavaScriptSdkLayerVersion(AdotLambdaLayerJavaScriptSdkVersion.LATEST),
    execWrapper: AdotLambdaExecWrapper.REGULAR_HANDLER,
  },
});
```

## Members

| Member | Description |
| --- | --- |
| `REGULAR_HANDLER` | Wrapping regular Lambda handlers. |
| `PROXY_HANDLER` | Wrapping regular handlers (implementing RequestHandler) proxied through API Gateway, enabling HTTP context propagation. |
| `STREAM_HANDLER` | Wrapping streaming handlers (implementing RequestStreamHandler), enabling HTTP context propagation for HTTP requests. |
| `INSTRUMENT_HANDLER` | Wrapping python lambda handlers see https://aws-otel.github.io/docs/getting-started/lambda/lambda-python. |
| `SQS_HANDLER` | Wrapping SQS-triggered function handlers (implementing RequestHandler). |

## Referenced by

- [`AdotInstrumentationConfig`](/v2/docs/aws-cdk-lib.aws_lambda.AdotInstrumentationConfig).execWrapper
