Use a interface do Private Service Connect para o Vertex AI Training

Recomendamos a interface do Private Service Connect para a conetividade privada, uma vez que reduz a probabilidade de esgotamento de IPs e permite o peering transitivo.

A interface do Private Service Connect é suportada em tarefas personalizadas e recursos persistentes da Vertex AI.

Vista geral

A interface do Private Service Connect é suportada em tarefas personalizadas e recursos persistentes do Vertex AI Training. Para usar a interface do Private Service Connect, tem de configurar uma rede VPC, uma sub-rede e uma associação de rede no seu projeto de utilizador. Consulte o artigo Configure uma interface do Private Service Connect. O nome da associação da rede tem de ser incluído no pedido para criar uma tarefa personalizada ou um recurso persistente para ativar a interface do Private Service Connect.

Conetividade de saída do Private Service Connect do Vertex AI a outras redes

O Vertex AI integrou as conetividades de rede de saída suportadas pelo Private Service Connect (consulte a secção Estabelecer ligação a cargas de trabalho noutras redes), com as seguintes exceções:

  • A saída para o acesso privado da Google de um cliente não é suportada. Em alternativa, a saída do Private Service Connect seria resolvida localmente para o acesso privado à Google.

  • A saída para o Cloud NAT só é suportada quando o VPC Service Control está ativado.

Limitações

Para ver as funcionalidades e as limitações das interfaces do Private Service Connect, consulte o artigo Acerca do acesso aos serviços da Vertex AI através de interfaces do Private Service Connect.

Preços

Os preços das interfaces do Private Service Connect são descritos na secção "Usar uma interface do Private Service Connect para aceder a uma rede VPC de produtor ou consumidor" na página Todos os preços de rede.

Antes de começar

Configure os seus recursos para a interface do Private Service Connect no projeto do utilizador.

Crie uma tarefa de preparação personalizada com uma interface do Private Service Connect

Pode criar uma tarefa de preparação personalizada com a interface do Private Service Connect através do SDK Vertex AI para Python ou da API REST.

Python

Para criar uma tarefa de preparação personalizada com o PSC-I através do SDK Vertex AI para Python, configure a tarefa através da definição aiplatform_v1/services/job_service.

Python

from google.cloud import aiplatform


def create_custom_job_psci_sample(
    project: str,
    location: str,
    bucket: str,
    display_name: str,
    machine_type: str,
    replica_count: int,
    image_uri: str,
    network_attachment: str,
    domain: str,
    target_project: str,
    target_network: str,
):
    """Custom training job sample with PSC Interface Config."""
    aiplatform.init(project=project, location=location, staging_bucket=bucket)

    worker_pool_specs = [{
        "machine_spec": {
            "machine_type": machine_type,
        },
        "replica_count": replica_count,
        "container_spec": {
            "image_uri": image_uri,
            "command": [],
            "args": [],
        },
    }]
    psc_interface_config = {
        "network_attachment": network_attachment,
        "dns_peering_configs": [
            {
                "domain": domain,
                "target_project": target_project,
                "target_network": target_network,
            },
        ],
    }
    job = aiplatform.CustomJob(
        display_name=display_name,
        worker_pool_specs=worker_pool_specs,
    )

    job.run(psc_interface_config=psc_interface_config)

  • project: . Pode encontrar estes IDs na página de Google Cloud boas-vindasda consola.
  • location: consulte a lista de localizações disponíveis.
  • bucket: substitua bucket pelo nome de um contentor ao qual tem acesso.
  • display_name: o nome a apresentar do recurso persistente.
  • machine_type: especifique os recursos de computação.
  • replica_count: o número de réplicas de trabalhadores a usar para cada teste.
  • service_attachment: o nome do recurso de associação de serviço. Preenchido se o Private Service Connect estiver ativado.
  • image_uri: o URI de uma imagem de contentor do Docker com o seu código de preparação. Saiba como criar uma imagem de contentor personalizada.
  • network_attachment: o nome ou o caminho completo da associação de rede que criou quando configurou os recursos para o Private Service Connect.
  • domain: O nome DNS da zona DNS privado que criou quando configurou o peering de DNS privado.
  • target_project: o projeto que aloja a rede VPC.
  • target_network: o nome da rede VPC.

REST

Para criar uma tarefa de preparação personalizada, envie um pedido POST através do método customJobs.create.

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

  • LOCATION: a região onde o contentor ou o pacote Python vai ser executado.
  • PROJECT_ID: o seu ID do projeto.
  • JOB_NAME: um nome a apresentar para o CustomJob.
  • REPLICA_COUNT: o número de réplicas de trabalhadores a usar. Na maioria dos casos, defina este valor como 1 para o seu primeiro conjunto de trabalhadores.
  • Se a sua aplicação de preparação for executada num contentor personalizado, especifique o seguinte:
    • IMAGE_URI: o URI de uma imagem de contentor do Docker com o seu código de preparação. Saiba como criar uma imagem de contentor personalizada.
    • NETWORK_ATTACHMENT: O nome ou o caminho completo da associação da rede que criou quando configurou a interface do Private Service Connect.
    • Se precisar de interconexão de DNS privado, o campo dns_peering_configs é obrigatório. Para esta lista, cada item contém:
      • DOMAIN_SUFFIX: O nome DNS da zona DNS do Cloud privado que criou quando configurou o peering de DNS privado.
      • TARGET_PROJECT: o projeto que aloja a rede VPC.
      • TARGET_NETWORK: o nome da rede VPC.

Método HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs

Corpo JSON do pedido:

"display_name": JOB_NAME,
"job_spec": {
    "worker_pool_specs": [
      {
        "machine_spec": {
          "machine_type": "n2-standard-4",
        },
        "replica_count": REPLICA_COUNT,
        "container_spec": {
          "image_uri": IMAGE_URI,
        },
      },
    ],
    "psc_interface_config": {
      "network_attachment": NETWORK_ATTACHMENT,
      "dns_peering_configs": [
         {
          "domain": DOMAIN_SUFFIX,
          "target_project": TARGET_PROJECT,
          "target_network": TARGET_NETWORK
         }
      ],
    },
    "enable_web_access": 1
}

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

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs"

PowerShell

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs" | Select-Object -Expand Content

Deve receber uma resposta JSON semelhante à seguinte: