Antes de usar o Vertex AI Pipelines para orquestrar pipelines de machine learning (ML), é necessário configurar o projeto do Google Cloud. Alguns recursos, como o armazenamento de metadados usado pelo Vertex ML Metadata, são criados no projeto do Google Cloud na primeira vez em que você executa um pipeline.
Use as instruções a seguir para configurar o projeto para o Vertex AI Pipelines.
Crie o projeto do Google Cloud e configure-o para uso com o Vertex AI Pipelines.
Se você não especificar uma conta de serviço, o Vertex AI Pipelines usará a conta de serviço padrão do Compute Engine para executar os pipelines. Saiba mais sobre a conta de serviço padrão do Compute Engine em Usar a conta de serviço padrão do Compute Engine.
Recomendamos que você crie uma conta de serviço para executar os pipelines e, em seguida, conceda a ela permissões granulares para os recursos do Google Cloud necessários para executar o pipeline.
O Vertex AI Pipelines usa o Cloud Storage para armazenar os artefatos das execuções do pipeline. Crie um bucket do Cloud Storage e conceda à conta de serviço acesso a esse bucket.
O Vertex AI Pipelines usa o Vertex ML Metadata para armazenar os metadados criados pelas execuções de pipeline. Ao executar um pipeline pela primeira vez, a Vertex AI cria o armazenamento de metadados do projeto, caso ele não exista.
Se você quiser criptografar os dados com uma chave de criptografia gerenciada pelo cliente (CMEK), crie manualmente um armazenamento de metadados com uma chave CMEK antes de executar um pipeline. Caso contrário, se não houver um armazenamento de metadados padrão no projeto, a Vertex AI cria um com a chave CMEK usada ao executar o pipeline pela primeira vez. Depois de criado, o armazenamento de metadados usa uma chave CMEK diferente da que foi usada em uma execução de pipeline.
Configurar seu projeto do Google Cloud
Siga as instruções a seguir para criar um projeto do Google Cloud e configurá-lo para uso com o 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
Configurar uma conta de serviço com permissões granulares
Ao executar um pipeline, é possível especificar uma conta de serviço. A execução do pipeline funciona com as permissões dessa conta de serviço.
Se você não especificar uma conta de serviço, a execução do pipeline usará a conta de serviço padrão do Compute Engine. Saiba mais sobre a conta de serviço padrão do Compute Engine em Usar a conta de serviço padrão do Compute Engine.
Use as instruções a seguir para criar uma conta de serviço e conceder a ela permissões granulares para os recursos do Google Cloud.
Execute o seguinte comando para criar uma conta de serviço:
gcloud iam service-accounts create SERVICE_ACCOUNT_ID \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME" \ --project=PROJECT_ID
Substitua os seguintes valores:
- SERVICE_ACCOUNT_ID: o ID da conta de serviço.
- DESCRIPTION: (opcional): uma descrição da conta de serviço.
- DISPLAY_NAME: o nome de exibição dessa conta de serviço.
- PROJECT_ID: o projeto em que a conta de serviço será criada.
Saiba mais sobre como criar uma conta de serviço.
Conceda à conta de serviço acesso à Vertex AI. Pode levar algum tempo para a mudança no acesso ser propagada. Para mais informações, consulte Propagação de alteração de acesso.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/aiplatform.user"
Substitua os seguintes valores:
- PROJECT_ID: o projeto em que a conta de serviço foi criada.
- SERVICE_ACCOUNT_ID: o ID da conta de serviço.
É possível usar o Artifact Registry para hospedar imagens de contêiner e modelos do Kubeflow Pipelines.
Para mais informações sobre o Artifact Registry, consulte a documentação do Artifact Registry.
Conceda à conta de serviço acesso a todos os recursos do Google Cloud que você usa nos pipelines.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \ --role="ROLE_NAME"
Substitua os seguintes valores:
- PROJECT_ID: o projeto em que a conta de serviço foi criada.
- SERVICE_ACCOUNT_ID: o ID da conta de serviço.
- ROLE_NAME: o papel do Identity and Access Management a ser concedido a essa conta de serviço.
Para usar o Vertex AI Pipelines para executar pipelines com essa conta de serviço, execute o seguinte comando para conceder à conta de usuário o papel roles/iam.serviceAccountUser para a conta de serviço.
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"
Substitua os seguintes valores:
- SERVICE_ACCOUNT_ID: o ID da conta de serviço.
- PROJECT_ID: o projeto em que a conta de serviço foi criada.
- USER_EMAIL: o endereço de e-mail do usuário que executa os pipelines como essa conta de serviço.
Se você preferir usar a conta de serviço padrão do Compute Engine para executar pipelines, ative a API Compute Engine e conceda à sua conta de serviço padrão acesso à Vertex AI. Pode levar algum tempo para a mudança no acesso ser propagada. Para mais informações, consulte Propagação de alteração de acesso.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role="roles/aiplatform.user"
Substitua os seguintes valores:
- PROJECT_ID: o projeto em que a conta de serviço foi criada.
- PROJECT_NUMBER: o projeto em que a conta de serviço foi criada.
Configurar um bucket do Cloud Storage para artefatos de pipeline
O Vertex AI Pipelines armazena os artefatos das execuções de pipeline usando o Cloud Storage. Use as instruções a seguir para criar um bucket do Cloud Storage e conceder à sua conta de serviço (ou à conta de serviço padrão do Compute Engine) acesso para ler e gravar objetos nesse bucket.
Execute o comando a seguir para criar um bucket do Cloud Storage na região em que você quer executar os pipelines.
gsutil mb -p PROJECT_ID -l BUCKET_LOCATION gs://BUCKET_NAME
Substitua os seguintes valores:
- PROJECT_ID: especifique o projeto ao qual seu bucket está associado.
- BUCKET_LOCATION: especifique o local do
bucket. Por exemplo,
US-CENTRAL1
. - BUCKET_NAME é o nome que você quer dar ao bucket, sujeito
aos requisitos de nomenclatura. Por exemplo,
my-bucket
.
Leia mais sobre como criar buckets do Cloud Storage.
Execute os comandos a seguir para conceder à conta de serviço acesso para ler e gravar artefatos de pipeline no bucket criado na etapa anterior.
gsutil iam ch \ serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com:roles/storage.objectCreator,objectViewer \ gs://BUCKET_NAME
Substitua os seguintes valores:
- SERVICE_ACCOUNT_ID: o ID da conta de serviço.
- PROJECT_ID: o projeto em que a conta de serviço foi criada.
- BUCKET_NAME: o nome do bucket a que você está concedendo acesso para a conta de serviço.
Se preferir usar a conta de serviço padrão do Compute Engine para executar os pipelines, execute o comando
gcloud iam service-accounts list
para localizar o número do projeto dessa conta.gcloud iam service-accounts list
O nome da conta de serviço padrão do Compute Engine tem o seguinte formato:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
.Execute o seguinte comando para conceder à conta de serviço padrão do Compute Engine acesso para ler e gravar artefatos de pipeline no bucket que você criou na etapa anterior.
gsutil iam ch \ serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com:roles/storage.objectCreator,objectViewer \ gs://BUCKET_NAME
Substitua os seguintes valores:
- PROJECT_NUMBER: o número do projeto da conta de serviço padrão do Compute Engine.
- BUCKET_NAME: o nome do bucket a que você está concedendo acesso para a conta de serviço.
Saiba mais sobre como controlar o acesso aos buckets do Cloud Storage.
Criar um armazenamento de metadados que use uma CMEK (opcional)
Use as instruções a seguir para criar uma CMEK e configurar um armazenamento de metadados do Vertex ML Metadata que usa essa CMEK.
Use a seguinte chamada REST para criar o armazenamento de metadados padrão do projeto usando a CMEK.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: sua região.
- PROJECT_ID: o ID do projeto.
- KEY_RING: o nome do keyring do Cloud Key Management Service em que a chave de criptografia está ativada.
- KEY_NAME: o nome da chave de criptografia que você quer usar nesse armazenamento de metadados.
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores?metadata_store_id=default
Corpo JSON da solicitação:
{ "encryption_spec": { "kms_key_name": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME" }, }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "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" } } }