다음을 통해 공유


PipAuthenticate@1 - Python pip 인증 v1 작업

이 작업을 사용하여 Python 배포를 설치하는 pip 클라이언트에 대한 인증을 제공합니다.

통사론

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

입력

artifactFeeds - 내 피드(아래 선택)
string.

pip를 사용하여 인증할 Azure Artifacts 피드의 쉼표로 구분된 목록을 지정합니다.


외부 조직의 pythonDownloadServiceConnections - 피드
string.

pip를 사용하여 인증하기 위해 외부 조직의 이름에 pip 서비스 연결의 쉼표로 구분된 목록을 지정합니다.


onlyAddExtraIndex - 기본 인덱스 URL 설정하지 마세요.
boolean. 기본값: false.

이 작업이 true설정되면 피드가 기본 인덱스 URL로 설정되지 않습니다. 구성된 모든 피드/엔드포인트는 추가 인덱스 URL로 설정됩니다.


작업 제어 옵션

모든 작업에는 작업 입력 외에도 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성참조하세요.

출력 변수

없음.

발언

Python 배포를 설치하는 데 사용되는 pip 클라이언트에 대한 인증을 제공합니다.

파이프라인에서 이 작업을 언제 실행해야 하나요?

Pip를 사용하여 Azure Artifacts와 같은 인증된 패키지 원본에 Python 배포를 다운로드하기 전에 이 작업을 실행해야 합니다. 다른 주문 요구 사항은 없습니다. 이 작업의 여러 호출은 자격 증명을 스택하지 않습니다. 작업을 실행할 때마다 이전에 저장된 자격 증명이 지워집니다.

내 파이프라인을 업스트림 원본에서 저장할 수 있게 하려면 어떻게 해야 하나요?

사용 권한 테이블 확인하여 파이프라인에 부여할 권한을 확인합니다. 그런 다음, 해당 권한을 부여할 ID를 결정합니다. 업스트림 원본에서 패키지를 저장하려면 ID에 Feed and Upstream Reader (Collaborator) 권한이 필요합니다.

내 에이전트가 웹 프록시 뒤에 있습니다. PipAuthenticate에서 내 프록시를 사용하도록 pip를 설정하나요?

아니요. 이 작업 자체는 에이전트가사용하도록 구성된 웹 프록시 뒤에서 작동하지만 프록시를 사용하도록 pip를 구성하지는 않습니다.

이렇게 하려면 다음을 수행할 수 있습니다.

  • 환경 변수를 http_proxy, https_proxy 설정하고 필요에 따라 프록시 설정으로 no_proxy. 자세한 내용은 Pip 공식 지침 참조하세요. 이러한 변수는 일반적으로 사용되는 변수이며, 다른 비 Python 도구(예: curl)도 사용할 수 있습니다.

    주의

    http_proxyno_proxy 변수는 Linux 및 Mac 운영 체제에서 대/소문자를 구분하며 소문자여야 합니다. Azure Pipelines 변수를 사용하여 환경 변수를 설정하려고 하면 대문자로 변환되므로 작동하지 않습니다. 대신 자체 호스팅 에이전트의 컴퓨터에서 환경 변수를 설정하고 에이전트를 다시 시작합니다.

  • proxy 키를 사용하여 pip 구성 파일 파일에 프록시 설정을 추가합니다.
  • --proxy 명령줄 옵션을 사용하여 양식 [user:passwd@]proxy.server:port프록시를 지정합니다.

내 파이프라인이 다른 프로젝트의 피드에 액세스해야 합니다.

파이프라인이 피드를 호스팅하는 프로젝트와 다른 프로젝트에서 실행되는 경우 빌드 서비스에 대한 읽기/쓰기 액세스 권한을 부여하도록 다른 프로젝트를 설정해야 합니다. 자세한 내용은 Azure Pipelines 패키지 권한을 참조하세요.

예제

공식 Python 레지스트리를 참조하지 않고 Azure Artifacts 피드에서 Python 배포판 다운로드

이 예제에서는 프라이빗 Azure Artifacts 피드에서 다운로드하기 위한 인증을 설정합니다. 인증 작업은 배포를 다운로드하는 데 필요한 환경 변수 PIP_INDEX_URLPIP_EXTRA_INDEX_URL 만듭니다. 태스크는 제공된 아티팩트 피드에 대해 태스크가 생성하는 인증 자격 증명으로 변수를 설정합니다. HelloTestPackage myTestFeed1 또는 myTestFeed2;에 있어야 합니다. 그렇지 않으면 설치가 실패합니다.

파이프라인이 실행되는 위치와 다른 프로젝트에 있는 프로젝트 범위 피드의 경우 수동으로 프로젝트와 피드에 파이프라인의 프로젝트 빌드 서비스에 대한 액세스 권한을 부여해야 합니다.

- 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

공식 Python 레지스트리를 참조한 다음 Azure Artifacts 피드에서 Python 배포판 다운로드

이 예제에서는 프라이빗 Azure Artifacts 피드에서 다운로드하기 위한 인증을 설정하지만 pypi 먼저 참조합니다. 인증 작업은 배포를 다운로드하는 데 필요한 인증 자격 증명을 포함하는 환경 변수 PIP_EXTRA_INDEX_URL만듭니다. HelloTestPackage pypi없는 경우에만 인증된 피드에서 다운로드됩니다.

파이프라인이 실행되는 위치와 다른 프로젝트에 있는 프로젝트 범위 피드의 경우 수동으로 프로젝트와 피드에 파이프라인의 프로젝트 빌드 서비스에 대한 액세스 권한을 부여해야 합니다.

- 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

다른 프라이빗 Python 서버에서 Python 배포 다운로드

이 예제에서는 외부 Python 배포 서버에서 다운로드하기 위한 인증을 설정합니다. 외부 서비스에 대한 pip 서비스 연결 항목을 만듭니다. 인증 작업은 서비스 연결을 사용하여 배포를 다운로드하는 데 필요한 인증 자격 증명을 포함하는 환경 변수 PIP_INDEX_URL만듭니다. HelloTestPackage pypitest 서비스 연결에 있어야 합니다. 그렇지 않으면 설치가 실패합니다. pypi 먼저 참조하려면 onlyAddExtraIndextrue설정합니다.

- 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

요구 사항

요구 묘사
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
다음에서 실행 에이전트, DeploymentGroup
요구 없음
기능 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다.
명령 제한 어떤
settable 변수 어떤
에이전트 버전 2.144.0 이상
작업 범주 패키지
요구 묘사
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
다음에서 실행 에이전트, DeploymentGroup
요구 없음
기능 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다.
명령 제한 어떤
settable 변수 어떤
에이전트 버전 2.120.0 이상
작업 범주 패키지