

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

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

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

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

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

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) を参照してください。

## ログインして npm を使う
<a name="npm-packages-in-codebuild-login"></a>

CodeBuild の npm パッケージを使用するには、プロジェクト`buildspec.yaml` の `pre-build` セクションから `login` コマンドを実行し、`npm` を設定して CodeArtifact からパッケージをフェッチします。詳細については、[npm を使った認証](npm-auth.md) を参照してください。

`login` が正常に実行されたら、`build` セクションから `npm` コマンドを実行して npm パッケージをインストールできます。

### Linux
<a name="npm-packages-in-codebuild-login-linux"></a>

**注記**  
古い CodeBuild イメージ`pip3 install awscli --upgrade --user`を使用している場合にのみ、 AWS CLI で をアップグレードする必要があります。最新のイメージバージョンを使用している場合は、その行を削除できます。

```
pre_build:
  commands:
    - pip3 install awscli --upgrade --user
    - aws codeartifact login --tool npm --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}}
build:
  commands:
    - npm install
```

### Server
<a name="npm-packages-in-codebuild-login-windows"></a>

```
version: 0.2
phases:
  install:
    commands:
      - '[Net.ServicePointManager]::SecurityProtocol = "Tls12"; Invoke-WebRequest https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile $env:TEMP/AWSCLIV2.msi'
      - Start-Process -Wait msiexec "/i $env:TEMP\AWSCLIV2.msi /quiet /norestart"
  pre_build:
    commands:
      - '&"C:\Program Files\Amazon\AWSCLIV2\aws" codeartifact login --tool npm --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}}'
  build:
    commands:
      - npm install
```