William Clark
12/13/2021, 8:16 PM@task(name="Create Task Definition")
def create_task(task_info:List):
"""Build and upload task defintion file to S3 from docker image and tag job parameters
Args:
task_info (List): [A list that contains the repository and tag strings]
Returns:
None
"""
fs = s3fs.S3FileSystem(use_ssl=False)
bucket_path = 'prefect/task_definitions/'
task_definition = json.load(fs.open(f'{bucket_path}/model_template.json', 'rb'))
task_definition = task_definition['containerDefinitions'][0]['image_name'] = task_info[0]
json.dump(task_definition, fs.open(f'{bucket_path}/{task_info[0]}_model_scoring.json','w'))
return task_definition
with Flow(name="ECS Task Defintion to Run Config") as flow:
task_definition = create_task(task_info)
run_config = ECSRun(task_definition=task_definition,
run_task_kwargs=dict(cluster="Innovation-Garage-AI-Cluster"))
flow.run_config = run_config