npm のクイックスタート

このクイックスタートでは、Artifact Registry npm リポジトリをセットアップし、そのリポジトリにパッケージをアップロードする方法について説明します。

パッケージ管理はアルファ版です。これはアルファ版のユーザーにのみご利用いただけます。コンテナ管理で利用できる機能がすべて含まれているとは限りません。アルファ版のお申し込みには、登録フォームをご利用ください。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    [プロジェクトの選択] ページに移動

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Artifact Registry API を有効にします。

    API を有効にする

  5. Cloud SDK をインストールして初期化します。
  6. Windows から npm リポジトリに接続する場合は、PowerShell をインストールします。

npm リポジトリを作成する

Node.js アーティファクトのリポジトリを作成します。

  1. リポジトリを作成します。

    コンソール

    1. Cloud Console で [リポジトリ] ページを開きます。

      [リポジトリ] ページを開く

    2. [リポジトリを作成] をクリックします。

    3. リポジトリ名として quickstart-npm-repo を指定します。

    4. 形式として [npm] を選択します。

    5. [ロケーション タイプ] で [リージョン] を選択し、ロケーションとして us-central1 を選択します。

    6. [作成] をクリックします。

    リポジトリがリポジトリ リストに追加されます

    gcloud

    1. 次のコマンドを実行して、場所 us-central1 に「npm repository」という説明の付いた quickstart-npm-repo という新しい npm リポジトリを作成します。

      gcloud artifacts repositories create quickstart-npm-repo --repository-format=npm \
      --location=us-central1 [--description="npm repository"]
      
    2. 次のコマンドを実行して、リポジトリが作成されたことを確認します。

      gcloud artifacts repositories list
      

    Artifact Registry コマンドの詳細については、gcloud artifacts コマンドを実行してください。

  2. gcloud コマンドを簡略化するには、デフォルトのリポジトリを quickstart-npm-repo に、デフォルト ロケーションを us-central1 に設定します。値を設定したら、リポジトリまたはロケーションを必要とする gcloud コマンドで設定した値を指定する必要はありません。

    リポジトリを設定するには、次のコマンドを実行します。

    gcloud config set artifacts/repository quickstart-npm-repo
    

    ロケーションを設定するには、次のコマンドを実行します。

    gcloud config set artifacts/location us-central1
    

    上記のコマンドの詳細については、gcloud config set のドキュメントをご覧ください。

クライアントのサービス アカウントを設定する

npm の代理として動作する既存のサービス アカウントを作成または選択します。

  1. アプリケーションに代わって動作するサービス アカウントを作成するか、自動化に使用する既存のサービス アカウントを選択します。

    Artifact Registry で認証を設定するには、サービス アカウントのキーファイルの場所が必要です。既存のアカウントの場合は、[サービス アカウント] ページで鍵を表示し、新しい鍵を作成できます。

    [サービス アカウント] ページに移動

  2. サービス アカウントにリポジトリへの読み取りと書き込みのアクセス権を付与します。

    gcloud artifacts repositories add-iam-policy-binding \
    quickstart-npm-repo --location=us-central1 --member='serviceAccount:ACCOUNT' --role='roles/artifactregistry.writer'
    

    ACCOUNTUSERNAME@PROJECT-ID.iam.gserviceaccount.com という形式のサービス アカウントの ID です。

  3. サービス アカウント キー ファイルの場所を変数 GOOGLE_APPLICATION_CREDENTIALS に割り当てます。Artifact Registry 認証ヘルパーは、リポジトリとの接続時にキーを取得できるようになります。

    export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
    

    KEY-FILE はサービス アカウント キーファイルのパスです。

    サービス アカウント キーファイルを使用したパスワード認証を設定する方法については、authentication#auth-password のドキュメントをご覧ください。

