Skip to content

Instantly share code, notes, and snippets.

@raytangRT
Created April 19, 2022 14:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save raytangRT/3ee77bdfccac80e317e45d3c430402cd to your computer and use it in GitHub Desktop.
Save raytangRT/3ee77bdfccac80e317e45d3c430402cd to your computer and use it in GitHub Desktop.
import prefect
from prefect import task, Flow, Parameter
from prefect.utilities.storage import extract_flow_from_file
from prefect.run_configs import DockerRun
import datetime as dt
import argparse
@task(checkpoint=False,log_stdout=True,max_retries=3,retry_delay=dt.timedelta(seconds=10))
def register_flow(path, project_name):
flow = extract_flow_from_file(path)
return flow.register(project_name=project_name)
with Flow("Register Flow") as flow:
flow_path = Parameter("flow_path")
project_name = Parameter("project_name")
flow_id = register_flow(flow_path, project_name)
# flow.run_config = DockerRun(image="prefect-hello-world-dockerized:latest")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Register Flow')
parser.add_argument('--project_name', dest='project_name', required=True)
parser.add_argument('--flow_path', dest='flow_path', required=True)
parser.add_argument('--image_name', dest='image_name', required=True)
args = parser.parse_args()
flow.run_config = DockerRun(image=args.image_name)
flow.run(parameters={
'project_name': args.project_name,
'flow_path': args.flow_path
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment