Deceivious
06/16/2023, 9:25 AMDeployment.build_from_flow
does not redeploy a new deployment if a deployment with the same name exists - the new deployment is updated over the previous deployment.Deceivious
06/16/2023, 9:26 AMimport asyncio
from prefect import flow
from prefect.client.orchestration import get_client
from prefect.deployments import Deployment
DEPLOYMENT_NAME = "test_deployment"
async def get_deployment():
async with get_client() as client:
return await client.read_deployment_by_name(
f"{DEPLOYMENT_NAME}/{DEPLOYMENT_NAME}"
)
@flow(name=DEPLOYMENT_NAME)
def f(a: int = 1):
print(a)
if __name__ == "__main__":
deployment_parameters = dict(
flow=f,
name=DEPLOYMENT_NAME,
is_schedule_active=False,
apply=True,
)
Deployment.build_from_flow(
**deployment_parameters,
parameters={"a": "b"},
)
deployment = asyncio.run(get_deployment())
print(deployment.parameters) # Returns {"a":"b"}
Deployment.build_from_flow(**deployment_parameters)
deployment = asyncio.run(get_deployment())
print(deployment.parameters) # Still returns {"a":"b"}
Deceivious
06/16/2023, 9:34 AMDeceivious
06/16/2023, 9:37 AMDeceivious
06/19/2023, 2:58 PM