次の方法で共有


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) アクセス許可が必要です。

エージェントが 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_URLPIP_EXTRA_INDEX_URL を作成します。 タスクは、指定された Artifacts フィードに対してタスクが生成する認証資格情報を使用して変数を設定します。 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を作成します。 は、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
の需要 何一つ
機能の このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 任意
設定可能な変数 任意
エージェントのバージョン 2.144.0 以上
タスク カテゴリ パッケージ
要件 形容
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
実行日 エージェント、DeploymentGroup
の需要 何一つ
機能の このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 任意
設定可能な変数 任意
エージェントのバージョン 2.120.0 以上
タスク カテゴリ パッケージ