Configure o seu projeto do Google Cloud para o Vertex AI Pipelines

Antes de usar o Vertex AI Pipelines para orquestrar os seus pipelines de aprendizagem automática (AA), tem de configurar o seu Google Cloud projeto. Alguns recursos, como o armazenamento de metadados usado pelos metadados do Vertex ML, são criados no seu Google Cloud projeto na primeira vez que executa um pipeline.

Siga as instruções abaixo para configurar o seu projeto para os Vertex AI Pipelines.

  1. Crie o seu Google Cloud projeto e configure-o para utilização com o Vertex AI Pipelines.

  2. Se não especificar uma conta de serviço, o Vertex AI Pipelines usa a conta de serviço predefinida do Compute Engine para executar os seus pipelines. Para mais informações acerca da conta de serviço predefinida do Compute Engine, consulte o artigo Usar a conta de serviço predefinida do Compute Engine.

    Recomendamos que crie uma conta de serviço para executar os seus pipelines e, em seguida, conceda a esta conta autorizações detalhadas aos Google Cloud recursos necessários para executar o seu pipeline.

  3. O Vertex AI Pipelines usa o Cloud Storage para armazenar os artefactos das execuções do pipeline. Crie um contentor do Cloud Storage e conceda à sua conta de serviço acesso a este contentor.

  4. O Vertex AI Pipelines usa o Vertex ML Metadata para armazenar os metadados criados pelas execuções do pipeline. Quando executa um pipeline pela primeira vez, se o arquivo de metadados do seu projeto não existir, o Vertex AI cria o arquivo de metadados do projeto.

    Se quiser que os seus dados sejam encriptados com uma chave de encriptação gerida pelo cliente (CMEK), pode criar manualmente o seu repositório de metadados com uma chave CMEK antes de executar um pipeline. Caso contrário, se não existir um arquivo de metadados predefinido no seu projeto, o Vertex AI cria o arquivo de metadados do seu projeto com a chave CMEK usada quando executa o pipeline pela primeira vez. Depois de criado, o repositório de metadados usa uma chave CMEK diferente da chave CMEK usada numa execução da pipeline.

Configure o seu Google Cloud projeto

