Compartir a través de


PipAuthenticate@1: tarea autenticación de pip de Python v1

Use esta tarea para proporcionar autenticación para el cliente de pip que instala distribuciones de Python.

Sintaxis

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

Entradas

artifactFeeds - Mis fuentes (seleccione a continuación)
string.

Especifica una lista separada por comas de fuentes de Azure Artifacts para autenticarse con pip.


fuentes de pythonDownloadServiceConnections - de organizaciones externas
string.

Especifica una lista separada por comas de conexión de servicio pip nombres de organizaciones externas para autenticarse con pip.


onlyAddExtraIndex - No establecer la dirección URL del índice principal
boolean. Valor predeterminado: false.

Si esta tarea se establece en true, no se establecerá ninguna fuente como dirección URL del índice principal. Todas las fuentes o puntos de conexión configurados se establecerán como direcciones URL de índice adicionales.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Observaciones

Proporciona autenticación para el cliente de pip que se usa para instalar distribuciones de Python.

¿Cuándo debo ejecutar esta tarea en mi canalización?

Esta tarea debe ejecutarse antes de usar pip para descargar distribuciones de Python en un origen de paquete autenticado, como Azure Artifacts. No hay ningún otro requisito de ordenación. Varias invocaciones de esta tarea no apilan las credenciales. Cada ejecución de la tarea borrará las credenciales almacenadas previamente.

¿Qué ocurre si quiero que mis canalizaciones puedan guardar desde orígenes ascendentes?

Compruebe la tabla permisos para determinar qué permisos desea que tenga la canalización. A continuación, determine a qué identidad desea conceder esos permisos. Para guardar paquetes de orígenes ascendentes, la identidad necesita Feed and Upstream Reader (Collaborator) permisos.

Mi agente está detrás de un proxy web. ¿PipAuthenticate configurará pip para usar mi proxy?

No. Aunque esta propia tarea funcionará detrás de un proxy web de que el agente se ha configurado para usar, no configura pip para usar el proxy.

Para ello, puede hacer lo siguiente:

  • Establezca las variables de entorno http_proxy, https_proxy y, opcionalmente, no_proxy en la configuración del proxy. Consulte directrices oficiales de Pip para obtener más información. Estas son variables usadas normalmente, que otras herramientas que no son de Python (por ejemplo, curl) también pueden usarse.

    Cautela

    Las variables http_proxy y no_proxy distinguen mayúsculas de minúsculas en sistemas operativos Linux y Mac y deben estar en minúsculas. Si intenta usar una variable de Azure Pipelines para establecer la variable de entorno, no funcionará, ya que se convertirá en mayúsculas. En su lugar, establezca las variables de entorno en el equipo del agente autohospedado y reinicie el agente.

  • Agregue la configuración del proxy al archivo de configuración de pip mediante proxy clave.
  • Use la opción de línea de comandos --proxy para especificar proxy en el formulario [user:passwd@]proxy.server:port.

Mi canalización debe acceder a una fuente en un proyecto diferente

Si la canalización se ejecuta en un proyecto diferente al que hospeda la fuente, debe configurar el otro proyecto para conceder acceso de lectura y escritura al servicio de compilación. Consulte Permisos de paquete en Azure Pipelines para más información.

Ejemplos

Descarga de distribuciones de Python desde fuentes de Azure Artifacts sin consultar el registro oficial de Python

En este ejemplo, se establece la autenticación para descargar desde fuentes privadas de Azure Artifacts. La tarea de autenticación crea variables de entorno PIP_INDEX_URL y PIP_EXTRA_INDEX_URL necesarias para descargar las distribuciones. La tarea establece las variables con credenciales de autenticación que la tarea genera para las fuentes artifacts proporcionadas. HelloTestPackage deben estar presentes en myTestFeed1 o myTestFeed2; De lo contrario, se producirá un error en la instalación.

En el caso de las fuentes con ámbito de proyecto que se encuentran en un proyecto diferente al donde se ejecuta la canalización, debe proporcionar manualmente al proyecto y a la fuente acceso al servicio de compilación del proyecto de la canalización.

- 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

Consulte el registro oficial de Python y, a continuación, descargue distribuciones de Python desde fuentes de Azure Artifacts.

En este ejemplo, se establece la autenticación para descargar desde una fuente privada de Azure Artifacts, pero primero se consulta pypi. La tarea de autenticación crea una variable de entorno PIP_EXTRA_INDEX_URL, que contiene las credenciales de autenticación necesarias para descargar las distribuciones. HelloTestPackage se descargarán de las fuentes autenticadas solo si no está presente en pypi.

En el caso de las fuentes con ámbito de proyecto que se encuentran en un proyecto diferente al donde se ejecuta la canalización, debe proporcionar manualmente al proyecto y a la fuente acceso al servicio de compilación del proyecto de la canalización.

- 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

Descarga de distribuciones de Python desde otros servidores privados de Python

En este ejemplo, se establece la autenticación para descargar desde un servidor de distribución externo de Python. Cree una entrada de conexión de servicio pip para el servicio externo. La tarea de autenticación usa la conexión de servicio para crear una variable de entorno PIP_INDEX_URL, que contiene las credenciales de autenticación necesarias para descargar las distribuciones. HelloTestPackage debe estar presente en la conexión del servicio pypitest; De lo contrario, se producirá un error en la instalación. Si desea consultar primero pypi, establezca onlyAddExtraIndex en 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

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
demandas Ninguno
funcionalidades de Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
restricciones de comandos Cualquier
variables settable Cualquier
Versión del agente 2.144.0 o superior
Categoría de tarea Paquete
Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
demandas Ninguno
funcionalidades de Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
restricciones de comandos Cualquier
variables settable Cualquier
Versión del agente 2.120.0 o superior
Categoría de tarea Paquete