Partager via


PipAuthenticate@1 - Tâche d’authentification pip Python v1

Utilisez cette tâche pour fournir l’authentification pour le client pip qui installe des distributions Python.

Syntaxe

# 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.

Entrées

artifactFeeds - Mes flux (sélectionnez ci-dessous)
string.

Spécifie une liste séparée par des virgules des flux Azure Artifacts pour s’authentifier auprès de pip.


flux de pythonDownloadServiceConnections - provenant d’organisations externes
string.

Spécifie une liste séparée par des virgules de connexion de service pip noms d’organisations externes pour s’authentifier auprès de pip.


onlyAddExtraIndex - Ne pas définir l’URL d’index primaire
boolean. Valeur par défaut : false.

Si cette tâche est définie sur true, aucun flux n’est défini comme URL d’index primaire. Tous les flux/points de terminaison configurés sont définis en tant qu’URL d’index supplémentaires.


Options de contrôle de tâche

Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâche. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.

Variables de sortie

Aucun.

Remarques

Fournit l’authentification pour le client pip utilisé pour installer des distributions Python.

Quand dans mon pipeline dois-je exécuter cette tâche ?

Cette tâche doit s’exécuter avant d’utiliser pip pour télécharger des distributions Python vers une source de package authentifiée telle qu’Azure Artifacts. Il n’existe aucune autre exigence de classement. Plusieurs appels de cette tâche ne empilent pas les informations d’identification. Chaque exécution de la tâche efface les informations d’identification précédemment stockées.

Que se passe-t-il si je souhaite que mes pipelines puissent enregistrer à partir de sources en amont ?

Vérifiez la table d’autorisations pour déterminer les autorisations dont vous souhaitez disposer pour votre pipeline. Ensuite, déterminez l’identité à laquelle vous souhaitez accorder ces autorisations. Pour enregistrer des packages à partir de sources en amont, votre identité a besoin d’autorisations Feed and Upstream Reader (Collaborator).

Mon agent se trouve derrière un proxy web. PipAuthenticate configurera-t-il pip pour utiliser mon proxy ?

Non. Bien que cette tâche elle-même fonctionne derrière un proxy web votre agent a été configuré pour utiliser, il ne configure pas pip pour utiliser le proxy.

Pour ce faire, vous pouvez :

  • Définissez les variables d’environnement http_proxy, https_proxy et éventuellement no_proxy sur vos paramètres proxy. Consultez instructions officielles pip pour plus d’informations. Il s’agit de variables couramment utilisées, que d’autres outils non-Python (par exemple curl) peuvent également utiliser.

    Prudence

    Les variables http_proxy et no_proxy respectent la casse sur les systèmes d’exploitation Linux et Mac et doivent être en minuscules. La tentative d’utilisation d’une variable Azure Pipelines pour définir la variable d’environnement ne fonctionnera pas, car elle sera convertie en majuscules. Au lieu de cela, définissez les variables d’environnement sur l’ordinateur de l’agent auto-hébergé et redémarrez l’agent.

  • Ajoutez les paramètres du proxy au fichier de configuration pip fichier à l’aide de proxy clé.
  • Utilisez l’option de ligne de commande --proxy pour spécifier le proxy dans le formulaire [user:passwd@]proxy.server:port.

Mon pipeline doit accéder à un flux dans un autre projet

Si le pipeline s’exécute dans un projet différent du projet hébergeant le flux, vous devez configurer l’autre projet pour accorder un accès en lecture/écriture au service de génération. Pour plus d’informations, consultez autorisations de package dans Azure Pipelines.

Exemples

Télécharger des distributions Python à partir de flux Azure Artifacts sans consulter le registre Python officiel

Dans cet exemple, nous définissons l’authentification pour le téléchargement à partir de flux Azure Artifacts privés. La tâche d’authentification crée des variables d’environnement PIP_INDEX_URL et PIP_EXTRA_INDEX_URL requises pour télécharger les distributions. La tâche définit les variables avec les informations d’identification d’authentification générées par la tâche pour les flux Artefacts fournis. HelloTestPackage doit être présent dans myTestFeed1 ou myTestFeed2; sinon, l’installation échoue.

Pour les flux dans l’étendue du projet qui se trouvent dans un projet différent de celui où le pipeline est en cours d’exécution, vous devez donner manuellement au projet et au flux l’accès au service de génération du projet du pipeline.

- 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

Consultez le registre Python officiel, puis téléchargez les distributions Python à partir des flux Azure Artifacts

Dans cet exemple, nous définissons l’authentification pour le téléchargement à partir d’un flux Azure Artifacts privé, mais pypi est consulté en premier. La tâche d’authentification crée une variable d’environnement PIP_EXTRA_INDEX_URL, qui contient les informations d’identification d’authentification requises pour télécharger les distributions. HelloTestPackage sera téléchargé à partir des flux authentifiés uniquement s’il n’est pas présent dans pypi.

Pour les flux dans l’étendue du projet qui se trouvent dans un projet différent de celui où le pipeline est en cours d’exécution, vous devez donner manuellement au projet et au flux l’accès au service de génération du projet du pipeline.

- 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

Télécharger des distributions Python à partir d’autres serveurs Python privés

Dans cet exemple, nous définissons l’authentification pour le téléchargement à partir d’un serveur de distribution Python externe. Créez une connexion de service pip d’entrée pour le service externe. La tâche d’authentification utilise la connexion de service pour créer une variable d’environnement PIP_INDEX_URL, qui contient les informations d’identification d’authentification requises pour télécharger les distributions. HelloTestPackage doit être présent dans la connexion de service pypitest ; sinon, l’installation échoue. Si vous souhaitez que pypi soit consulté en premier, définissez onlyAddExtraIndex sur 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

Exigences

Exigence Description
Types de pipelines YAML, Build Classique, Version Classique
Exécutions sur Agent, DeploymentGroup
demandes Aucun
fonctionnalités de Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail.
restrictions de commande Quelconque
variables settables Quelconque
Version de l’agent 2.144.0 ou version ultérieure
Catégorie de tâche Colis
Exigence Description
Types de pipelines YAML, Build Classique, Version Classique
Exécutions sur Agent, DeploymentGroup
demandes Aucun
fonctionnalités de Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail.
restrictions de commande Quelconque
variables settables Quelconque
Version de l’agent 2.120.0 ou version ultérieure
Catégorie de tâche Colis