Benutzerdefiniertes Servicekonto mit KFP-Pipelines in Vertex AIPython

Python-Programme
Guest
 Benutzerdefiniertes Servicekonto mit KFP-Pipelines in Vertex AI

Post by Guest »

Es wird versucht, ein bestimmtes (nicht standardmäßiges) Dienstkonto zum Ausführen von KFP-Pipelines in VertexAI zu verwenden. JSON-Schlüssel sind keine Option.
Erhält sowohl die Projekt-ID als auch die Anmeldeinformationen idealerweise mit google.auth.default(), wie im google.auth-Benutzerhandbuch empfohlen .
Bisher habe ich versucht:
  • Mit dem veralteten kfp.v2.google.client.AIPlatformClient< /code>, Kunde Instanziiert mit angegebener Projekt-ID und Ausführen der Pipeline mit create_run_from_spec mit service_account-Schlüsselwortargument
  • Unter Verwendung von google.cloud.aiplatform.pipeline_jobs.PipelineJob, Objekt Instanziiert mit Projekt-ID, Pipeline-Ausführung mit Submit und service_account kwarg
  • Erstellen einer neuen Ausführung über die Cloud-Benutzeroberfläche (und die erstellte JSON-Datei). durch Kompilieren der Pipeline) mit angegebenem Dienstkonto.
Ich habe alle drei sowohl mit der eigentlichen Pipeline (die auf benutzerdefinierten Containern läuft) als auch mit einer minimalen Pipeline ausprobiert Arbeitsbeispiel (unter Verwendung leichter Python-Komponenten). In allen Fällen erhalte ich, wenn ich creds, project = google.auth.default() ausführe und dann das Projekt und creds.service_account_email ausdrucke, eine Projekt-ID, die ich nicht kenne (immer dieselbe). eine in allen Fällen) und Standard für die E-Mail-Adresse des Dienstkontos.
Ich glaube, ich mache etwas falsch, kann aber nicht herausfinden, was. Anscheinend wird die Konfiguration, die ich an die Pipeline-Ausführung übergebe, überhaupt nicht verwendet.
Als Referenz: das MWE:

Code: Select all

 from kfp.v2 import dsl

@dsl.component(packages_to_install=['google-auth'])
def check_auth(name:str) -> str:
import google.auth
creds,project = google.auth.default()
print(f'Project is: {project}')
print(f'Got creds for: {creds.service_account_email}')
return project

@dsl.pipeline(
name='adc-mwe-pipeline'
)
def pipeline() -> str:
auth_check = check_auth(name='name')
return auth_check.output

from google.cloud.aiplatform import pipeline_jobs
from kfp.v2 import compiler

compiler.Compiler().compile(pipeline_func=pipeline, package_path='mwe.json')

start_pipeline = pipeline_jobs.PipelineJob(
display_name='mwe',
template_path='mwe.json',
location='some-location',
project='my-project',
enable_caching=False
)

start_pipeline.submit(service_account="my-service-account")

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post