Antes de usar Vertex AI Pipelines para organizar tus canalizaciones de aprendizaje automático (AA), debes configurar tu proyecto de Google Cloud. Algunos recursos, como el almacén de metadatos que usa Vertex ML Metadatax, se crean en el proyecto de Google Cloud la primera vez que ejecutas una canalización.
Usa las siguientes instrucciones a fin de configurar tu proyecto para Vertex AI Pipelines.
Crea tu proyecto de Google Cloud y configúralo para usarlo con Vertex AI Pipelines.
Si no especificas una cuenta de servicio, Vertex AI Pipelines usa la cuenta de servicio predeterminada de Compute Engine para ejecutar las canalizaciones. Para obtener más información sobre la cuenta de servicio predeterminada de Compute Engine, consulta Usa la cuenta de servicio predeterminada de Compute Engine.
Vertex AI Pipelines usa Cloud Storage para almacenar los artefactos de las ejecuciones de tus canalizaciones. Crea un bucket de Cloud Storage y otorga a tu cuenta de servicio acceso a este bucket.
Vertex AI Pipelines usa metadatos de AA de Vertex para almacenar los metadatos que crean las ejecuciones de canalizaciones. Cuando ejecutas una canalización por primera vez, si el almacén de metadatos de tu proyecto no existe, Vertex AI crea el almacén de metadatos de tu proyecto.
Si deseas que tus datos se encripten mediante una clave de encriptación administrada por el cliente (CMEK), puedes crear de forma manual tu almacén de metadatos con una clave de CMEK antes de ejecutar una canalización. De lo contrario, si no hay un almacén de metadatos predeterminado en tu proyecto, Vertex AI crea el almacén de metadatos de tu proyecto con la clave CMEK que se usa cuando ejecutas la canalización por primera vez. Después de crear el almacén de metadatos, usa una clave CMEK que es diferente de la clave CMEK que se usa en una ejecución de canalización.
Configura el proyecto de Google Cloud
Usa las siguientes instrucciones para crear un proyecto de Google Cloud y configurarlo para usarlo con Vertex AI Pipelines.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta
Configura una cuenta de servicio con permisos detallados
Cuando ejecutas una canalización, puedes especificar una cuenta de servicio. La ejecución de tu canalización actúa con los permisos de esta cuenta de servicio.
Si no especificas una cuenta de servicio, la ejecución de la canalización usa la cuenta de servicio predeterminada de Compute Engine. Para obtener más información sobre la cuenta de servicio predeterminada de Compute Engine, consulta Usa la cuenta de servicio predeterminada de Compute Engine.
Usa las siguientes instrucciones para crear una cuenta de servicio y otorgarle permisos detallados a los recursos de Google Cloud.
Ejecute el siguiente comando para crear una cuenta de servicio:
gcloud iam service-accounts create SERVICE_ACCOUNT_ID \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME" \ --project=PROJECT_ID
Reemplaza los siguientes valores:
- SERVICE_ACCOUNT_ID: El ID para la cuenta de servicio.
- DESCRIPTION: Una descripción de la cuenta de servicio.
- DISPLAY_NAME: El nombre visible de esta cuenta de servicio.
- PROJECT_ID es el proyecto en el que se creará la cuenta de servicio.
Más información sobre cómo crear una cuenta de servicio.
Otorga a tu cuenta de servicio acceso a Vertex AI. Ten en cuenta que el cambio de acceso puede tardar un poco en propagarse. Para obtener más información, consulta Propagación de cambios de acceso.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/aiplatform.user"
Reemplaza los siguientes valores:
- PROJECT_ID es el proyecto en el que se creó tu cuenta de servicio.
- SERVICE_ACCOUNT_ID: El ID para la cuenta de servicio.
Puedes usar Artifact Registry para alojar imágenes de contenedor y plantillas de Kubeflow Pipelines.
Para obtener más información sobre Artifact Registry, consulta la documentación de Artifact Registry.
Otorga a tu cuenta de servicio acceso a cualquier recurso de Google Cloud que uses en tus canalizaciones.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \ --role="ROLE_NAME"
Reemplaza los siguientes valores:
- PROJECT_ID es el proyecto en el que se creó tu cuenta de servicio.
- SERVICE_ACCOUNT_ID: El ID para la cuenta de servicio.
- ROLE_NAME: La función de Identity and Access Management que se otorgará a esta cuenta de servicio.
Si deseas usar Vertex AI Pipelines para ejecutar canalizaciones con esta cuenta de servicio, ejecuta el siguiente comando a fin de otorgar a tu cuenta de usuario la función roles/iam.serviceAccountUser para tu cuenta de servicio.
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"
Reemplaza los siguientes valores:
- SERVICE_ACCOUNT_ID: El ID para la cuenta de servicio.
- PROJECT_ID es el proyecto en el que se creó tu cuenta de servicio.
- USER_EMAIL es la dirección de correo electrónico del usuario que ejecuta canalizaciones como esta cuenta de servicio.
Si prefieres usar la cuenta de servicio predeterminada de Compute Engine para ejecutar las canalizaciones, habilita la API de Compute Engine y otorga a tu cuenta de servicio predeterminada acceso a Vertex AI. Ten en cuenta que el cambio de acceso puede tardar un poco en propagarse. Para obtener más información, consulta Propagación de cambios de acceso.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role="roles/aiplatform.user"
Reemplaza los siguientes valores:
- PROJECT_ID es el proyecto en el que se creó tu cuenta de servicio.
- PROJECT_NUMBER es el número del proyecto en el que se creó tu cuenta de servicio.
Configura un bucket de Cloud Storage para artefactos de canalización
Vertex AI Pipelines almacena los artefactos de las ejecuciones de tu canalización mediante Cloud Storage. Usa las siguientes instrucciones a fin de crear un bucket de Cloud Storage y otorgar acceso a tu cuenta de servicio (o la cuenta de servicio predeterminada de Compute Engine) para leer y escribir objetos en ese bucket.
Ejecuta el siguiente comando para crear un bucket de Cloud Storage en la región en la que deseas ejecutar las canalizaciones.
gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION --project=PROJECT_ID
Reemplaza los siguientes valores:
- PROJECT_ID especifica el proyecto con el que está asociado tu bucket.
- BUCKET_LOCATION especifica la ubicación de tu bucket, por ejemplo,
US-CENTRAL1
. - BUCKET_NAME es el nombre que deseas asignar a tu bucket, sujeto a los requisitos para nombres. Por ejemplo,
my-bucket
.
Obtén más información sobre cómo crear bukets de Cloud Storage.
Ejecuta los siguientes comandos a fin de otorgar a tu cuenta de servicio acceso para leer y escribir artefactos de canalización en el bucket que creaste en el paso anterior.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/storage.objectUser
Reemplaza los siguientes valores:
- SERVICE_ACCOUNT_ID: El ID para la cuenta de servicio.
- PROJECT_ID es el proyecto en el que se creó tu cuenta de servicio.
- BUCKET_NAME: El nombre del bucket al que le otorgas acceso a tu cuenta de servicio.
Como alternativa, si prefieres usar la cuenta de servicio predeterminada de Compute Engine para ejecutar tus canalizaciones, ejecuta el comando
gcloud iam service-accounts list
a fin de ubicar el número de proyecto para esa cuenta.gcloud iam service-accounts list
La cuenta de servicio predeterminada de Compute Engine se llama de la siguiente manera:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
.Ejecuta el siguiente comando para otorgar a la cuenta de servicio predeterminada de Compute Engine acceso para leer y escribir artefactos de canalización en el bucket que creaste en el paso anterior.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/storage.objectUser
Reemplaza los siguientes valores:
- PROJECT_NUMBER es el número de proyecto para la cuenta de servicio predeterminada de Compute Engine.
- BUCKET_NAME: El nombre del bucket al que le otorgas acceso a tu cuenta de servicio.
Para obtener más información sobre cómo controlar el acceso a los buckets de Cloud Storage,
Crea un almacén de metadatos que use CMEK (opcional)
Usa las siguientes instrucciones para crear una CMEK y configurar un almacén de metadatos de Vertex ML Metadata que use esta CMEK.
Usa la siguiente llamada de REST para crear el almacén de metadatos predeterminado de tu proyecto mediante el uso de tu CMEK.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION_ID: Tu región.
- PROJECT_ID: El ID del proyecto.
- KEY_RING: Es el nombre del llavero de claves de Cloud Key Management Service en el que está activada tu clave de encriptación.
- KEY_NAME: Es el nombre de la clave de encriptación que deseas usar para este almacén de metadatos.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores?metadata_store_id=default
Cuerpo JSON de la solicitud:
{ "encryption_spec": { "kms_key_name": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME" }, }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATIONS_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateMetadataStoreOperationMetadata", "genericMetadata": { "createTime": "2021-05-18T18:47:14.494997Z", "updateTime": "2021-05-18T18:47:14.494997Z" } } }