CodeArtifact をnuget または dotnet CLI で使用する - CodeArtifact

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CodeArtifact をnuget または dotnet CLI で使用する

nuget および dotnet のような CLI ツールを使用して、CodeArtifact からパッケージを公開して消費できます。このドキュメントでは、CLI ツールの設定と、それらを使用してパッケージを公開または使用する方法について説明します。

nuget または dotnet CLI を設定する

nuget または dotnet CLI は、CodeArtifact NuGet 認証情報プロバイダーを使用して、 を使用して AWS CLI、または手動で設定できます。セットアップを簡素化し、認証を継続するために、NuGet を認証情報プロバイダーで設定することを強くお勧めします。

方法 1: CodeArtifact NuGet 認証情報プロバイダーを使用して設定する

CodeArtifact NuGet 認証情報プロバイダーは、NuGet CLI ツールを使用した CodeArtifact の認証と設定を簡素化します。CodeArtifact 認証トークンは、最大 12 時間有効です。nuget または dotnet CLI の使用中にトークンを手動で更新する必要がないように、認証情報プロバイダーは現在のトークンの有効期限が切れる前に定期的に新しいトークンを取得します。

重要

認証情報プロバイダーを使用するには、手動で追加した可能性のある既存の AWS CodeArtifact 認証情報が nuget.config ファイルからクリアされているか、 を実行して NuGet aws codeartifact loginを以前に設定していることを確認します。

CodeArtifact NuGet 認証情報プロバイダーのインストールと設定

dotnet
  1. 以下の dotnet コマンドを使用して、NuGet.org の AWS.CodeArtifact.NuGet.CredentialProvider ツールをダウンロードします。

    dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
  2. codeartifact-creds install コマンドを使用して、認証情報プロバイダーを NuGet プラグインフォルダにコピーします。

    dotnet codeartifact-creds install
  3. (オプション): 認証情報プロバイダーで使用する AWS プロファイルを設定します。設定されていない場合は、認証情報プロバイダーはデフォルトのプロファイルを使用します。 AWS CLI プロファイルの詳細については、「名前付きプロファイル」を参照してください。

    dotnet codeartifact-creds configure set profile profile_name
nuget

次の手順を実行して、NuGet CLI を使用して Amazon S3 バケットから CodeArtifact NuGet 認証情報プロバイダーをインストールして設定します。認証情報プロバイダーはデフォルトの AWS CLI プロファイルを使用します。プロファイルの詳細については、「名前付きプロファイル」を参照してください。

  1. CodeArtifact NuGet 認証情報プロバイダー (codeartifact-nuget-credentialprovider.zip) の最新バージョンを Amazon S3 バケットからダウンロードします。

    以前のバージョンを表示してダウンロードするには、「CodeArtifact NuGet 認証情報プロバイダーのバージョン」を参照してください。

  2. ファイル を解凍します。

  3. AWS.CodeArtifact.NuGetCredentialProvider フォルダを、netfx フォルダから、Windows の場合は %user_profile%/.nuget/plugins/netfx/、LinuxまたはMacOSの場合は ~/.nuget/plugins/netfx にコピーします。

  4. AWS.CodeArtifact.NuGetCredentialProvider フォルダを、netcore フォルダから、Windows の場合 %user_profile%/.nuget/plugins/netcore/ は、LinuxまたはMacOS の場合は ~/.nuget/plugins/netcore にコピーします。

リポジトリを作成して認証情報プロバイダーを設定したら、nuget または dotnet CLI ツールを使用して、パッケージをインストールして公開できます。詳細については、CodeArtifact から NuGet パッケージを消費するおよびNuGet パッケージを CodeArtifact に公開するを参照してください。

方法 2: login コマンドで nuget または dotnet を設定する

codeartifact login コマンドは、NuGet 設定ファイルにリポジトリエンドポイントと認可トークン AWS CLI を追加し、nuget または dotnet が CodeArtifact リポジトリに接続できるようにします。これにより、Windows の場合は%appdata%\NuGet\NuGet.Config、Mac/Linux の場合は ~/.config/NuGet/NuGet.Config または ~/.nuget/NuGet/NuGet.Config にあるユーザーレベルの NuGet 設定が変更されます。NuGet 設定の詳細については、一般的な NuGet の設定 を参照してください。

