Azure Artifacts でユニバーサル パッケージを発行してダウンロードする

Azure DevOps Services

ユニバーサル パッケージを使用すると、開発者は NuGet、npm、Python パッケージなどの従来のパッケージ以外のさまざまな種類のパッケージを格納できます。Azure CLI を使用すると、コマンド ラインからユニバーサル パッケージを直接発行してダウンロードできます。 発行されるパッケージのサイズは異なる場合があり、最大 4 TB (テラバイト)に達しますが、名前とバージョン番号を含めるという必須要件を常にメインする必要があります。 この記事では、Azure Artifacts フィードからユニバーサル パッケージを発行してダウンロードする手順について説明します。

前提条件

フィードの作成

フィードが既にある場合は、次のセクションに進むことができます。 それ以外の場合は、次の手順に従って新しい Azure Artifacts フィードを作成します。

  1. Azure DevOps 組織にサインインしてから、プロジェクトに移動します。

  2. [ Artifacts]\(成果物\) を選択し、フィードを作成します。

  3. フィードのわかりやすい 名前 を指定し、その 可視性 (フィードでパッケージを表示できるユーザー) を設定します。 フィードのスコープを定義し、パブリック レジストリのパッケージを含める場合は、[アップストリーム ソース] チェックボックスを選択します。

  4. 終わったら [作成] を選択します。

    新しいフィードを作成する方法を示すスクリーンショット。

Note

新しく作成されたフィードでは、プロジェクトの Build Service ロールが既定でフィードおよびアップストリーム 閲覧者 (コラボレーター) として指定されます。

Azure DevOps 拡張機能をインストールする

CLI を使用すると、タスクを効率化できます。 続行する前に、Azure CLI (バージョン 2.10.1 以降) がインストールされていることを確認してください。 さらに、コマンド ラインから Azure DevOps サービスを管理するには、Azure DevOps 拡張機能をインストールする必要があります。

  1. 次のコマンドを実行して、Azure DevOps 拡張機能をインストールします。

    az extension add --name azure-devops
    
  2. Azure DevOps 拡張機能が既にインストールされていて、最新の拡張機能に更新する場合は、次のコマンドを実行します。

    az extension update --name azure-devops
    

フィードに接続する

  1. Azure DevOps 組織にサインインしてから、プロジェクトに移動します。

  2. [ 成果物] を選択し、ドロップダウン メニューからフィードを選択します。

  3. [フィードに接続] を選択し、左側のナビゲーション ウィンドウから [ユニバーサル パッケージ] を選択します。

  4. [Project setup]\(プロジェクトのセットアップ\) セクションの手順に従ってフィードに接続します。

  1. 次のコマンドを実行して、Azure CLI にログインします。

    az login
    
  2. 次のコマンドを実行して、CLI の既定の構成としてプロジェクトと組織を設定します。

    az devops configure --defaults project=<YOUR_PROJECT_NAME> organization=https://dev.azure.com/<YOUR_ORGANIZATION_NAME> 
    

Universal Packages を発行する

ユニバーサル パッケージをフィードに発行するには、パッケージ名とバージョン番号を指定する必要があります。

パッケージ名は小文字で、先頭と末尾は英字または数字で、文字、数字、非連続ダッシュ、アンダースコア、ピリオドのみを含める必要があります。 パッケージのバージョンも小文字で、ビルド メタデータ (+ サフィックス) を含めないようにする必要があります。 詳細については、 セマンティック バージョン管理を 参照してください。

  1. 次のコマンドを実行して、ユニバーサル パッケージをフィードに発行します。

    • 組織スコープのフィード:

      az artifacts universal publish --organization https://dev.azure.com/<YOUR_ORGANIZATION> --feed <FEED_NAME> --name <PACKAGE_NAME> --version <PACKAGE_VERSION> --path <PACKAGE_DIRECTORY> --description <PACKAGE_DESCRIPTION>
      
    • プロジェクト スコープのフィード

      az artifacts universal publish --organization https://dev.azure.com/<YOUR_ORGANIZATION> --project <PROJECT_NAME> --scope project --feed <FEED_NAME> --name <PACKAGE_NAME> --version <PACKAGE_VERSION> --path <PACKAGE_DIRECTORY> --description <PACKAGE_DESCRIPTION>
      

Note

組織でファイアウォールまたはプロキシ サーバーを使用している場合は、Azure Artifacts のドメイン URL と IP アドレスを必ず許可してください。

発行済みパッケージを表示する

  1. Azure DevOps 組織にサインインしてから、プロジェクトに移動します。

  2. [成果物] を選択し、ドロップダウン メニューからフィードを選択します。 発行プロセスが正常に完了したら、フィードでパッケージを使用できるようになります。

    新しく発行されたユニバーサル パッケージを示すスクリーンショット。

ユニバーサル パッケージのダウンロード

次のコマンドを実行して、Azure CLI を使用してフィードから特定のユニバーサル パッケージをダウンロードします。

  • 組織スコープのフィード:

    az artifacts universal download --organization https://dev.azure.com/<YOUR_ORGANIZATION_NAME> --feed <FEED_NAME> --name <PACKAGE_NAME> --version <PACKAGE_VERSION> --path <DOWNLOAD_PATH>
    
  • プロジェクト スコープのフィード

    az artifacts universal download --organization https://dev.azure.com/<YOUR_ORGANIZATION_NAME> --project <PROJECT_NAME> --scope project --feed <FEED_NAME> --name <PACKAGE_NAME> --version <PACKAGE_VERSION> --path <DOWNLOAD_PATH>
    

特定のファイルをダウンロードする

特定のファイルのみをダウンロードする場合は、パラメーターを --file-filter 使用してファイルのサブセットをフェッチします。 詳細については、「 ファイルマッチングパターンリファレンス 」を参照してください。

  • 組織スコープのフィード:

    az artifacts universal download --organization https://dev.azure.com/<YOUR_ORGANIZATION_NAME> --feed <FEED_NAME> --name <PACKAGE_NAME> --version <PACKAGE_VERSION> --path <DOWNLOAD_PATH> --file-filter <MATCH_PATTERN>
    
  • プロジェクト スコープのフィード

    az artifacts universal download --organization https://dev.azure.com/<YOUR_ORGANIZATION_NAME> --project <PROJECT_NAME> --scope project --feed <FEED_NAME> --name <PACKAGE_NAME> --version <PACKAGE_VERSION> --path <DOWNLOAD_PATH> --file-filter <MATCH_PATTERN>
    

例: たとえば、--file-filter logs/.log を使用すると、ファイル名が "logs" を含み、拡張子が ".log" (例: build_logs.log) で終わるファイルと一致します。

最新バージョンのダウンロード

ワイルドカードを使用して、*ユニバーサル パッケージの最新バージョンをダウンロードできます。

例:

  • --version '*': 最新バージョンをダウンロードします。

  • --version '1.*': メジャー 1 の最新バージョンをダウンロードします。

  • --version '1.2.*': メジャー 1 とマイナー 2 の最新のパッチ リリースをダウンロードします。

Note

ワイルドカード パターンは、プレリリース バージョン (バージョン番号にダッシュが付いたパッケージ) ではサポートされていません。