

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

# CodeArtifact をnuget または dotnet CLI で使用する
<a name="nuget-cli"></a>

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

**Topics**
+ [nuget または dotnet CLI を設定する](#nuget-configure-cli)
+ [CodeArtifact から NuGet パッケージを消費する](#nuget-consume-cli)
+ [NuGet パッケージを CodeArtifact に公開する](#nuget-publish-cli)
+ [CodeArtifact NuGet 認証情報プロバイダーの参照](#nuget-cred-provider-reference)
+ [CodeArtifact NuGet 認証情報プロバイダーのバージョン](#nuget-cred-provider-history)

## nuget または dotnet CLI を設定する
<a name="nuget-configure-cli"></a>

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

### 方法 1: CodeArtifact NuGet 認証情報プロバイダーを使用して設定する
<a name="nuget-configure-cli-cred-provider"></a>

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

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

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

------
#### [ dotnet ]

1. 以下の `dotnet` コマンドを使用して、[NuGet.org の AWS.CodeArtifact.NuGet.CredentialProvider ツール](https://www.nuget.org/packages/AWS.CodeArtifact.NuGet.CredentialProvider)をダウンロードします。

   ```
   dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
   ```

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

   ```
   dotnet codeartifact-creds install
   ```

1. (オプション): 認証情報プロバイダーで使用する AWS プロファイルを設定します。設定されていない場合は、認証情報プロバイダーはデフォルトのプロファイルを使用します。 AWS CLI プロファイルの詳細については、[「名前付きプロファイル](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)」を参照してください。

   ```
   dotnet codeartifact-creds configure set profile profile_name
   ```

------
#### [ nuget ]

次の手順を実行して、NuGet CLI を使用して Amazon S3 バケットから CodeArtifact NuGet 認証情報プロバイダーをインストールして設定します。認証情報プロバイダーはデフォルトの AWS CLI プロファイルを使用します。プロファイルの詳細については、[「名前付きプロファイル](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)」を参照してください。

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

   以前のバージョンを表示してダウンロードするには、「[CodeArtifact NuGet 認証情報プロバイダーのバージョン](#nuget-cred-provider-history)」を参照してください。

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

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

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

------

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

### 方法 2: login コマンドで nuget または dotnet を設定する
<a name="nuget-configure-login"></a>

の `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 の設定](https://docs.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior) を参照してください。

**nuget または dotnet を `login` コマンドで設定する**

1. の説明に従って AWS CLI、 で使用する AWS 認証情報を設定します[CodeArtifact の開始方法](getting-started.md)。

1. NuGet CLI ツール (`nuget`または`dotnet`) が正しくインストールされ、設定されていることを確認します。手順については、[nuget](https://docs.microsoft.com/en-us/nuget/reference/nuget-exe-cli-reference) または [dotnet](https://docs.microsoft.com/en-us/dotnet/core/install/) ドキュメントを参照してください。

1. CodeArtifact `login` コマンドを使用して、NuGet で使用する認証情報を取得する。
**注記**  
所有しているドメインのリポジトリにアクセスする場合は、`--domain-owner` を含める必要はありません。詳細については、「[クロスアカウントドメイン](domain-overview.md#domain-overview-cross-account)」を参照してください。

------
#### [ 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`コマンドで作成されたトークン](tokens-authentication.md#auth-token-login)」を参照してください。

リポジトリを作成して認証を設定したら、`nuget`、`dotnet` または `msbuild` パッケージを使用して、CLI クライアントをインストールして公開できます。詳細については、「[CodeArtifact から NuGet パッケージを消費する](#nuget-consume-cli)」および「[NuGet パッケージを CodeArtifact に公開する](#nuget-publish-cli)」を参照してください。

### 方法 3: login コマンドなしで nuget または dotnet を設定する
<a name="nuget-configure-without-login"></a>

マニュアル設定の場合、リポジトリエンドポイントと認可)トークンを 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/"
   }
   ```

1. `get-authorization-token` AWS CLI コマンドを使用して、パッケージマネージャーからリポジトリに接続するための認可トークンを取得します。

   ```
   aws codeartifact get-authorization-token --domain my_domain
   ```

   出力例:

   ```
   {
      "authorizationToken": "eyJ2I...viOw",
      "expiration": 1601616533.0
   }
   ```

1. ステップ 3 の `get-repository-endpoint` で返された URL に `/v3/index.json` を追加して、完全なリポジトリエンドポイント URL を作成します。

1. ステップ 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 パッケージを消費する
<a name="nuget-consume-cli"></a>

いったん [CodeArtifact でNuGetを設定](https://docs.aws.amazon.com//codeartifact/latest/ug/nuget-cli.html) したら、CodeArtifact リポジトリまたはその上流リポジトリの 1 つに保存されている NuGet パッケージを使用できます。

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

**注記**  
パッケージがリクエストされると、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 を使用してパッケージを管理する](https://docs.microsoft.com/en-us/nuget/consume-packages/install-use-packages-nuget-cli) または [dotnet CLI を使用してパッケージをインストールして管理する](https://docs.microsoft.com/en-us/nuget/consume-packages/install-use-packages-dotnet-cli) を参照してください。

### NuGet.org から NuGet パッケージを消費する
<a name="nuget-consume-nuget-gallery"></a>

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

## NuGet パッケージを CodeArtifact に公開する
<a name="nuget-publish-cli"></a>

いったん [CodeArtifact で NuGet を設定](https://docs.aws.amazon.com//codeartifact/latest/ug/nuget-cli.html) すると、`nuget` または `dotnet` を使用して CodeArtifact リポジトリにパッケージバージョンを公開できます。

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

**注記**  
公開するパッケージがない場合は、NuGet パッケージを作成できます。詳細については、*Microsoft ドキュメント* の [パッケージ作成ワークフロー](https://docs.microsoft.com/en-us/nuget/create-packages/overview-and-workflow) を参照してください。

------
#### [ 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 認証情報プロバイダーの参照
<a name="nuget-cred-provider-reference"></a>

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

### CodeArtifact NuGet 認証情報プロバイダーのコマンド
<a name="nuget-cred-provider-reference-commands"></a>

このセクションには、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 認証情報プロバイダーのログ
<a name="nuget-cred-provider-reference-logs"></a>

CodeArtifact NuGet 認証情報プロバイダーのログを有効にするには、環境でログファイルを設定する必要があります。認証情報プロバイダーのログには、次のような有用なデバッグ情報が含まれています:
+ 接続に使用される AWS プロファイル
+ すべての認証エラー
+ 提供されたエンドポイントがCodeArtifact URLでない場合

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

```
export AWS_CODEARTIFACT_NUGET_LOGFILE=/path/to/file
```

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

## CodeArtifact NuGet 認証情報プロバイダーのバージョン
<a name="nuget-cred-provider-history"></a>

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


| バージョン | 変更 | 公開日 | ダウンロードリンク (S3) | 
| --- | --- | --- | --- | 
|  1.0.2 (最新)  |  依存関係を更新しました  |  06/26/2024  |  [v1.0.2 をダウンロードする](https://d12ov9682v6hj.cloudfront.net/codeartifact-nuget-credentialprovider-v1.0.2.zip)  | 
|  1.0.1  |  net5、net6、および SSO プロファイルのサポートが追加されました。  |  03/05/2022  |  [v1.0.1 をダウンロード](https://a.co/cAIkhV1)  | 
|  1.0.0  |  CodeArtifact NuGet 認証情報プロバイダーの初期リリース  |  11/20/2020  |  [v1.0.0 をダウンロード](https://a.co/8b2cENb)  | 