Compartilhar via


PipAuthenticate@1 – Tarefa de autenticação de pip do Python v1

Use essa tarefa para fornecer autenticação para o cliente pip que instala distribuições do Python.

Sintaxe

# 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 - Meus feeds (selecione abaixo)
string.

Especifica uma lista separada por vírgulas de feeds do Azure Artifacts para autenticar com pip.


feeds pythonDownloadServiceConnections - de organizações externas
string.

Especifica uma lista separada por vírgulas de conexão de serviço pip nomes de organizações externas para autenticar com pip.


onlyAddExtraIndex - Não definir de URL do índice primário
boolean. Valor padrão: false.

Se essa tarefa estiver definida como true, nenhum feed será definido como a URL do índice primário. Todos os feeds/pontos de extremidade configurados serão definidos como URLs de índice extras.


Opções de controle de tarefa

Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte as opções de Controle de e as propriedades comuns da tarefa.

Variáveis de saída

Nenhum.

Observações

Fornece autenticação para o cliente pip que é usado para instalar distribuições do Python.

Quando no meu pipeline devo executar essa tarefa?

Essa tarefa deve ser executada antes de usar o pip para baixar distribuições do Python em uma fonte de pacote autenticada, como o Azure Artifacts. Não há outros requisitos de ordenação. Várias invocações dessa tarefa não empilharão credenciais. Cada execução da tarefa apagará as credenciais armazenadas anteriormente.

E se eu quiser que meus pipelines sejam capazes de salvar de fontes upstream?

Verifique a tabela de permissões para determinar quais permissões você deseja que o pipeline tenha. Em seguida, determine a qual identidade você deseja conceder essas permissões. Para salvar pacotes de fontes upstream, sua identidade precisa Feed and Upstream Reader (Collaborator) permissões.

Meu agente está por trás de um proxy Web. PipAuthenticate configurará pip para usar meu proxy?

Não. Embora essa tarefa em si funcione por trás de um proxy Web seu agente tenha sido configurado para usar, ela não configura o pip para usar o proxy.

Para fazer isso, você pode:

  • Defina as variáveis de ambiente http_proxy, https_proxy e, opcionalmente, no_proxy para suas configurações de proxy. Consulte as diretrizes oficiais do Pip para obter detalhes. Essas são variáveis comumente usadas, que outras ferramentas não Python (por exemplo, curl) também podem usar.

    Cuidado

    As variáveis http_proxy e no_proxy diferenciam maiúsculas de minúsculas em sistemas operacionais Linux e Mac e devem ser minúsculas. A tentativa de usar uma variável do Azure Pipelines para definir a variável de ambiente não funcionará, pois ela será convertida em maiúscula. Em vez disso, defina as variáveis de ambiente no computador do agente auto-hospedado e reinicie o agente.

  • Adicione as configurações de proxy ao arquivo de configuração pip arquivo usando proxy chave.
  • Use a opção de linha de comando --proxy para especificar o proxy no formulário [user:passwd@]proxy.server:port.

Meu Pipeline precisa acessar um feed em um projeto diferente

Se o pipeline estiver em execução em um projeto diferente do projeto que hospeda o feed, você deverá configurar o outro projeto para conceder acesso de leitura/gravação ao serviço de build. Consulte permissões de pacote no Azure Pipelines para obter mais detalhes.

Exemplos

Baixar distribuições do Python de feeds do Azure Artifacts sem consultar o registro oficial do Python

Neste exemplo, estamos definindo a autenticação para download de feeds privados do Azure Artifacts. A tarefa de autenticação cria variáveis de ambiente PIP_INDEX_URL e PIP_EXTRA_INDEX_URL necessárias para baixar as distribuições. A tarefa define as variáveis com credenciais de autenticação que a tarefa gera para os feeds de Artefatos fornecidos. HelloTestPackage deve estar presente em myTestFeed1 ou myTestFeed2; caso contrário, a instalação falhará.

Para feeds com escopo de projeto que estão em um projeto diferente do local em que o pipeline está sendo executado, você deve fornecer manualmente ao projeto e ao feed acesso ao serviço de build do projeto do 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

Consulte o registro oficial do Python e baixe as distribuições do Python nos feeds do Azure Artifacts

Neste exemplo, estamos definindo a autenticação para download de um feed privado do Azure Artifacts, mas pypi é consultado primeiro. A tarefa de autenticação cria uma variável de ambiente PIP_EXTRA_INDEX_URL, que contém as credenciais de autenticação necessárias para baixar as distribuições. HelloTestPackage será baixado dos feeds autenticados somente se não estiver presente no pypi.

Para feeds com escopo de projeto que estão em um projeto diferente do local em que o pipeline está sendo executado, você deve fornecer manualmente ao projeto e ao feed acesso ao serviço de build do projeto do 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

Baixar distribuições do Python de outros servidores Python privados

Neste exemplo, estamos definindo a autenticação para download de um servidor de distribuição do Python externo. Crie uma conexão de serviço pip entrada para o serviço externo. A tarefa de autenticação usa a conexão de serviço para criar uma variável de ambiente PIP_INDEX_URL, que contém as credenciais de autenticação necessárias para baixar as distribuições. HelloTestPackage precisa estar presente na conexão de serviço pypitest; caso contrário, a instalação falhará. Se você quiser que pypi seja consultado primeiro, defina onlyAddExtraIndex como 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 Descrição
Tipos de pipeline YAML, build clássico, versão clássica
Execuções em Agent, DeploymentGroup
de demandas Nenhum
recursos Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho.
restrições de comando Qualquer
variáveis settable Qualquer
Versão do agente 2.144.0 ou superior
Categoria de tarefa Pacote
Requisito Descrição
Tipos de pipeline YAML, build clássico, versão clássica
Execuções em Agent, DeploymentGroup
de demandas Nenhum
recursos Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho.
restrições de comando Qualquer
variáveis settable Qualquer
Versão do agente 2.120.0 ou superior
Categoria de tarefa Pacote