Share events for your Lambda functions

A Developer Advocate experiencing DevRel ecospace at Freshworks. Previous being part of the start-up Mobil80 Solutions based in Bengaluru, India enjoyed and learnt a lot with the multiple caps that I got to wear transitioning from a full-stack developer to Cloud Architect for Serverless!
An AWS Serverless Hero who loves to interact with community which has helped me learn and share my knowledge. I write about AWS Serverless and also talk about new features and announcements from AWS.
Speaker at various conferences globally, AWS Community, AWS Summit, AWS DevDay sharing about Cloud, AWS, Serverless and Freshworks Developer Platform
Recently, AWS Lambda functions enabled the feature of sharing events for Lambda functions amongst different IAM users. You can read about the announcement here.
Creating sharable test events
For creating a new sharable test events, from the AWS Lambda function navigate to the Test section.
In the Test section, when creating a new event, select the option of Sharable and define the event JSON and event name.
Once the events are created, you can view both private events and the sharable events on AWS Lambda functions console.

Shareable event on EventBridge
Any of the Lambda function which has sharable events, you can head out to Amazon EventBridge console under lambda-testevent-schemas you can view, edit the shared events in the context of AWS Lambda function.
And each of the sharable event, you can view the details and also different available versions of the event itself.
The JSON structure on EventBridge Schema registry follows the OpenAPI format.
{
"openapi": "3.0.0",
"info": {
"version": "1.0.0",
"title": "Event"
},
"paths": {},
"components": {
"schemas": {
"Event": {
"type": "object",
"required": [
"key1",
"key2",
"key3"
],
"properties": {
"key1": {
"type": "string"
},
"key2": {
"type": "string"
},
"key3": {
"type": "string"
}
}
}
},
"examples": {
"hello-world": {
"value": {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
},
"test": {
"value": {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
}
}
}
}
Editing events
From the Amazon EventBridge console, you can choose the different version of the event and modify JSON event. Since this is following OpenAPI, you would have to define the schema and the properties which are required along with the event JSON itself.
{
"openapi": "3.0.0",
"info": {
"version": "1.0.0",
"title": "Event"
},
"paths": {},
"components": {
"schemas": {
"Event": {
"type": "object",
"required": [
"key1",
"key2",
"key3"
],
"properties": {
"key1": {
"type": "string"
},
"key2": {
"type": "string"
},
"key3": {
"type": "string"
},
"key4": {
"type": "string"
}
}
}
},
"examples": {
"hello-world": {
"value": {
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value3"
}
},
"test": {
"value": {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
}
}
}
}
In this demo, the version 2 of the event is selected and is modified to support an additional property key4.
Once saved as new version, the console creates a latest version with the modified event.

Deleting sharable event
If you wish to delete a specific version, you have the full control to do so from EventBridge console. And also you can delete all the versions also and then the Lambda function will not be listing the shared event also.
How this helps developers
Often at times, in different staging or development AWS Accounts, developers would have to share the events for AWS Lambda functions to be tested independently for local testing and ensuring the right event JSON is tested for the expected working of AWS Lambda functions. Previous, developers had to locally save that event JSON and share it out of AWS environment but now with the sharable events, developers can collaborate better! And the process of sharing the events for local AWS Lambda function testing is eased up. This is a huge announcement for developers and improving the developer experience.




