Freigeben über


PipAuthenticate@1 - Python pip authenticate v1 task

Verwenden Sie diese Aufgabe, um die Authentifizierung für den pip-Client bereitzustellen, der Python-Verteilungen 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.

Eingänge

artifactFeeds - "Meine Feeds" (unten auswählen)
string.

Gibt eine durch Trennzeichen getrennte Liste von Azure Artifacts-Feeds an, die bei pip authentifiziert werden sollen.


pythonDownloadServiceConnections - Feeds von externen Organisationen
string.

Gibt eine durch Trennzeichen getrennte Liste der Pip-Dienstverbindung Namen von externen Organisationen an, die mit Pip authentifiziert werden sollen.


onlyAddExtraIndex - Primäre Index-URL nicht festlegen
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 ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.

Ausgabevariablen

Nichts.

Bemerkungen

Stellt die Authentifizierung für den pip-Client bereit, der 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 verwenden, um Python-Verteilungen auf eine authentifizierte Paketquelle wie Azure Artifacts herunterzuladen. Es gibt keine weiteren Bestellanforderungen. Mehrere Aufrufe dieser Aufgabe stapeln keine Anmeldeinformationen. Jede Ausführung der Aufgabe löscht alle zuvor gespeicherten Anmeldeinformationen.

Was soll ich tun, wenn meine Pipelines in der Lage sein sollen, aus upstream-Quellen zu speichern?

Überprüfen Sie die Berechtigungstabelle, um zu bestimmen, welche Berechtigungen Ihre Pipeline besitzen soll. Bestimmen Sie dann, welche Identität Sie diese Berechtigungen erteilen möchten. Um Pakete aus upstream-Quellen zu speichern, benötigt Ihre Identität Feed and Upstream Reader (Collaborator) Berechtigungen.

Mein Agent liegt hinter einem Webproxy. Wird PipAuthenticate pip für die Verwendung meines Proxys eingerichtet?

Nein. Während diese Aufgabe selbst hinter einem Webproxy funktioniert, den Ihr Agent für die Verwendungkonfiguriert hat, konfiguriert er keine Pip für die Verwendung des Proxys.

Dazu haben Sie folgende Möglichkeiten:

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

    Vorsicht

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

  • Fügen Sie die Proxyeinstellungen zur Pip-Konfigurationsdatei Datei mithilfe proxy Schlüssels hinzu.
  • Verwenden Sie die Befehlszeilenoption --proxy, um den Proxy im Formular [user:passwd@]proxy.server:portanzugeben.

Meine Pipeline muss auf einen Feed in einem anderen Projekt zugreifen.

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

Beispiele

Herunterladen von Python-Distributionen aus Azure Artifacts-Feeds ohne Beratung offizielle Python-Registrierung

In diesem Beispiel wird die Authentifizierung zum Herunterladen aus privaten Azure Artifacts-Feeds festgelegt. Die Authentifizierungsaufgabe erstellt Umgebungsvariablen PIP_INDEX_URL und PIP_EXTRA_INDEX_URL, die zum Herunterladen der Verteilungen erforderlich sind. Die Aufgabe legt die Variablen mit Authentifizierungsanmeldeinformationen fest, die die Aufgabe für die bereitgestellten Artefaktefeeds generiert. HelloTestPackage müssen entweder in myTestFeed1 oder in myTestFeed2vorhanden sein; andernfalls schlägt die Installation fehl.

Bei projektbezogenen Feeds, die sich in einem anderen Projekt befinden als bei der Ausführung der Pipeline, müssen Sie dem Projekt und dem Feed Zugriff auf den Builddienst des Pipelineprojekts manuell 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 offizielle Python-Registrierung, und laden Sie dann Python-Distributionen aus Azure Artifacts-Feeds herunter.

In diesem Beispiel wird die Authentifizierung zum Herunterladen aus einem privaten Azure Artifacts-Feed festgelegt, aber pypi zuerst konsultiert wird. Die Authentifizierungsaufgabe erstellt eine Umgebungsvariable PIP_EXTRA_INDEX_URL, die Authentifizierungsanmeldeinformationen enthält, die zum Herunterladen der Verteilungen erforderlich sind. HelloTestPackage werden nur dann aus den authentifizierten Feeds heruntergeladen, wenn sie nicht in pypivorhanden ist.

Bei projektbezogenen Feeds, die sich in einem anderen Projekt befinden als bei der Ausführung der Pipeline, müssen Sie dem Projekt und dem Feed Zugriff auf den Builddienst des Pipelineprojekts manuell 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 wird die Authentifizierung zum Herunterladen von einem externen Python-Verteilungsserver festgelegt. Erstellen Sie eine Pip-Dienstverbindung Eintrag für den externen Dienst. Die Authentifizierungsaufgabe 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 pypitest Dienstverbindung vorhanden sein; andernfalls schlägt die Installation fehl. Wenn Sie möchten, dass pypi zuerst konsultiert werden soll, legen Sie onlyAddExtraIndex auf truefest.

- 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, Classic Build, Classic Release
Läuft auf Agent, DeploymentGroup
Anforderungen Nichts
Funktionen Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag.
Befehlseinschränkungen Jegliche
Settable-Variablen Jegliche
Agentversion 2.144.0 oder höher
Vorgangskategorie Paket
Anforderung Beschreibung
Pipelinetypen YAML, Classic Build, Classic Release
Läuft auf Agent, DeploymentGroup
Anforderungen Nichts
Funktionen Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag.
Befehlseinschränkungen Jegliche
Settable-Variablen Jegliche
Agentversion 2.120.0 oder höher
Vorgangskategorie Paket