nuget または dotnet を login コマンドで設定する
  1. 「」の説明に従って AWS CLI、 で使用する AWS 認証情報を設定しますCodeArtifact の開始方法

  2. NuGet CLI ツール (nugetまたはdotnet) が正しくインストールされ、設定されていることを確認します。手順については、nuget または dotnet ドキュメントを参照してください。

  3. CodeArtifact login コマンドを使用して、NuGet で使用する認証情報を取得する。

    注記

    所有しているドメインのリポジトリにアクセスする場合は、--domain-owner を含める必要はありません。詳細については、「クロスアカウントドメイン」を参照してください。

    dotnet
    重要

    Linux および MacOS のユーザー: 暗号化は Windows 以外のプラットフォームではサポートされていないため、取得した資格情報はプレーンテキストとして設定ファイルに保存されます。

    aws codeartifact login --tool dotnet --domain my_domain --domain-owner 111122223333 --repository my_repo
    nuget
    aws codeartifact login --tool nuget --domain my_domain --domain-owner 111122223333 --repository my_repo

login コマンドは次の処理を行います:

  • AWS 認証情報を使用して、CodeArtifact から認可トークンを取得します。

  • ユーザーレベルの NuGet 設定を、NuGet パッケージソースの新しいエントリで更新します。CodeArtifact リポジトリエンドポイントを指すソースは domain_name/repo_name と呼ばれます。

login を呼び出した後のデフォルトの認可期間は12時間であり、トークンを定期的に更新するには、login を呼び出す必要があります。login コマンドを使用して作成された認可トークンの詳細については、「loginコマンドで作成されたトークン」を参照してください。

リポジトリを作成して認証を設定したら、nugetdotnet または msbuild パッケージを使用して、CLI クライアントをインストールして公開できます。詳細については、CodeArtifact から NuGet パッケージを消費するおよびNuGet パッケージを CodeArtifact に公開するを参照してください。

方法 3: login コマンドなしで nuget または dotnet を設定する

マニュアル設定の場合、リポジトリエンドポイントと認可)トークンを NuGet 設定ファイルに追加して、nuget または dotnet が CodeArtifact リポジトリに接続できるようにする必要があります。

CodeArtifact リポジトリに接続するには、nuget または dotnet を手動で設定します。

  1. get-repository-endpoint AWS CLI コマンドを使用して CodeArtifact リポジトリエンドポイントを決定します。

    aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format nuget

    出力例:

    { "repositoryEndpoint": "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/" }
  2. get-authorization-token AWS CLI コマンドを使用して、パッケージマネージャーからリポジトリに接続するための認可トークンを取得します。

    aws codeartifact get-authorization-token --domain my_domain

    出力例:

    { "authorizationToken": "eyJ2I...viOw", "expiration": 1601616533.0 }
  3. ステップ 3 の get-repository-endpoint で返された URL に /v3/index.json を追加して、完全なリポジトリエンドポイント URL を作成します。

  4. ステップ 1 のリポジトリエンドポイントとステップ 2 の認可トークンを使用するには、nuget または dotnet を設定します。

    注記

    nuget または dotnet が CodeArtifact リポジトリに正常に接続できるようにするには、ソース URL の最後が /v3/index.json である必要があります。

    dotnet

    Linux および MacOS のユーザー: 暗号化は Windows 以外のプラットフォームではサポートされていないため、次のコマンドに --store-password-in-clear-text フラグを追加する必要があります。これにより、パスワードがプレーンテキストとして設定ファイルに保存されることに注意してください。

    dotnet nuget add source https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json --name packageSourceName --password eyJ2I...viOw --username aws
    注記

    既存のソースを更新するには、dotnet nuget update source コマンドを使用します。

    nuget
    nuget sources add -name domain_name/repo_name -Source https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json -password eyJ2I...viOw -username aws

    出力例:

    Package source with Name: domain_name/repo_name added successfully.
    注記

    デュアルスタックエンドポイントを使用するには、codeartifact.region.on.awsエンドポイントを使用します。

CodeArtifact から NuGet パッケージを消費する

いったん CodeArtifact でNuGetを設定 したら、CodeArtifact リポジトリまたはその上流リポジトリの 1 つに保存されている NuGet パッケージを使用できます。

CodeArtifact リポジトリまたはその上流リポジトリの 1 つからパッケージバージョンを nuget または dotnet で消費するには、次のコマンドを実行し、packageName を消費したいパッケージの名前で置き換え、packageSourceName をNuGet 設定ファイル内の CodeArtifact リポジトリのソース名で置き換えます。login コマンド を使用して NuGet 設定を設定した場合、ソース名は domain_name/repo_name です。

注記

