[Lambda] Binary Invoke API

Aperta
#91 0 commenti 4 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
aws
Ambito
api, cloud

Direzione di ricerca

Non sono indicati file, test o punti di ingresso dell’implementazione. Inizia mappando il percorso di codifica dell’attuale REST Invoke API e la questione di compatibilità della Runtime API descritta nell’issue. Il lavoro sarebbe completato quando esistesse un’API binaria definita per request e response che eviti i passaggi di codifica descritti e funzioni con integrazioni AWS e di terze parti rilevanti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Community Note
  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Tell us about your request

It would be excellent to have a binary API for invoking Lambdas, and receiving responses.

Which service(s) is this request for?
This is a request for Lambda proper, but could benefit integrations with other services (AWS and 3rd party) as well.

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
Many use cases for Lambda involve processing binary data (network, images, data, etc.). The current REST API requires two full encoding/decoding passes:

  • The calling code must encode the binary data to invoke the lambda.
  • The Lambda function decodes the request to process it.
  • The Lambda function encodes the response.
  • The calling code decodes the response.

In addition to the encoding and decoding compute being a burden at scale, encoding inflates the size of payloads (hence reducing the effective payload size).

Removing the encoding would reduce complexity in customer code, reduce compute consumption and increase the effective request and response payload size.

Are you currently working around this issue?
At Proxylity we encode each UDP packet arriving at our service before passing to Lambda. An arriving packet is serialized to JSON with the binary data being base64 encoded before sending to Lambda. Our customers then write (or use library) code that handles the de/reserialization. Our code then decodes the JSON response and sends a the binary data in a UDP response. The encoding alone can account for as much as a third of the CPU time overall for simple handlers.

Additional context
I understand this ask may sound daunting, but could it perhaps be compatible with the current runtime API as an underlay (pre deserialization/serialization)?

Attachments
None at this time.

Lingua principale
Nessun dato sulla lingua
Stelle
196
Fork
5
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di aws/aws-lambda-roadmap

Tutte le issue di aws/aws-lambda-roadmap

Issue simili

Altre issue su Backend & API Design

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.