Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Cannot store non primitives in callback context - CFN Test and likely cloudformation

Abierto
#249 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
cloud

Línea de trabajo

Comienza comparando la implementación enlazada de Java StdCallbackContext con la forma en que callbackContext se serializa y deserializa en el plugin de Python y durante las pruebas de contrato de cfn test. Reproduce el ejemplo de datetime y, después, verifica que los valores de callback no primitivos sobrevivan a un recorrido de ida y vuelta del callback sin requerir que los autores de handlers los serialicen por su cuenta.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Java plugin supports serializing/deserializing class information in callback context , this plugin doesnt support that today.

Use case, related to #243. Say I want to store a datetime.datetime object. Right now it gets returned as a string, so the next time I use it when I am called back, it comes across as a string not as an original datetime object.

I confirmed this on the handler side by printing out a ProgressEvent post serialization.

{'message': '', 'callbackContext': {'resource_entry_end_time': datetime.datetime(2023, 1, 19, 16, 25, 19, 5602), 'handler_entry_time': datetime.datetime(2023, 1, 19, 16, 23, 19, 5606), 'working_model': ResourceModel(...), 'create_action1_completed': True, 'create_action1_request_id': '1234'}, 'callbackDelaySeconds': 1, 'resourceModel': {...}, 'status': 'IN_PROGRESS'}

Received on the cfn test side for contract testing:

{'message': '', 'callbackContext': {'resource_entry_end_time': '2023-01-19T16:25:19.005602', 'handler_entry_time': '2023-01-19T16:23:19.005606', 'working_model': {...}, 'create_action1_completed': True, 'create_action1_request_id': '1234'}, 'callbackDelaySeconds': 1, 'resourceModel': {....}, 'status': 'IN_PROGRESS'}

So if we attempt to store any non-primitive type its replaced with a string representation and no way to get back to it. This requires handler authors, if they want to use complex types, to do their own marshalling.

Lenguaje dominante
Python
Estrellas
107
Forks
46
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de aws-cloudformation/cloudformation-cli-python-plugin

Todos los issues de aws-cloudformation/cloudformation-cli-python-plugin

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.