npm を構成する

  1. アップロードする npm パッケージを作成します。このクイックスタートで使用できるパッケージがない場合は、次のコマンドを実行してプレーンな package.json ファイルを作成します。

    npm init -y
    
  2. 作成した Artifact Registry リポジトリにデプロイする npm プロジェクトを構成します。

    1. 以下のコマンドを実行します。このコマンドは、npm 構成ファイルに追加する構成設定を返します。

      gcloud artifacts print-settings npm --scope=@quickstart
      

      quickstart スコープはリポジトリに関連付けられます。パッケージを公開またはインストールするためのスコープをコマンドに挿入すると、npm はリポジトリを使用します。スコープを指定せずにパッケージを公開またはインストールする場合は、構成済みのデフォルトのリポジトリが使用されます。詳細については、Node.js の概要をご覧ください。

      gcloud コマンドの出力は次のようになります。

      @quickstart:registry=https://us-central1-npm.pkg.dev/PROJECT/quickstart-npm-repo/
      //us-central1-npm.pkg.dev/PROJECT/quickstart-npm-repo/:_authToken=""
      //us-central1-npm.pkg.dev/PROJECT/quickstart-npm-repo/:always-auth=true
      
    2. 前の手順で作成した構成設定をプロジェクトの .npmrc ファイルに追加します。このファイルは通常、package.json ファイルと同じディレクトリにあります。

      PROJECT を実際のプロジェクト ID に置き換えます。

      .npmrc ファイルの詳細については、Node.js の概要をご覧ください。

それぞれの Artifact Registry npm リポジトリは、npm レジストリ エンドポイント https://LOCATION-npm.pkg.dev/PROJECT/REPOSITORY に関連付けられます。別の Artifact Registry npm リポジトリを作成すると、npm は独自のスコープで個別のレジストリとしてリポジトリを操作します。

パッケージをリポジトリにアップロードする

  1. アップロードするパッケージを選択します。package.json のパッケージ名に quickstart スコープが含まれていることを確認します。

    "name": "@quickstart/my-package"
    
  2. リポジトリに接続するためのアクセス トークンを更新します。google-artifactregistry-auth は、Artifact Registry リポジトリの認証情報を更新するクライアント ライブラリです。認証情報を更新するには、次のいずれかのオプションを使用します。

    • プロジェクトの package.json ファイルにスクリプトを追加します。

      "scripts": {
        "artifactregistry-login": "npx google-artifactregistry-auth"
      }
      

      次のコマンドでスクリプトを実行します。

      npm run artifactregistry-login PROJECT-NPMRC
      

      PROJECT-NPMRC はプロジェクト ディレクトリの .npmrc ファイルのパスです。

    • 5.2.0 より古いバージョンの npm の場合は、次の手順を行います。

      1. 次のコマンドを実行します。
      npm install google-artifactregistry-auth --save-dev --registry https://registry.npmjs.org/
      
      1. 認証スクリプトに追加します。
      "scripts": {
          "artifactregistry-login": "./node_modules/.bin/artifactregistry-auth",
      }
      

      次のコマンドでスクリプトを実行します。

      npm run artifactregistry-login PROJECT-NPMRC
      

      PROJECT-NPMRC はプロジェクト ディレクトリの .npmrc ファイルのパスです。

  3. リポジトリにパッケージを追加します。npm または yarn コマンドを使用できます。

    npm publish
    
    yarn publish
    

リポジトリでパッケージを表示する

パッケージがリポジトリに追加されたことを確認するには:

コンソール

  1. Cloud Console で [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. リポジトリ リストで、quickstart-npm-repo リポジトリをクリックします。

    [Packages] ページには、リポジトリ内のパッケージが一覧表示されます。

  3. パッケージをクリックすると、パッケージのバージョンが表示されます。

gcloud

デフォルトの quickstart-npm-repo リポジトリ内のイメージを一覧表示するには、次のコマンドを実行します。

 gcloud artifacts packages list

パッケージのバージョンを表示するには、次のコマンドを実行します。

gcloud artifacts versions list --package=PACKAGE

PACKAGE はパッケージ ID です。

パッケージのインストール

npm リポジトリからパッケージをインストールするには、npm install コマンドまたは yarn add コマンドを使用します。PACKAGE をパッケージ名に置き換えます。

npm install @quickstart/PACKAGE
yarn add @quickstart/PACKAGE

クリーンアップ

このクイックスタートで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

リポジトリを削除する前に、保持する必要があるパッケージが別の場所で使用可能であることを確認してください。

リポジトリを削除するには、次の手順を行います。

コンソール

  1. Cloud Console で [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. リポジトリ リストで、quickstart-npm-repo リポジトリを選択します。

  3. [削除] をクリックします。

gcloud

  1. quickstart-npm-repo リポジトリを削除するには、次のコマンドを実行します。

    gcloud artifacts repositories delete quickstart-npm-repo
    
  2. アクティブな gcloud 構成用に構成したデフォルトのリポジトリとロケーション設定を削除するには、次のコマンドを実行します。

    gcloud config unset artifacts/repository
    gcloud config unset artifacts/location
    

次のステップ