Cannot store non primitives in callback context - CFN Test and likely cloudformation
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginne damit, die verknüpfte Java StdCallbackContext-Implementierung damit zu vergleichen, wie callbackContext im Python-Plugin und beim cfn test-Vertragstest serialisiert und deserialisiert wird. Reproduziere das datetime-Beispiel und überprüfe anschließend, dass nichtprimitive Callback-Werte einen Callback-Roundtrip überstehen, ohne dass Handler-Autoren sie selbst marshallen müssen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Python
- Sterne
- 107
- Forks
- 46
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus aws-cloudformation/cloudformation-cli-python-plugin
-
Support UV Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
Repo alive? Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
aws-cloudformation/cloudformation-cli-python-plugin#270 · 1 Kommentar · 1 Reaktion ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
aws-cloudformation/cloudformation-cli-python-plugin#268 · 1 Kommentar · 2 Reaktionen ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
aws-cloudformation/cloudformation-cli-python-plugin#264 · 1 Kommentar ·
Alle Issues in aws-cloudformation/cloudformation-cli-python-plugin
Ähnliche Issues
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
stephrobert/dsoxlab#238 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
sublimehq/package_control#1780 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
nwg-piotr/nwg-displays#145 ·