Dela via


PipAuthenticate@1 – Python pip-autentisera v1-uppgift

Använd den här uppgiften för att tillhandahålla autentisering för den pip-klienten som installerar Python-distributioner.

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.

Ingångar

artifactFeeds - Mina feeds (välj nedan)
string.

Anger en kommaavgränsad lista över Azure Artifacts-feeds som ska autentiseras med pip.


pythonDownloadServiceConnections - feeds från externa organisationer
string.

Anger en kommaavgränsad lista över pip-tjänstanslutning namn från externa organisationer för att autentisera med pip.


onlyAddExtraIndex - Ange inte primär index-URL
boolean. Standardvärde: false.

Om den här aktiviteten är inställd på trueanges ingen feed som primär index-URL. Alla konfigurerade feeds/slutpunkter anges som extra index-URL:er.


Alternativ för aktivitetskontroll

Alla aktiviteter har kontrollalternativ utöver sina uppgiftsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.

Utdatavariabler

Ingen.

Anmärkningar

Tillhandahåller autentisering för den pip klient som används för att installera Python-distributioner.

När i min pipeline ska jag köra den här uppgiften?

Den här uppgiften måste köras innan du använder pip för att ladda ned Python-distributioner till en autentiserad paketkälla, till exempel Azure Artifacts. Det finns inga andra beställningskrav. Flera anrop för den här uppgiften staplar inte autentiseringsuppgifter. Varje körning av uppgiften raderar alla tidigare lagrade autentiseringsuppgifter.

Vad händer om jag vill att mina pipelines ska kunna sparas från överordnade källor?

Kontrollera tabellen behörigheter för att avgöra vilka behörigheter du vill att din pipeline ska ha. Bestäm sedan vilken identitet du vill ge dessa behörigheter till. För att spara paket från överordnade källor behöver din identitet Feed and Upstream Reader (Collaborator) behörigheter.

Min agent finns bakom en webbproxy. Kommer PipAuthenticate att konfigurera pip för att använda min proxy?

Nej. Även om den här uppgiften i sig fungerar bakom en webbproxy så har agenten konfigurerats att använda, men den konfigurerar inte pip för att använda proxyn.

För att göra det kan du:

  • Ange miljövariablerna http_proxy, https_proxy och eventuellt no_proxy till proxyinställningarna. Mer information finns i Pip officiella riktlinjer. Dessa är vanliga variabler, som andra icke-Python-verktyg (t.ex. curl) också kan använda.

    Försiktighet

    Variablerna http_proxy och no_proxy är skiftlägeskänsliga på Linux- och Mac-operativsystem och måste vara gemener. Försök att använda en Azure Pipelines-variabel för att ange miljövariabeln fungerar inte eftersom den konverteras till versaler. Ange i stället miljövariablerna på den lokalt installerade agentens dator och starta om agenten.

  • Lägg till proxyinställningarna i pip-konfigurationsfilen fil med hjälp av proxy nyckel.
  • Använd kommandoradsalternativet --proxy för att ange proxy i formuläret [user:passwd@]proxy.server:port.

Min pipeline måste komma åt en feed i ett annat projekt

Om pipelinen körs i ett annat projekt än det projekt som är värd för flödet måste du konfigurera det andra projektet för att bevilja läs-/skrivåtkomst till byggtjänsten. Mer information finns i Paketbehörigheter i Azure Pipelines.

Exempel

Ladda ned Python-distributioner från Azure Artifacts-feeds utan att konsultera det officiella Python-registret

I det här exemplet ställer vi in autentisering för nedladdning från privata Azure Artifacts-feeds. Autentiseringsaktiviteten skapar miljövariabler PIP_INDEX_URL och PIP_EXTRA_INDEX_URL som krävs för att ladda ned distributionerna. Aktiviteten anger variablerna med autentiseringsuppgifter som aktiviteten genererar för de angivna Artefaktflödena. HelloTestPackage måste finnas i antingen myTestFeed1 eller myTestFeed2. annars misslyckas installationen.

För projektomfattande feeds som finns i ett annat projekt än där pipelinen körs måste du manuellt ge projektet och feedåtkomsten till pipelinens projektversionstjänst.

- 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

Läs det officiella Python-registret och ladda sedan ned Python-distributioner från Azure Artifacts-feeds

I det här exemplet ställer vi in autentisering för nedladdning från en privat Azure Artifacts-feed, men pypi- konsulteras först. Autentiseringsuppgiften skapar en miljövariabel PIP_EXTRA_INDEX_URL, som innehåller autentiseringsuppgifter som krävs för att ladda ned distributionerna. HelloTestPackage laddas endast ned från autentiserade feeds om den inte finns i pypi-.

För projektomfattande feeds som finns i ett annat projekt än där pipelinen körs måste du manuellt ge projektet och feedåtkomsten till pipelinens projektversionstjänst.

- 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

Ladda ned Python-distributioner från andra privata Python-servrar

I det här exemplet ställer vi in autentisering för nedladdning från en extern Python-distributionsserver. Skapa en pip-tjänstanslutning post för den externa tjänsten. Autentisera-aktiviteten använder tjänstanslutningen för att skapa en miljövariabel PIP_INDEX_URL, som innehåller autentiseringsuppgifter som krävs för att ladda ned distributionerna. HelloTestPackage måste finnas i pypitest-tjänstanslutningen. annars misslyckas installationen. Om du vill att pypi ska konsulteras först anger du onlyAddExtraIndex till true.

- 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

Krav

Krav Beskrivning
Pipelinetyper YAML, klassisk version, klassisk version
Körs på Agent, DeploymentGroup
kräver Ingen
funktioner Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet.
Kommandobegränsningar Någon
variabler som kan Någon
Agentversion 2.144.0 eller senare
Aktivitetskategori Paket
Krav Beskrivning
Pipelinetyper YAML, klassisk version, klassisk version
Körs på Agent, DeploymentGroup
kräver Ingen
funktioner Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet.
Kommandobegränsningar Någon
variabler som kan Någon
Agentversion 2.120.0 eller senare
Aktivitetskategori Paket