PipAuthenticate@1 : Python pip authenticate v1 task

Verwenden Sie diese Aufgabe, um die Authentifizierung für den Client bereitzustellen, der pip Python-Distributionen installiert.

Syntax

# Python pip authenticate v1
# Authentication task for the pip client used for installing Python distributions.
- task: PipAuthenticate@1
  inputs:
  # Feeds and Authentication
    #artifactFeeds: # string. My feeds (select below). 
    #pythonDownloadServiceConnections: # string. Feeds from external organizations. 
    #onlyAddExtraIndex: false # boolean. Don't set primary index URL. Default: false.

Eingaben

artifactFeeds - Meine Feeds (wählen Sie unten aus)
string.

Gibt die Feeds an, die in der Organisation als vorhanden authentifiziert werden sollen.


pythonDownloadServiceConnections - Feeds von externen Organisationen
string.

Gibt eine durch Trennzeichen getrennte Liste von Pip-Dienstverbindungsnamen von externen Organisationen an, die mit pip authentifiziert werden sollen.


onlyAddExtraIndex - Legen Sie die URL des primären Indexes nicht fest.
boolean. Standardwert. false.

Wenn diese Aufgabe auf truefestgelegt ist, wird kein Feed als primäre Index-URL festgelegt. Alle konfigurierten Feeds/Endpunkte werden als zusätzliche Index-URLs festgelegt.


Aufgabensteuerungsoptionen

Alle Aufgaben verfügen zusätzlich zu den Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.

Ausgabevariablen

Keine.

Hinweise

Stellt die Authentifizierung für den Client bereit, der pip zum Installieren von Python-Verteilungen verwendet wird.

Wann sollte ich diese Aufgabe in meiner Pipeline ausführen?

Diese Aufgabe muss ausgeführt werden, bevor Sie pip zum Herunterladen von Python-Distributionen in eine authentifizierte Paketquelle wie Azure Artifacts verwenden. Es gibt keine weiteren Bestellanforderungen. Mehrere Aufrufe dieser Aufgabe stapeln keine Anmeldeinformationen. Bei jeder Ausführung der Aufgabe werden alle zuvor gespeicherten Anmeldeinformationen gelöscht.

Mein Agent befindet sich hinter einem Webproxy. Richtet PipAuthenticate pip für die Verwendung meines Proxys ein?

Nein. Obwohl diese Aufgabe selbst hinter einem Webproxy funktioniert, für den Ihr Agent verwendet wurde, konfiguriert sie pip nicht für die Verwendung des Proxys.

Dazu haben Sie folgende Möglichkeiten:

  • Legen Sie die Umgebungsvariablen http_proxyhttps_proxy und optional no_proxy auf Ihre Proxyeinstellungen fest. Weitere Informationen finden Sie in den offiziellen Richtlinien von Pip . Dies sind häufig verwendete Variablen, die auch andere Nicht-Python-Tools (z. B. curl) verwenden können.

    Achtung

    Bei den http_proxy Variablen und no_proxy wird auf Linux- und Mac-Betriebssystemen die Groß-/Kleinschreibung beachtet. Der Versuch, eine Azure Pipelines-Variable zum Festlegen der Umgebungsvariablen zu verwenden, funktioniert nicht, da sie in Großbuchstaben konvertiert wird. Legen Sie stattdessen die Umgebungsvariablen auf dem Computer des selbstgehosteten Agents fest, und starten Sie den Agent neu.

  • Fügen Sie die Proxyeinstellungen der pip-Konfigurationsdateidatei mithilfe des Schlüssels proxy hinzu.
  • Verwenden Sie die --proxy Befehlszeilenoption, um den Proxy im Format [user:passwd@]proxy.server:portanzugeben.

Meine Pipeline muss auf einen Feed in einem anderen Projekt zugreifen

Wenn die Pipeline in einem anderen Projekt als dem Projekt ausgeführt wird, das den Feed hostet, müssen Sie das andere Projekt so einrichten, dass Lese-/Schreibzugriff auf den Builddienst gewährt wird. Weitere Informationen finden Sie unter Paketberechtigungen in Azure Pipelines .

Beispiele

Herunterladen von Python-Distributionen aus Azure Artifacts-Feeds ohne Rücksprache mit der offiziellen Python-Registrierung

