From 03edd9086df178070adf458d223119ce69b80d48 Mon Sep 17 00:00:00 2001 From: Rayan Dasoriya Date: Wed, 19 Aug 2026 10:09:41 -0700 Subject: [PATCH] fix: truncate default pipeline and staging bucket names to 63 chars PiperOrigin-RevId: 967274002 --- google/cloud/aiplatform/utils/gcs_utils.py | 4 ++-- tests/unit/aiplatform/test_utils.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/google/cloud/aiplatform/utils/gcs_utils.py b/google/cloud/aiplatform/utils/gcs_utils.py index 58239f800a..6ec4172fad 100644 --- a/google/cloud/aiplatform/utils/gcs_utils.py +++ b/google/cloud/aiplatform/utils/gcs_utils.py @@ -240,7 +240,7 @@ def stage_local_data_in_gcs( # regional. staging_bucket_name = ( project + "-vertex-staging-" + location + "-" + _DEFAULT_STAGING_BUCKET_SALT - )[:63] + )[:63].rstrip("-") client = storage.Client(project=project, credentials=credentials) staging_bucket = storage.Bucket(client=client, name=staging_bucket_name) if not staging_bucket.exists(): @@ -301,7 +301,7 @@ def generate_gcs_directory_for_pipeline_artifacts( pipelines_bucket_name = ( project + "-vertex-pipelines-" + location + "-" + _DEFAULT_STAGING_BUCKET_SALT - ) + )[:63].rstrip("-") output_artifacts_gcs_dir = "gs://" + pipelines_bucket_name + "/output_artifacts/" return output_artifacts_gcs_dir diff --git a/tests/unit/aiplatform/test_utils.py b/tests/unit/aiplatform/test_utils.py index 218b382cb1..1fa147c017 100644 --- a/tests/unit/aiplatform/test_utils.py +++ b/tests/unit/aiplatform/test_utils.py @@ -612,6 +612,17 @@ def test_generate_gcs_directory_for_pipeline_artifacts(self): assert output.startswith("gs://project-vertex-pipelines-us-central1-") assert output.endswith("/output_artifacts/") + def test_generate_gcs_directory_for_pipeline_artifacts_max_length(self): + long_project = "gcp-daci-apinsights-prd" + location = "us-east4" + output = gcs_utils.generate_gcs_directory_for_pipeline_artifacts( + long_project, location + ) + bucket_name = output.replace("gs://", "").split("/")[0] + assert len(bucket_name) <= 63 + assert not bucket_name.endswith("-") + assert output.endswith("/output_artifacts/") + @patch.object(storage.Bucket, "exists", return_value=False) @patch.object(storage, "Client") @patch.object(