A Sceptre resolver to serialize and deserialize json.
There are use cases where you may want to pass in either a string or a json object to a cloudformation or sceptre_user_data parameter. This simple resolver can take some json and serialize it or deserialize it before passing it into a cloudformation parameter or a scepter_user_data parameter.
To install directly from PyPI
pip install sceptre-json-resolver
To install from this git repo
pip install git+https://github.com/Sceptre/sceptre-json-resolver.git
parameters|sceptre_user_data:
<name>: !from_json [ <string> ]
parameters|sceptre_user_data:
<name>: !to_json [ <json object> ]
NOTE: This resolver expects a single-item list argument.
Take some json object serialize it to a string then pass it to a parameter:
parameters:
myparam: !to_json [{"key": "value"}]
Note: The string '{"key": "value"}'
is passed to myparam
Take a string deserialize it to a json object then pass it to a parameter:
sceptre_user_data:
myparam: !from_json ['{"key": "value"}']
Note: The object {"key": "value"}
is passed to myparam
These use case requires the nested resolver feature in Sceptre version 4.1 and greater.
Load a json object from a file using the sceptre file resolver, serialize the object to a string then pass it to a parameter:
parameters:
hounds: !to_json [ !file 'hounds.json' ]
Make a request to a REST API using the sceptre-request-resolver, deserialize the response to a json object then pass it to a parameter:
sceptre_user_data:
hounds: !from_json
- !request 'https://dog.ceo/api/breed/hound/list'