aws / aws-lambda-go

Libraries, samples and tools to help Go developers develop AWS Lambda functions.
Apache License 2.0
3.58k stars 548 forks source link

Please export extensionAPIClient #562

Open MrGossett opened 2 months ago

MrGossett commented 2 months ago

Is your feature request related to a problem? Please describe. Occasionally would like to write a small Lambda extension to do some processing after my main Lambda handler has returned a response. While the requirements for implementing an extension are well-documented, there's no official 1st-party public Go package to help with implementation.

Describe the solution you'd like package lambda already has implemented an extension client, but it is unexported. I'd like to be able to create a new extension client by calling some constructor NewExtensionAPIClient (which could be in package lambda or in some other package), register event types I'm interested in, and define an extension event handler.

It seems to me that this would not add much maintenance burden since the extension client is already implemented for the sake of the WithEnableSIGTERM option. The difference here would be supporting the exported API for the extension client.

Describe alternatives you've considered I could implement and maintain an extension API client myself; but the same is true for implementing a runtime API client. I'd rather rely on an officially supported implementation.

I could find a 3rd-party implementation, but since there's no single or few 3rd-party implementations that have gained community consensus, I don't have any assurances about the quality of the implementation.


I'd like to express my thanks to those maintaining this repository. I use it a lot, and I appreciate your work.

bmoffatt commented 1 month ago

Sure :)

The client isn't quite feature complete, so I'll want to take a chance myself to 'finish' it, and mull over some cosmetic changes to naming, package structure, etc.