# Vertex Agent
The Vertex Agent executes flow runs as Vertex Custom Jobs. Vertex describes these as "training" jobs, but they can be used to run any kind of flow.
# Requirements
The required dependencies for the Vertex Agent aren't installed by
default. You'll
need to add the gcp
extra via pip
.
pip install prefect[gcp]
Prefect Server
In order to use this agent with Prefect Server the server's GraphQL API endpoint must be accessible. This may require changes to your Prefect Server deployment and/or configuring the Prefect API address on the agent.
# Flow Configuration
The Vertex Agent will deploy flows using either a
UniversalRun (the
default) or VertexRun run_config
. Using a VertexRun
object lets you customize the deployment
environment for a flow (exposing env
, image
, machine_type
, etc...):
from prefect.run_configs import VertexRun
# Configure extra environment variables for this flow,
# and set a custom image and machine type
flow.run_config = VertexRun(
env={"SOME_VAR": "VALUE"},
image="my-custom-image",
machine_type="e2-highmem-16",
)
See the VertexRun documentation for more information.
# Agent Configuration
The Vertex agent can be started from the Prefect CLI as
prefect agent vertex start
API Keys Cloud
When using Prefect Cloud, this will require a service account API key, see here for more information.
Below we cover a few common configuration options, see the CLI docs for a full list of options.
# Project
By default the agent will deploy flow run tasks into the current project (as defined by google.auth.default)
You can specify a different project using the --project
option:
prefect agent vertex start --project my-project
This can be a different project than the agent is running in, as long as the account has permissions to start Vertex Custom Jobs in the specified project.
# Region
Vertex requires a region in which to run the flow, and will default to us-central1
You can specify a different region using the --region-name
option:
prefect agent vertex start --region-name us-east1
# Service Account
Vertex jobs can run as a specified service account. Vertex provides a default, but specifying a specific
account can give you more control over what resources the flow runs are allowed to access.
You can specify a non-default account using the --service-account
option:
prefect agent vertex start --service-account my-account@my-project.iam.gserviceaccount.com