Cross-runtime consistency fixes
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Confronta contract_event_handler.py, contract_status_changed_event_handler.py e publication_evaluation_event_handler.py con i runtime Java, TypeScript e .NET. Esamina innanzitutto i comportamenti indicati relativi a timestamp, DynamoDB, variabili d’ambiente, convalida e metriche, quindi esegui i test del servizio pertinenti, se disponibili. Il lavoro è completo quando gli handler Python corrispondono ai contratti dichiarati tra i runtime, senza scritture involontarie né metriche duplicate.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
A set of fixes to align the Python runtime with the other runtimes (Java, TypeScript, .NET) for functional equivalence and cross-runtime consistency.
Contracts Service
Timestamp format (contract_event_handler.py)
create_contract: replaceddatetime.now().strftime("%d/%m/%Y %H:%M:%S")withdatetime.now(timezone.utc).isoformat()for bothcontract_createdandcontract_last_modified_onupdate_contract: replaceddatetime.now().strftime(...)withdatetime.now(timezone.utc).isoformat()- Format change: custom
DD/MM/YYYY HH:MM:SS→ ISO 8601YYYY-MM-DDTHH:MM:SS.ffffff+00:00 - Uses the non-deprecated timezone-aware API (
timezone.utc) instead ofdatetime.utcnow()
DynamoDB attribute name (contract_event_handler.py)
update_contract: changedUpdateExpressionfrom"set contract_status=:t, modified_date=:m"to"set contract_status=:t, contract_last_modified_on=:m"- This corrects a bug where
update_contractwrote to a non-existentmodified_dateattribute instead of the correctcontract_last_modified_onattribute used increate_contract
Observability metrics (contract_event_handler.py)
- Added
metrics.add_metric(name="ContractCreated", unit=MetricUnit.Count, value=1)tocreate_contractsuccess path
Approvals Service
Per-invocation timestamp (contract_status_changed_event_handler.py)
- Removed module-level
now = datetime.now()andcurrent_datevariable assignments - Moved timestamp computation inside the handler function body to ensure each invocation captures its own execution time rather than the container initialisation time
Environment variable error type (contract_status_changed_event_handler.py)
- Replaced
raise InternalServerError(...)withraise EnvironmentError(...)for bothSERVICE_NAMESPACEandCONTRACT_STATUS_TABLEmissing variable checks - Removed the now-unused
InternalServerErrorimport fromaws_lambda_powertools.event_handler.exceptions
Web Service
Evaluation result validation (publication_evaluation_event_handler.py)
- Added validation guard: only updates DynamoDB when
evaluation_resultis"APPROVED"or"DECLINED"(case-insensitive) - Logs a warning and returns without writing to DynamoDB for any other value
Metric name correction (publication_evaluation_event_handler.py)
- Removed duplicate
metrics.add_metric(name="PropertiesAdded", ...)call - Retained
metrics.add_metric(name="PropertiesApproved", ...)as the single metric for this path
- Lingua principale
- Python
- Stelle
- 47
- Fork
- 20
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di aws-samples/aws-serverless-developer-experience-workshop-python
-
internal pending-release triage
aws-samples/aws-serverless-developer-experience-workshop-python#32 · 1 assegnatario ·
-
bug triage
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
aws-samples/aws-serverless-developer-experience-workshop-python#30 ·
Tutte le issue di aws-samples/aws-serverless-developer-experience-workshop-python
Issue simili
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
canonical/paas-charm#368 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
tech debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
addition to tracking list Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
StevenBlack/hosts#3256 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
qualcomm/qai-appbuilder#275 ·