How to share configuration between workflows
Create a variable
To create a variable stored in the Prefect backend, use Variable.set()
.
Read a variable
To read a variable, use Variable.get()
.
To read a variable with a fallback value, use Variable.get(default=...)
.
Update a variable
To update a variable, use Variable.set(value, overwrite=True)
.
Delete a variable
To delete a variable, use Variable.unset()
.
Contextual Behavior
In a sync context (such as an if __name__ == "__main__"
block or simple def
scope), these methods are used synchronously.
In an async context (such as an async def
scope), they are used asynchronously.
Use variables in prefect.yaml
deployment steps
In prefect.yaml
files, variables are expressed as strings wrapped in quotes and double curly brackets:
Use variables to templatize deployment steps by
referencing them in the prefect.yaml
file that creates the deployments.
For example, you can pass in a variable to specify a branch for a git repo in a deployment pull
step:
The deployment_branch
variable is evaluated at runtime for the deployed flow, allowing changes to variables used in a pull action without updating a deployment directly.