

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

# CodeBuild で NuGet パッケージを使用する
<a name="using-nuget-packages-in-codebuild"></a>

次のステップは、[CodeBuild に用意されている Docker イメージ](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html) に記載されているオペレーティングシステムでテストされています。

**Topics**
+ [IAM ロールを使用したアクセス許可の設定](#nuget-packages-in-codebuild-iam)
+ [NuGet パッケージを消費する](#consume-nuget-packages-in-codebuild)
+ [NuGet パッケージで構築する](#build-nuget-packages-in-codebuild)
+ [NuGet パッケージを公開する](#publish-nuget-packages-in-codebuild)

## IAM ロールを使用したアクセス許可の設定
<a name="nuget-packages-in-codebuild-iam"></a>

これらのステップは、CodeBuild で CodeArtifact の NuGet パッケージを使用する場合に必要です。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. ナビゲーションペインで **Roles (ロール)** を選択します。**ロール**ページで、CodeBuild 構築プロジェクトで使用されるロールを編集します。このロールには、以下のアクセス許可が必要です。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [ "codeartifact:GetAuthorizationToken",
                         "codeartifact:GetRepositoryEndpoint",
                         "codeartifact:ReadFromRepository"
                         ],
             "Resource": "*"
         },
         {       
             "Effect": "Allow",
             "Action": "sts:GetServiceBearerToken",
             "Resource": "*",
             "Condition": {
                 "StringEquals": {
                     "sts:AWSServiceName": "codeartifact.amazonaws.com"
                 }
             }
         }
     ]
   }
   ```

------
**重要**  
 CodeBuild を使用してパッケージを公開する場合は、**codeartifact:PublishPackageVersion** アクセス許可 を追加します。

   詳細については、*IAM ユーザーガイド* の [ロールの変更](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) を参照してください。

## NuGet パッケージを消費する
<a name="consume-nuget-packages-in-codebuild"></a>

CodeBuild から NuGet パッケージを消費するには、以下をプロジェクトの `buildspec.yaml` ファイルに含めます。

1. `install` セクションで、CodeArtifact 認証情報プロバイダーをインストールして、`msbuild` および`dotnet` のようなコマンドラインツールを設定します。そして、CodeArtifact にパッケージを構築して公開します。

1. `pre-build`セクションで、CodeArtifact リポジトリを NuGet 設定に追加します。

次の`buildspec.yaml` 例を参照してください。詳細については、[NuGetでCodeArtifactを使う](using-nuget.md) を参照してください。

認証情報プロバイダーがインストールされ、リポジトリソースが追加されたら、NuGet CLI ツールコマンドを `build` セクションから実行して NuGet パッケージを消費できます。

### Linux
<a name="consume-nuget-packages-in-codebuild-linux"></a>

 `dotnet` を使用して NuGet パッケージを消費するには: 

```
version: 0.2

phases:
  install:
    runtime-versions:
      dotnet: latest
    commands:
      - export PATH="$PATH:/root/.dotnet/tools"
      - dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
      - dotnet codeartifact-creds install
  pre_build:
    commands:
      -  dotnet nuget add source -n codeartifact $(aws codeartifact get-repository-endpoint --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --format nuget --query repositoryEndpoint --output text)"v3/index.json"
  build:
    commands:
      - dotnet add package <packageName> --source codeartifact
```

### Server
<a name="consume-nuget-packages-in-codebuild-windows"></a>

 `dotnet` を使用して NuGet パッケージを消費するには: 

```
version: 0.2

phases:
  install:
    commands:
      - dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
      - dotnet codeartifact-creds install
  pre_build:
    commands:
      - dotnet nuget add source -n codeartifact "$(aws codeartifact get-repository-endpoint --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --format nuget --query repositoryEndpoint --output text)v3/index.json"
  build:
    commands:
      - dotnet add package <packageName> --source codeartifact
```

## NuGet パッケージで構築する
<a name="build-nuget-packages-in-codebuild"></a>

CodeBuild から NuGet パッケージを使用して構築するには、以下をプロジェクトの `buildspec.yaml` ファイルに含めます。

1. `install`セクションで、CodeArtifact 認証情報プロバイダーをインストールして、`msbuild` および `dotnet` のようなコマンドラインツールを設定します。そして、CodeArtifact にパッケージを構築して公開します。

1. `pre-build`セクションで、CodeArtifact リポジトリを NuGet 設定に追加します。

次の`buildspec.yaml` 例を参照してください。詳細については、[NuGetでCodeArtifactを使う](using-nuget.md) を参照してください。

認証情報プロバイダーがインストールされ、リポジトリソースが追加されたら、`build` セクションから `dotnet build` のような NuGet CLI ツールコマンドを実行できます。

### Linux
<a name="build-nuget-packages-in-codebuild-linux"></a>

 `dotnet` を使用して NuGet パッケージを構築するには: 

```
version: 0.2

phases:
  install:
    runtime-versions:
      dotnet: latest
    commands:
      - export PATH="$PATH:/root/.dotnet/tools"
      - dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
      - dotnet codeartifact-creds install
  pre_build:
    commands:
      -  dotnet nuget add source -n codeartifact $(aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format nuget --query repositoryEndpoint --output text)"v3/index.json"
  build:
    commands:
      - dotnet build
```

 `msbuild` を使用して NuGet パッケージを構築するには: 

```
version: 0.2

phases:
  install:
    runtime-versions:
      dotnet: latest
    commands:
      - export PATH="$PATH:/root/.dotnet/tools"
      - dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
      - dotnet codeartifact-creds install
  pre_build:
    commands:
      - dotnet nuget add source -n codeartifact $(aws codeartifact get-repository-endpoint --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --format nuget --query repositoryEndpoint --output text)"v3/index.json"
  build:
    commands:
      - msbuild -t:Rebuild -p:Configuration=Release
```

### Server
<a name="build-nuget-packages-in-codebuild-windows"></a>

 `dotnet` を使用して NuGet パッケージを構築するには: 

```
version: 0.2

phases:
  install:
    commands:
      - dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
      - dotnet codeartifact-creds install
  pre_build:
    commands:
      - dotnet nuget add source -n codeartifact "$(aws codeartifact get-repository-endpoint --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --format nuget --query repositoryEndpoint --output text)v3/index.json"
  build:
    commands:
      - dotnet build
```

 `msbuild` を使用して NuGet パッケージを構築するには: 

```
version: 0.2

phases:
  install:
    commands:
      - dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
      - dotnet codeartifact-creds install
  pre_build:
    commands:
      - dotnet nuget add source -n codeartifact "$(aws codeartifact get-repository-endpoint --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --format nuget --query repositoryEndpoint --output text)v3/index.json"
  build:
    commands:
      - msbuild -t:Rebuild -p:Configuration=Release
```

## NuGet パッケージを公開する
<a name="publish-nuget-packages-in-codebuild"></a>

CodeBuild から NuGet パッケージを公開するには、以下をプロジェクトの `buildspec.yaml` ファイルに含めます。

1. `install` セクションで、CodeArtifact 認証情報プロバイダーをインストールして、`msbuild` および `dotnet` のようなコマンドラインツールを設定します。そして、CodeArtifact にパッケージを構築して公開します。

1. `pre-build`セクションで、CodeArtifact リポジトリを NuGet 設定に追加します。

次の`buildspec.yaml` 例を参照してください。詳細については、[NuGetでCodeArtifactを使う](using-nuget.md) を参照してください。

認証情報プロバイダーがインストールされ、リポジトリソースが追加されたら、NuGet CLI ツールコマンドを `build` セクションから実行して、NuGet パッケージを公開できます。

### Linux
<a name="publish-nuget-packages-in-codebuild-linux"></a>

 `dotnet` を使用して NuGet パッケージを公開するには: 

```
version: 0.2

phases:
  install:
    runtime-versions:
      dotnet: latest
    commands:
      - export PATH="$PATH:/root/.dotnet/tools"
      - dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
      - dotnet codeartifact-creds install
  pre_build:
    commands:
      - dotnet nuget add source -n codeartifact $(aws codeartifact get-repository-endpoint --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --format nuget --query repositoryEndpoint --output text)"v3/index.json"
  build:
    commands:
      - dotnet pack -o .
      - dotnet nuget push *.nupkg -s codeartifact
```

### Server
<a name="publish-nuget-packages-in-codebuild-windows"></a>

 `dotnet` を使用して NuGet パッケージを公開するには: 

```
version: 0.2

phases:
  install:
    commands:
      - dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
      - dotnet codeartifact-creds install
  pre_build:
    commands:
      - dotnet nuget add source -n codeartifact "$(aws codeartifact get-repository-endpoint --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --format nuget --query repositoryEndpoint --output text)v3/index.json"
  build:
    commands:
      - dotnet pack -o .
      - dotnet nuget push *.nupkg -s codeartifact
```