Sanitize Prefect labels for use as GCP resource labels.GCP labels must have keys that start with a lowercase letter and contain
only lowercase letters, digits, underscores, and hyphens, with a max
length of 63 characters. Values follow the same character rules but may
start with any allowed character, and may also be empty.Dots and slashes in keys (e.g. prefect.io/flow-run-id) are replaced
with hyphens. Leading non-letter characters are stripped from keys.
Labels whose keys are empty after sanitization are dropped.
Sanitize Prefect labels and merge them with existing job body labels.Existing labels (from the job body template) always take precedence.
The merged result is capped at :data:_GCP_LABEL_MAX_COUNT (64) labels
to stay within the Cloud Run limit. When trimming is needed, the
lowest-priority Prefect labels (last in insertion order — e.g.
deployment-updated, worker-name) are dropped first so that core
identifiers like flow-run-id and flow-run-name are preserved.
slugify_name(name: str, max_length: int = 30) -> Optional[str]
Slugify text for use as a name.Keeps only alphanumeric characters and dashes, and caps the length
of the slug at 30 chars.The 30 character length allows room to add a uuid for generating a unique
name for the job while keeping the total length of a name below 63 characters,
which is the limit for Cloud Run job names.Args:
name: The name of the job
Returns:
The slugified job name or None if the slugified name is empty