

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# CodeBuild에서 NuGet 패키지 사용
<a name="using-nuget-packages-in-codebuild"></a>

다음 단계는 [CodeBuild에서 제공하는 도커 이미지](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 Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

1. 탐색 창에서 **역할**을 선택합니다. **역할** 페이지에서 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 자격 증명 공급자를 설치하여, 패키지를 빌드하고 CodeArtifact에 게시하도록 `msbuild` 및 `dotnet` 같은 명령줄 도구를 구성합니다.

1. `pre-build` 섹션에서 CodeArtifact 리포지토리를 NuGet 구성에 추가합니다.

다음 `buildspec.yaml` 예시를 참조하세요. 자세한 내용은 [CodeArtifact를 NuGet과 함께 사용](using-nuget.md) 단원을 참조하십시오.

보안 인증 공급자를 설치하고 리포지토리 소스를 추가한 후에는, `build` 섹션에서 NuGet CLI 도구 명령을 실행하여 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
```

### Windows
<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 자격 증명 공급자를 설치하여, 패키지를 빌드하고 CodeArtifact에 게시하도록 `msbuild` 및 `dotnet` 같은 명령줄 도구를 구성합니다.

1. `pre-build` 섹션에서 CodeArtifact 리포지토리를 NuGet 구성에 추가합니다.

다음 `buildspec.yaml` 예시를 참조하세요. 자세한 내용은 [CodeArtifact를 NuGet과 함께 사용](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
```

### Windows
<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 보안 인증 공급자를 설치하여, 패키지를 빌드하고 CodeArtifact에 게시하도록 `msbuild` 및 `dotnet` 같은 명령줄 도구를 구성합니다.

1. `pre-build` 섹션에서 CodeArtifact 리포지토리를 NuGet 구성에 추가합니다.

다음 `buildspec.yaml` 예시를 참조하세요. 자세한 내용은 [CodeArtifact를 NuGet과 함께 사용](using-nuget.md) 단원을 참조하십시오.

보안 인증 공급자를 설치하고 리포지토리 소스를 추가한 후에는, `build` 섹션에서 NuGet CLI 도구 명령을 실행하고 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
```

### Windows
<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
```