# 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]
Copied!
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", )
Copied!
See the VertexRun documentation for more information.
# Agent Configuration
The Vertex agent can be started from the Prefect CLI as
prefect agent vertex start
Copied!
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
Copied!
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
Copied!
# 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
Copied!