Configurar o projeto do Google Cloud para o Vertex AI Pipelines

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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 usados pelo Vertex ML Metadata, são criados no projeto do Cloud na primeira vez que você executa um pipeline.

Use as instruções a seguir para configurar o projeto para o Vertex AI Pipelines.

  1. Crie o projeto do Cloud e configure-o para uso com o Vertex AI Pipelines.

  2. 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. Por padrão, a conta de serviço padrão do Compute Engine tem o papel Editor do projeto.

    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.

  3. 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.

  4. O Vertex AI Pipelines usa o Vertex ML Metadata para armazenar os metadados criados pelas execuções de pipeline. Na primeira vez que você executa um pipeline, o Vertex AI cria o armazenamento de metadados do projeto.

    Se você quiser criptografar dados com uma chave de criptografia gerenciada pelo cliente (CMEK), crie um armazenamento de metadados com uma chave CMEK antes de executar um pipeline.

    Após a criação do armazenamento de metadados, a CMEK usada pelo armazenamento de metadados é independente da CMEK usada em uma execução de pipeline.

Configurar seu projeto do Google Cloud

Use as instruções a seguir para criar um projeto do Cloud e configurá-lo para uso com o Vertex AI Pipelines.

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.

  4. Ative as APIs Vertex AI and Cloud Storage.

    Ative as APIs

  5. Instale e inicialize a Google Cloud CLI.
  6. Atualize e instale os componentes gcloud:
    gcloud components update &&
    gcloud components install beta
  7. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  8. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.

  9. Ative as APIs Vertex AI and Cloud Storage.

    Ative as APIs

  10. Instale e inicialize a Google Cloud CLI.
  11. Atualize e instale os componentes gcloud:
    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. Por padrão, a conta de serviço padrão do Compute Engine tem o papel Editor do projeto.

  • 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.

    1. 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.

    2. Conceda à conta de serviço acesso à Vertex AI.

      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.
    3. Se os pipelines usam imagens de contêiner hospedadas no Container Registry, conceda à conta de serviço acesso para extrair imagens.

    4. 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.
    5. 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.

    Ative a API

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.

  1. 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.

  2. 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
    
    gsutil iam ch \
    serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com:roles/storage.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.

  1. Use o Cloud Key Management Service para configurar uma chave de criptografia gerenciada pelo cliente.

  2. 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: Sua região.
    • PROJECT: 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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/metadataStores?metadata_store_id=default

    Corpo JSON da solicitação:

    {
      "encryption_spec": {
        "kms_key_name": "projects/PROJECT/locations/LOCATION/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/locations/LOCATION/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"
        }
      }
    }