Siga as instruções abaixo para criar um Google Cloud projeto e configurá-lo para utilização com o Vertex AI Pipelines.

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI, Compute Engine, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  8. Depois de inicializar a CLI gcloud, atualize-a e instale os componentes necessários:

    gcloud components update
    gcloud components install beta
  9. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. Verify that billing is enabled for your Google Cloud project.

  11. Enable the Vertex AI, Compute Engine, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  12. Install the Google Cloud CLI.

  13. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  14. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  15. Depois de inicializar a CLI gcloud, atualize-a e instale os componentes necessários:

    gcloud components update
    gcloud components install beta
  16. Configure uma conta de serviço com autorizações detalhadas

    Quando executa um pipeline, pode especificar uma conta de serviço. A execução do pipeline atua com as autorizações desta conta de serviço.

    Se não especificar uma conta de serviço, a execução da pipeline usa a conta de serviço predefinida do Compute Engine. Para mais informações acerca da conta de serviço predefinida do Compute Engine, consulte o artigo Usar a conta de serviço predefinida do Compute Engine.

    • Use as seguintes instruções para criar uma conta de serviço e conceder-lhe autorizações detalhadas aos Google Cloud recursos.

      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 a apresentar para esta conta de serviço.
        • PROJECT_ID: o projeto no qual criar a sua conta de serviço.

        Saiba mais sobre como criar uma conta de serviço.

      2. Conceda à sua conta de serviço acesso ao Vertex AI. Tenha em atenção que a alteração de acesso pode demorar algum tempo a propagar-se. Para mais informações, consulte o artigo Propagação de alterações 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 no qual a sua conta de serviço foi criada.
        • SERVICE_ACCOUNT_ID: o ID da conta de serviço.
      3. Pode usar o Artifact Registry para alojar imagens de contentores e modelos do Kubeflow Pipelines.

        Para mais informações sobre o Artifact Registry, consulte a documentação do Artifact Registry.

      4. Conceda à sua conta de serviço acesso a quaisquer Google Cloud recursos que use nos seus 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 no qual a sua conta de serviço foi criada.
        • SERVICE_ACCOUNT_ID: o ID da conta de serviço.
        • ROLE_NAME: a função de gestão de identidades e acessos a conceder a esta conta de serviço.
      5. Para usar o Vertex AI Pipelines para executar pipelines com esta conta de serviço, execute o seguinte comando para conceder à sua conta de utilizador a função roles/iam.serviceAccountUser para a sua 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 no qual a sua conta de serviço foi criada.
        • USER_EMAIL: o endereço de email do utilizador que executa pipelines como esta conta de serviço.
    • Se preferir usar a conta de serviço predefinida do Compute Engine para executar os seus pipelines, ative a API Compute Engine e conceda à sua conta de serviço predefinida acesso ao Vertex AI. Tenha em atenção que a alteração de acesso pode demorar algum tempo a propagar-se. Para mais informações, consulte o artigo Propagação de alterações 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 no qual a sua conta de serviço predefinida foi criada.
      • PROJECT_NUMBER: o número do projeto no qual a sua conta de serviço predefinida foi criada.

      Roles required to enable APIs

      To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the API

    Configure um contentor do Cloud Storage para artefactos do pipeline

    O Vertex AI Pipelines armazena os artefactos das execuções do pipeline usando o Cloud Storage. Use as instruções seguintes para criar um contentor do Cloud Storage e conceder à sua conta de serviço (ou à conta de serviço predefinida do Compute Engine) acesso para ler e escrever objetos nesse contentor.

    1. Execute o seguinte comando para criar um contentor do Cloud Storage na região em que quer executar os pipelines.

      gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION --project=PROJECT_ID
      

      Substitua os seguintes valores:

      • PROJECT_ID: especifique o projeto ao qual o seu contentor está associado.
      • BUCKET_LOCATION: especifique a localização do seu contentor, por exemplo, US-CENTRAL1.
      • BUCKET_NAME: o nome que quer dar ao seu contentor, sujeito aos requisitos de nomenclatura. Por exemplo, my-bucket.

      Saiba como criar contentores do Cloud Storage.

    2. Execute os seguintes comandos para conceder à sua conta de serviço acesso para ler e escrever artefactos do pipeline no contentor que criou no passo 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
      

      Substitua os seguintes valores:

      • SERVICE_ACCOUNT_ID: o ID da conta de serviço.
      • PROJECT_ID: o projeto no qual a sua conta de serviço foi criada.
      • BUCKET_NAME: o nome do contentor ao qual está a conceder acesso à sua conta de serviço.

      Em alternativa, se preferir usar a conta de serviço predefinida do Compute Engine para executar os seus pipelines, execute o comando gcloud iam service-accounts list para localizar o número do projeto dessa conta.

      gcloud iam service-accounts list
      

      A conta de serviço predefinida do Compute Engine tem um nome semelhante ao seguinte: PROJECT_NUMBER-compute@developer.gserviceaccount.com.

      Execute o seguinte comando para conceder à conta de serviço predefinida do Compute Engine acesso para ler e escrever artefactos do pipeline no contentor que criou no passo anterior.

      gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
      --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --role=roles/storage.objectUser
      

      Substitua os seguintes valores:

      • PROJECT_NUMBER: o número do projeto da conta de serviço predefinida do Compute Engine.
      • BUCKET_NAME: o nome do contentor ao qual está a conceder acesso à sua conta de serviço.

      Saiba como controlar o acesso a contentores do Cloud Storage.

    Crie um repositório de metadados que use uma CMEK (opcional)

    Siga as instruções abaixo para criar uma CMEK e configurar um arquivo de metadados do Vertex ML Metadata que use esta CMEK.

    1. Use o Cloud Key Management Service para configurar uma chave de encriptação gerida pelo cliente.

    2. Use a seguinte chamada REST para criar o arquivo de metadados predefinido do seu projeto com a sua CMEK.

      Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

      • LOCATION_ID: a sua região.
      • PROJECT_ID: o seu ID do projeto.
      • KEY_RING: o nome do conjunto de chaves do Cloud Key Management Service no qual se encontra a sua chave de encriptação.
      • KEY_NAME: o nome da chave de encriptação que quer usar para esta loja 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 do pedido:

      {
        "encryption_spec": {
          "kms_key_name": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME"
        },
      }
      

      Para enviar o seu pedido, expanda uma destas opções:

      Deve receber uma resposta JSON semelhante à seguinte:

      {
        "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"
          }
        }
      }