aws / aws/bedrock-agentcore-sdk-python

Processing Request Headers

Aperta
#92 8 commenti 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
Python
Stelle
761
Fork
147
Merge medio
1g 23h
PR unite (30g)
7

Descrizione

**Is your feature request related to a problem? Please describe.**
When handling invocation requests, I need a reliable mechanism to parse specific headers and pass them to the handler function. I have not found a recommended approach for achieving this within the current framework. While I can implement a Starlette middleware to populate `request.state`, this state is not accessible within my handler.

Could you please advise on the best practice for accomplishing this?

**Describe the solution you'd like**
I would like to have the ability to pass `request.state` (or a similar context containing parsed headers) directly to the handler function. I have included a relevant code snippet below to illustrate the change that would address this need.

**Describe alternatives you've considered**
- Overriding the internal `_build_request_context` method, although I am hesitant to do so since it is not intended for external use.
- Adding an additional route via `app.routes.append`, but this approach requires rewriting significant portions of the existing `_handle_invocation` logic, which is not ideal.

**Additional context**
Please see the code snippet below for reference:

```
async def _invoke_handler(self, handler, request_context, takes_context, payload):
try:
args = (payload, request_context) if takes_context else (payload,)

if asyncio.iscoroutinefunction(handler):
return await handler(*args)
else:
loop = asyncio.get_event_loop()
return await loop.run_in_executor(None, handler, *args)
```

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia leggendo i percorsi interni _build_request_context e _handle_invocation, quindi confrontali con la firma di _invoke_handler proposta nell’issue. Determina come sono attualmente rappresentati gli header della richiesta analizzati e request.state, e se il contesto dell’handler richiesto è compatibile con il framework. Il lavoro sarà considerato completato quando sarà disponibile un approccio approvato da un maintainer, con un comportamento chiaro e coverage per gli invocation handler.

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

Valutazione

Stack tecnologico
python
Ambito
api, backend
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
28/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.