Please export extensionAPIClient

Open
#562 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
go
Domain
api, cloud

Research direction

Start in package lambda by locating the existing unexported extension client used by WithEnableSIGTERM, then compare its supported operations with the Lambda Extensions API documentation. Done means extension authors can use an official public Go client with the constructor, event registration, and handler flow described in the issue.

Written by the indexing model from the issue text.

Description

enhancement

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.

Dominant language
Go
Stars
3.8k
Forks
578
Avg merge
16h 56m
Merged PRs (30d)
2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from aws/aws-lambda-go

All issues in aws/aws-lambda-go

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.