File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed
ecs_files_composer/jinja2_filters Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change 1010
1111import requests
1212import yaml
13+ from boto3 .session import Session
1314
1415
1516def env_override (value , key ):
@@ -137,10 +138,42 @@ def env_var(key, value=None):
137138 return environ .get (key , value )
138139
139140
141+ def from_ssm (parameter_name : str ) -> str :
142+ """
143+ Function to retrieve an SSM parameter value
144+
145+ :param parameter_name: Name of the parameter
146+ """
147+ return (
148+ Session ()
149+ .client ("ssm" )
150+ .get_parameter (Name = parameter_name , WithDecryption = True )["Parameter" ]["Value" ]
151+ )
152+
153+
154+ def from_ssm_json (parameter_name : str ) -> dict :
155+ """
156+ Function to retrieve an SSM parameter value
157+
158+ :param parameter_name: Name of the parameter
159+ """
160+ value_str = (
161+ Session ()
162+ .client ("ssm" )
163+ .get_parameter (Name = parameter_name , WithDecryption = True )["Parameter" ]["Value" ]
164+ )
165+ try :
166+ return json .loads (value_str )
167+ except json .JSONDecodeError :
168+ return {}
169+
170+
140171JINJA_FUNCTIONS = {
141172 "ecs_container_metadata" : ecs_container_metadata ,
142173 "ecs_task_metadata" : ecs_task_metadata ,
143174 "env_var" : env_var ,
175+ "from_ssm" : from_ssm ,
176+ "from_ssm_json" : from_ssm_json ,
144177}
145178
146179JINJA_FILTERS = {"to_yaml" : to_yaml , "to_json" : to_json , "env_override" : env_override }
You can’t perform that action at this time.
0 commit comments