パッケージがリクエストされると、NuGet クライアントはパッケージのどのバージョンが存在するかをキャッシュします。この動作のため、目的のバージョンが入手可能になる前にリクエストされたパッケージのインストールが失敗することがあります。この問題を回避し、既存のパッケージを正常にインストールするには、nuget locals all --clear または dotnet nuget locals all --clear を使用してインストール前に NuGet キャッシュをクリアするか、またはnuget-NoCache オプションか dotnet--no-cache オプションを指定して、install コマンドおよび restore コマンド中にキャッシュしないようにします。

dotnet
dotnet add package packageName --source packageSourceName
nuget
nuget install packageName -Source packageSourceName

パッケージの特定バージョンをインストールするには

dotnet
dotnet add package packageName --version 1.0.0 --source packageSourceName
nuget
nuget install packageName -Version 1.0.0 -Source packageSourceName

詳細については、マイクロソフトドキュメントnuget.exe CLI を使用してパッケージを管理する または dotnet CLI を使用してパッケージをインストールして管理する を参照してください。

NuGet パッケージは、Nuget.org への外部接続を設定することで、CodeArtifact リポジトリを介して Nuget.org から消費できます。Nuget.org から消費されたパッケージは、CodeArtifact リポジトリに取り込まれて保存されます。外部接続の追加方法の詳細については、「CodeArtifact リポジトリをパブリックリポジトリに接続する」を参照してください。

NuGet パッケージを CodeArtifact に公開する

いったん CodeArtifact で NuGet を設定 すると、nuget または dotnet を使用して CodeArtifact リポジトリにパッケージバージョンを公開できます。

パッケージバージョンを CodeArtifact リポジトリにプッシュするには、次のコマンドを、NuGet 設定ファイル内の .nupkg ファイルと CodeArtifact リポジトリのソース名にフルパスで実行します。login コマンドを使用して NuGet 設定を設定した場合、ソース名は domain_name/repo_name です。

注記

公開するパッケージがない場合は、NuGet パッケージを作成できます。詳細については、Microsoft ドキュメントパッケージ作成ワークフロー を参照してください。

dotnet
dotnet nuget push path/to/nupkg/SamplePackage.1.0.0.nupkg --source packageSourceName
nuget
nuget push path/to/nupkg/SamplePackage.1.0.0.nupkg -Source packageSourceName

CodeArtifact NuGet 認証情報プロバイダーの参照

CodeArtifact NuGet 認証情報プロバイダーを使用すると、CodeArtifact リポジトリを使用して NuGet を簡単に設定および認証できます。

CodeArtifact NuGet 認証情報プロバイダーのコマンド

このセクションには、CodeArtifact NuGet 認証情報プロバイダーのコマンドリストが含まれます。これらのコマンドには、次の例のように、dotnet codeartifact-creds でプレフィックスを付ける必要があります。

dotnet codeartifact-creds command
  • configure set profile profile: 提供された AWS プロファイルを使用するように認証情報プロバイダーを設定します。

  • configure unset profile: 設定済みのプロファイルを削除します。

  • install: 認証情報プロバイダーを plugins フォルダにコピーします。

  • install --profile profile: 認証情報プロバイダーを pluginsフォルダにコピーし、提供された AWS プロファイルを使用するように設定します。

  • uninstall: 認証情報プロバイダーをアンインストールします。これにより、設定ファイルに対する変更は削除されません。

  • uninstall --delete-configuration: 認証情報プロバイダーをアンインストールして、設定ファイルに対するすべての変更を削除します。

CodeArtifact NuGet 認証情報プロバイダーのログ

CodeArtifact NuGet 認証情報プロバイダーのログを有効にするには、環境でログファイルを設定する必要があります。認証情報プロバイダーのログには、次のような有用なデバッグ情報が含まれています:

  • 接続に使用される AWS プロファイル

  • すべての認証エラー

  • 提供されたエンドポイントがCodeArtifact URLでない場合

CodeArtifact NuGet 認証情報プロバイダーのログファイルを設定する

export AWS_CODEARTIFACT_NUGET_LOGFILE=/path/to/file

ログファイルの設定後、codeartifact-creds コマンドはログ出力をそのファイルの内容に追加します。

CodeArtifact NuGet 認証情報プロバイダーのバージョン

CodeArtifact NuGet 認証情報プロバイダーのバージョン履歴情報とダウンロードリンクを次の表に示します。

バージョン 変更 公開日 ダウンロードリンク (S3)

1.0.2 (最新)

アップグレードされた依存関係

06/26/2024

v1.0.2 のダウンロード

1.0.1

net5、net6、および SSO プロファイルのサポートが追加されました。

03/05/2022

v1.0.1 をダウンロード

1.0.0

CodeArtifact NuGet 認証情報プロバイダーの初期リリース

11/20/2020

v1.0.0 をダウンロード