次の方法で共有


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.

組織内に存在するとして認証するフィードを指定します。


pythonDownloadServiceConnections - 外部組織からのフィード
string.

pip で認証する外部組織からの pip サービス接続 名のコンマ区切りの一覧を指定します。


onlyAddExtraIndex - プライマリ インデックス URL を設定しない
boolean. 既定値: false

このタスクが に true設定されている場合、プライマリ インデックス URL としてフィードは設定されません。 構成されたすべてのフィード/エンドポイントは、追加のインデックス URL として設定されます。


タスク コントロールのオプション

すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「 コントロール オプションと一般的なタスク プロパティ」を参照してください。

出力変数

[なし] :

解説

Python ディストリビューションのインストールに pip 使用されるクライアントの認証を提供します。

パイプラインでこのタスクを実行する必要があるのはいつですか?

pip を使用して、Azure Artifacts などの認証済みパッケージ ソースに Python ディストリビューションをダウンロードする前に、このタスクを実行する必要があります。 その他の順序付けの要件はありません。 このタスクの複数の呼び出しでは、資格情報はスタックされません。 タスクを実行するたびに、以前に保存されていた資格情報が消去されます。

エージェントが Web プロキシの背後にあります。 PipAuthenticate は自分のプロキシを使用するように pip を設定しますか?

いいえ。 このタスク自体は 、エージェントが使用するように構成された Web プロキシの背後で機能しますが、プロキシを使用するように pip を構成しません。

これを行うには、次の操作を行います。

  • 環境変数 http_proxyhttps_proxy を設定し、必要にno_proxy応じてプロキシ設定に設定します。 詳細については、 Pip の公式ガイドラインに関する ページを参照してください。 これらは一般的に使用される変数であり、他の Python 以外のツール (curl など) も使用できます。

    注意

    http_proxyおよび no_proxy 変数は、Linux および Mac オペレーティング システムでは大文字と小文字が区別され、小文字である必要があります。 Azure Pipelines 変数を使用して環境変数を設定しようとすると、大文字に変換されるため、機能しません。 代わりに、セルフホステッド エージェントのマシンに環境変数を設定し、エージェントを再起動します。

  • キーを使用して 、プロキシ設定を pip 構成ファイル ファイルproxy 追加します。
  • コマンド ライン オプションを --proxy 使用して、 形式 [user:passwd@]proxy.server:portでプロキシを指定します。

パイプラインが別のプロジェクトのフィードにアクセスする必要がある

フィードをホストしているプロジェクトとは異なるプロジェクトでパイプラインが実行されている場合は、他のプロジェクトを設定して、ビルド サービスへの読み取り/書き込みアクセス権を付与する必要があります。 詳細については、「 Azure Pipelines でのパッケージのアクセス許可 」を参照してください。

公式の Python レジストリを参照せずに Azure Artifacts フィードから Python ディストリビューションをダウンロードする

この例では、プライベート Azure Artifacts フィードからダウンロードするための認証を設定しています。 認証タスクは環境変数 PIP_INDEX_URL を作成し、 PIP_EXTRA_INDEX_URL ディストリビューションをダウンロードするために必要です。 タスクは、指定された Artifacts フィードに対してタスクによって生成される認証資格情報を使用して変数を設定します。 HelloTestPackageは または myTestFeed2のいずれかにmyTestFeed1存在する必要があります。それ以外の場合、インストールは失敗します。

パイプラインが実行されているプロジェクトとは異なるプロジェクト内にあるプロジェクト スコープのフィードの場合は、プロジェクトとフィードにパイプラインのプロジェクトのビルド サービスへのアクセス権を手動で付与する必要があります。

- 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 を参照する場合は、 を に設定onlyAddExtraIndexします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

要件

要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
上で実行 エージェント、DeploymentGroup
確認要求 なし
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン 2.144.0 以上
タスクのカテゴリ Package
要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
上で実行 エージェント、DeploymentGroup
確認要求 なし
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン 2.120.0 以上
タスクのカテゴリ Package