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 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")