dpa-infocom-central-observability-infra
v1.0.12
Published
A collection of utility functions published as a public npm package. Currently includes **`sendEventToBus`**, a utility to send **cached client-side errors** to a central **AWS EventBridge observability bus**.
Readme
📦 npm-public
A collection of utility functions published as a public npm package.
Currently includes sendEventToBus, a utility to send cached client-side errors to a central AWS EventBridge observability bus.
⚡ Quick Tips for Local Development
- Test without publishing:
npm link - Check publish contents:
npm pack
📌 Function: sendEventToBus
A lightweight utility to send cached client-side errors to a central AWS EventBridge observability bus.
⚡ Set Up
⚙️ Environment Variables
The following environment variables must be set for sendEventToBus to work:
| Variable | Description | Example |
|----------|-------------|---------|
| AWS_OBSERVABILITY_EVENT_BUS_ARN | ARN of the AWS EventBridge observability event bus where the event will be sent. | arn:aws:events:eu-central-1:123456789012:event-bus/observability-bus |
| AWS_OBSERVABILITY_REGION | AWS region where the observability event bus is deployed. | eu-central-1 |
Example:
export AWS_OBSERVABILITY_EVENT_BUS_ARN="arn:aws:events:eu-central-1:123456789012:event-bus/observability-bus"
export AWS_OBSERVABILITY_REGION="eu-central-1"⚙️ serverless.yml: IAM Policy
Make sure your serverless.yml file defines a policy to allow events:PutEvents to the target observability EventBus:
- Effect: Allow
Action:
- events:PutEvents
Resource: ${env:AWS_OBSERVABILITY_EVENT_BUS_ARN}
📦 Installation
npm install dpa-infocom-central-observability-infra🚀 Usage
import { sendEventToBus } from "dpa-infocom-central-observability-infra";
async function lambdaHandler(event: string, context: Context) {
try{
...
} catch(error){
await sendEventToBus({
event,
context,
error
});
}
}
lambdaHandler();🚀 Middleware
The package provides a middleware adapter function called reportErrorMiddleware that calls the sendEventToBus function internally. This will only be triggered if the lambda throws an error that is not handled.
Example:
import { reportErrorMiddleware } from "dpa-infocom-central-observability-infra";
const lambdaHandler = async (event: string, context: Context) => {
throw new Error("Unhandled Error Occurs");
};
export const handler = middy(lambdaHandler)
.use(reportErrorMiddleware());