In diesem Beispiel legen wir die Authentifizierung für das Herunterladen aus privaten Azure Artifacts-Feeds fest. Die Authentifizierungsaufgabe erstellt Umgebungsvariablen PIP_INDEX_URL , PIP_EXTRA_INDEX_URL die zum Herunterladen der Verteilungen erforderlich sind. Der Task legt die Variablen mit Authentifizierungsanmeldeinformationen fest, die der Task für die bereitgestellten Artefaktefeeds generiert. HelloTestPackage muss in oder myTestFeed1myTestFeed2vorhanden sein. Andernfalls tritt bei der Installation ein Fehler auf.

Für projektbezogene Feeds, die sich in einem anderen Projekt befinden als in dem, in dem die Pipeline ausgeführt wird, müssen Sie dem Projekt und dem Feed manuell Zugriff auf den Builddienst des Pipelineprojekts gewähren.

- task: PipAuthenticate@1
  displayName: 'Pip Authenticate'
  inputs:
    # Provide list of feed names which you want to authenticate.
    # Project scoped feeds must include the project name in addition to the feed name.
    artifactFeeds: 'project1/myTestFeed1, myTestFeed2'

# Use command line tool to 'pip install'.
- script: |
    pip install HelloTestPackage

Konsultieren Sie die offizielle Python-Registrierung, und laden Sie dann Python-Distributionen aus Azure Artifacts-Feeds herunter.

In diesem Beispiel legen wir die Authentifizierung für das Herunterladen aus einem privaten Azure Artifacts-Feed fest, aber pypi wird zuerst konsultiert. Der Authentifizierungstask erstellt eine Umgebungsvariable PIP_EXTRA_INDEX_URL, die Authentifizierungsanmeldeinformationen enthält, die zum Herunterladen der Verteilungen erforderlich sind. HelloTestPackage wird nur aus den authentifizierten Feeds heruntergeladen, wenn sie in pypi nicht vorhanden sind.

Für projektbezogene Feeds, die sich in einem anderen Projekt befinden als in dem, in dem die Pipeline ausgeführt wird, müssen Sie dem Projekt und dem Feed manuell Zugriff auf den Builddienst des Pipelineprojekts gewähren.

- task: PipAuthenticate@1
  displayName: 'Pip Authenticate'
  inputs:
    # Provide list of feed names which you want to authenticate.
    # Project scoped feeds must include the project name in addition to the feed name.
    artifactFeeds: 'project1/myTestFeed1, myTestFeed2'
    # Setting this variable to "true" will force pip to get distributions from official python registry first and fallback to feeds mentioned above if distributions are not found there.
    onlyAddExtraIndex: true

# Use command line tool to 'pip install'.
- script: |
    pip install HelloTestPackage

Herunterladen von Python-Distributionen von anderen privaten Python-Servern

In diesem Beispiel legen wir die Authentifizierung für das Herunterladen von einem externen Python-Verteilungsserver fest. Erstellen Sie einen Pip-Dienstverbindungseintrag für den externen Dienst. Der Authentifizierungstask verwendet die Dienstverbindung, um eine Umgebungsvariable PIP_INDEX_URLzu erstellen, die Authentifizierungsanmeldeinformationen enthält, die zum Herunterladen der Verteilungen erforderlich sind. HelloTestPackage muss in der Dienstverbindung vorhanden sein, andernfalls tritt bei der pypitest Installation ein Fehler auf. Wenn Pypi zuerst konsultiert werden soll, legen Sie auf truefestonlyAddExtraIndex.

- task: PipAuthenticate@1
  displayName: 'Pip Authenticate'
  inputs:
    # In this case, name of the service connection is "pypitest". 
    pythonDownloadServiceConnections: pypitest

# Use command line tool to 'pip install'.
- script: |
    pip install HelloTestPackage

Anforderungen

Anforderung BESCHREIBUNG
Pipelinetypen YAML, Klassischer Build, klassische Version
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Einstellbare Variablen Any
Agent-Version 2.144.0 oder höher
Aufgabenkategorie Paket
Anforderung BESCHREIBUNG
Pipelinetypen YAML, Klassischer Build, klassische Version
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Einstellbare Variablen Any
Agent-Version 2.120.0 oder höher
Aufgabenkategorie Paket