Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

チュートリアル: パッケージリポジトリからプルする

フォーカスモード
チュートリアル: パッケージリポジトリからプルする - Amazon CodeCatalyst

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

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

このチュートリアルでは、CodeCatalyst パッケージリポジトリから依存関係をプルするアプリケーションを実行するワークフローの作成手順を説明します。アプリケーションは、CodeCatalyst ログに「Hello World」メッセージを出力するシンプルな Node.js アプリケーションです。アプリケーションには lodash npm パッケージという 1 つの依存関係があります。lodash パッケージは、hello-world 文字列を Hello World に変換するために使用されます。このパッケージのバージョン 4.17.20 を使用します。

アプリケーションとワークフローを準備したら、CodeCatalyst を設定して lodash の他のバージョンをブロックし、外部のパブリックレジストリ (npmjs.com) から CodeCatalyst パッケージリポジトリにインポートされないようにします。その後、lodash の他のバージョンが正常にブロックされているかどうかテストします。

このチュートリアルを完了すると、ワークフローが CodeCatalyst 内外のパッケージリポジトリとどのようにやりとりし、パッケージを取得するのかを十分に理解できます。また、npm、パッケージリポジトリ、ワークフロー、アプリケーションの package.json ファイルの間で発生する裏側のやりとりについても理解することができます。

前提条件

開始する前に:

  • CodeCatalyst スペースが必要です。詳細については、「スペースを作成する」を参照してください。

  • CodeCatalyst スペースに、次の名前を持つ空のプロジェクトが必要です。

    codecatalyst-package-project

    このプロジェクトを作成するには、[ゼロから開始] オプションを使用します。

    詳細については、「Amazon CodeCatalyst での空のプロジェクトの作成」を参照してください。

ステップ 1: ソースレポジトリを作成する

このステップでは、CodeCatalyst に空のソースリポジトリを作成します。このリポジトリには、index.jspackage.json など、チュートリアルのソースファイルが保存されます。

ソースリポジトリの詳細については、「ソースリポジトリを作成する」を参照してください。

ソースリポジトリを作成するには
  1. https://codecatalyst.aws/ で CodeCatalyst コンソールを開きます。

  2. プロジェクト「codecatalyst-package-project」に移動します。

  3. ナビゲーションペインで [コード] を選択してから、[ソースリポジトリ] を選択します。

  4. [リポジトリの追加] を選択し、[リポジトリの作成] を選択します。

  5. [リポジトリ名] に次のように入力します。

    hello-world-app
  6. [Create] (作成) を選択します。

ステップ 2: CodeCatalyst パッケージリポジトリとゲートウェイパッケージリポジトリを作成する

このステップでは、CodeCatalyst プロジェクトにパッケージリポジトリを作成します。また、CodeCatalyst プロジェクトでゲートウェイリポジトリにも接続します。その後、チュートリアルの依存関係 lodash を npmjs.com から両方のリポジトリにインポートします。

ゲートウェイリポジトリとは、CodeCatalyst のパッケージリポジトリをパブリック npmjs.com に接続する接着剤のようなものです。

パッケージリポジトリの作成方法については、「CodeCatalyst でソフトウェアパッケージを公開および共有する」を参照してください。

注記

このチュートリアルでは、以下の手順で CodeCatalyst で作成する 2 つのリポジトリを指す用語として、CodeCatalyst パッケージリポジトリゲートウェイリポジトリを使用します。

CodeCatalyst パッケージリポジトリとゲートウェイリポジトリを作成するには
  1. ナビゲーションペインで、[Packages (パッケージ)] を選択します。

  2. [パッケージリポジトリの作成] を選択します。

  3. [リポジトリ名] に次のように入力します。

    codecatalyst-package-repository
  4. [+アップストリームリポジトリを選択] を選択します。

  5. [ゲートウェイリポジトリ] を選択します。

  6. [npm-public-registry-gateway] ボックスで、[作成] を選択します。

  7. [選択] を選びます。

  8. [Create] (作成) を選択します。

    CodeCatalyst により、ゲートウェイリポジトリに接続されている codecatalyst-package-repository というパッケージリポジトリが作成されます。ゲートウェイリポジトリは npmjs.com レジストリに接続されています。

ステップ 3: 「Hello World」アプリケーションを作成する

このステップでは、「Hello World」 Node.js アプリケーションを作成し、その依存関係 (lodash) をゲートウェイリポジトリと CodeCatalyst パッケージリポジトリにインポートします。

このアプリケーションを作成するには、Node.js と、関連する npm クライアントがインストールされている開発マシンが必要です。

このチュートリアルでは、CodeCatalyst 開発環境を開発マシンとして使用することを前提としています。CodeCatalyst 開発環境を使用する必要はありませんが、クリーンな作業環境が用意され、Node.js と npm がプリインストールされているうえに、チュートリアル終了後は簡単に削除できるため、使用することをお勧めします。CodeCatalyst 開発環境の詳細については、「開発環境の作成」を参照してください。

次の手順に従って CodeCatalyst 開発環境を立ち上げ、この開発環境を使用して「Hello World」アプリケーションを作成します。

CodeCatalyst 開発環境を立ち上げるには
  1. ナビゲーションペインで、[コード][開発環境] の順に選択します。

  2. 上部近くで [開発環境を作成] を選択し、[AWS Cloud9 (ブラウザで)] を選択します。

  3. [リポジトリ]hello-world-app に設定され、[既存のブランチ]main に設定されていることを確認します。[Create] (作成) を選択します。

    開発環境が新しいブラウザタブで起動し、リポジトリ (hello-world-app) のクローンがそこに作成されます。

  4. 両方の CodeCatalyst ブラウザタブを開いたままにして、次の手順に進みます。

「Hello World」Node.js アプリケーションを作成するには
  1. 開発環境に移動します。

  2. ターミナルプロンプトで、hello-world-app ソースリポジトリのルートディレクトリに変更します。

    cd hello-world-app
  3. Node.js プロジェクトを初期化します。

    npm init -y

    初期化により、hello-world-app のルートディレクトリに package.json ファイルが作成されます。

  4. 開発環境の npm クライアントを CodeCatalyst パッケージリポジトリに接続します。

    1. CodeCatalyst コンソールに切り替えます。

    2. ナビゲーションペインで、[Packages (パッケージ)] を選択します。

    3. codecatalyst-package-repository を選択してください。

    4. [リポジトリに接続] を選択します。

    5. [トークンを作成] をクリックします。個人用アクセストークン (PAT) が作成されます。

    6. [コピー] を選択してコマンドをコピーします。

    7. 開発環境に切り替えます。

    8. hello-world-app ディレクトリにいることを確認します。

    9. コマンドを貼り付けます。次のような内容です。

      npm set registry=https://packages.us-west-2.codecatalyst.aws/npm/ExampleCompany/codecatalyst-package-project/codecatalyst-package-repository/ --location project npm set //packages.us-west-2.codecatalyst.aws/npm/ExampleCompany/codecatalyst-package-project/hello-world-app/:_authToken=username:token-secret
  5. lodash バージョン 4.17.20 をインストールします。

    npm install lodash@v4.17.20 --save --save-exact

    npm は、次の場所で lodash バージョン 4.17.20 を次の順序で検索します。

    • 開発環境。ここにはありません。

    • CodeCatalyst パッケージリポジトリ。ここにはありません。

    • ゲートウェイリポジトリ。ここにはありません。

    • npmjs.com。ここにあります。

    npm は、lodash をゲートウェイリポジトリ、CodeCatalyst パッケージリポジトリ、開発環境にインポートします。

    注記

    ステップ 4 で npm クライアントを CodeCatalyst パッケージリポジトリに接続していなければ、npm は lodash を npmjs.com から直接プルし、パッケージはどちらのリポジトリにもインポートされることはありません

    npm は、lodash 依存関係を使用して package.json ファイルも更新し、lodash とそのすべての依存関係を含む node_modules ディレクトリを作成します。

  6. lodash が開発環境に正常にインポートされたことを確認します。次のとおりに入力します。

    npm list

    インポートが成功したことを示す次のメッセージが表示されます。

    `-- lodash@4.17.20
  7. (オプション) hello-world-app/package.json を開き、赤い太字の行が追加されていることを確認します。

    { "name": "hello-world-app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", dependencies": { "lodash": "4.17.20" } }
  8. /hello-world-app に「index.js」という名前のファイルを次の内容で作成します。

    ヒント

    このファイルを作成するには、開発環境のサイドナビゲーションを使用します。

    // Importing lodash library const _ = require('lodash'); // Input string const inputString = 'hello-world'; // Transforming the string using lodash const transformedString = _.startCase(inputString.replace('-', ' ')); // Outputting the transformed string to the console console.log(transformedString);
「lodash」がゲートウェイリポジトリと CodeCatalyst パッケージリポジトリにインポートされたことをテストするには
  1. CodeCatalyst コンソールに切り替えます。

  2. ナビゲーションペインで、[Packages (パッケージ)] を選択します。

  3. [npm-public-registry-gateway] を選択します。

  4. lodash が表示されていることを確認します。[最新バージョン] の列には 4.17.20 が表示されます。

  5. codecatalyst-package-repository でこの手順を繰り返します。インポートされたパッケージを表示するには、ブラウザウィンドウを再読み込みする必要があるかもしれません。

開発環境で「Hello World」をテストするには
  1. 開発環境に切り替えます。

  2. 引き続き hello-world-app ディレクトリにいることを確認し、アプリケーションを実行します。

    node index.js

    Hello World メッセージが表示されます。Node.js は、前のステップで開発環境にダウンロードした lodash パッケージを使用してアプリケーションを実行しました。

「node_modules」ディレクトリを無視して「Hello World」をコミットするには
  1. node_modules ディレクトリを無視します。次のとおりに入力します。

    echo "node_modules/" >> .gitignore

    このディレクトリをコミットしないことをお勧めします。また、このディレクトリをコミットすると、このチュートリアルの後のステップに支障をきたします。

  2. 追加、コミット、プッシュ:

    git add . git commit -m "add the Hello World application" git push

    「Hello World」アプリケーションファイルとプロジェクトファイルがソースリポジトリに追加されます。

ステップ 4:「Hello World」を実行するワークフローを作成する

このステップでは、lodash 依存関係を使用して「Hello World」アプリケーションを実行するワークフローを作成します。ワークフローには、RunHelloWorldApp と呼ばれる 1 つのアクション、またはタスクが含まれています。RunHelloWorldApp アクションに含まれる主なコマンドとセクション:

  • Packages

    このセクションには、npm install の実行時にアクションが接続する必要がある CodeCatalyst パッケージリポジトリの名前が示されています。

  • - Run: npm install

    このコマンドは、package.json ファイルで指定された依存関係をインストールするように npm に指示します。package.json ファイルで指定されている依存関係は lodash のみです。npm は、次の場所で lodash を検索します。

    • アクションを実行している Docker イメージ。ここにはありません。

    • CodeCatalyst パッケージリポジトリ。ここにあります。

    npm が lodash を検出すると、アクションを実行している Docker イメージにインポートされます。

  • - Run: npm list

    このコマンドは、アクションを実行している Docker イメージにダウンロードされた lodash のバージョンを出力します。

  • - Run: node index.js

    このコマンドは、package.json ファイルで指定された依存関係を使用して「Hello World」アプリケーションを実行します。

RunHelloWorldApp アクションはビルドアクションであることに注目してください。これは、ワークフローの上部にある aws/build@v1 識別子でわかります。うに、ビルドアクションの詳細については、「ワークフローを使用したビルド」を参照してください。

次の手順を使用して、CodeCatalyst パッケージリポジトリから lodash 依存関係をプルし、「Hello World」アプリケーションを実行するワークフローを作成します。

ワークフローを作成するには
  1. CodeCatalyst コンソールに切り替えます。

  2. ナビゲーションペインで [CI/CD][ワークフロー] の順に選択します。

  3. [ワークフローを作成] を選択します。

  4. [ソースリポジトリ] で、hello-world-app を選択します。

  5. [ブランチ] で、main を選択します。

    ワークフロー定義ファイルは、選択したソースリポジトリとブランチに作成されます。

  6. [Create] (作成) を選択します。

  7. 上部付近の [YAML] を選択します。

  8. YAML サンプルコードを削除します。

  9. 次の YAML コードを追加します。

    Name: codecatalyst-package-workflow SchemaVersion: "1.0" # Required - Define action configurations. Actions: RunHelloWorldApp: # Identifies the action. Do not modify this value. Identifier: aws/build@v1 Compute: Type: Lambda Inputs: Sources: - WorkflowSource # This specifies your source repository. Configuration: Steps: - Run: npm install - Run: npm list - Run: node index.js Container: # This specifies the Docker image that runs the action. Registry: CODECATALYST Image: CodeCatalystLinuxLambda_x86_64:2024_03 Packages: NpmConfiguration: PackageRegistries: - PackagesRepository: codecatalyst-package-repository

    上記のコードで、codecatalyst-package-repository を、「ステップ 2: CodeCatalyst パッケージリポジトリとゲートウェイパッケージリポジトリを作成する」で作成した CodeCatalyst パッケージリポジトリの名前に置き換えます。

    このファイルのプロパティの詳細については、「ビルドおよびテストアクション YAML」を参照してください。

  10. (任意) [検証] を選択して、コミットする前に YAML コードが有効であることを確認します。

  11. [コミット] を選択します。

  12. [ワークフローをコミット] ダイアログボックスで、次のように入力します。

    1. [ワークフローファイル名] は、デフォルトの「codecatalyst-package-workflow」のままにします。

    2. [コミットメッセージ] には、次のように入力します。

      add initial workflow file
    3. [リポジトリ] で、[hello-world-app] を選択します。

    4. [ブランチ名] で、[main] を選択します。

    5. [コミット] を選択します。

    これでワークフローが作成されました。

ワークフローを実行するには
  1. 先ほど作成したワークフロー (codecatalyst-package-workflow) の横にある [アクション] を選択し、[実行] を選択します。

    ワークフローの実行が開始されます。

  2. 右上の緑色の通知で、実行へのリンクをクリックします。リンクは View Run-1234 の形式で表示されます。

    ワークフロー図が表示され、実行を開始したユーザーと RunHelloWorldApp アクションが表示されます。

  3. [RunHelloWorldApp] アクションボックスを選択して、アクションの進行状況を確認します。

  4. 実行が完了したら、「ステップ 5: ワークフローを検証する」に進みます。

ステップ 5: ワークフローを検証する

このステップでは、ワークフローが「Hello World」アプリケーションをその lodash 依存関係を使用して正常に実行したことを確認します。

「Hello World」アプリケーションが依存関係を使用して実行されたことを確認するには
  1. ワークフロー図で、[RunHelloWorldApp] ボックスを選択します。

    ログメッセージのリストが表示されます。

  2. node index.js ログメッセージを展開します。

    次のメッセージが表示されます。

    [Container] 2024/04/24 21:15:41.545650 Running command node index.js Hello World

    hello-world ではなく Hello Word と表示されていることから、lodash 依存関係が正常に使用されたことがわかります。

  3. npm list ログを展開します。

    次のようなメッセージが表示されます。

    └── lodash@4.17.20

    このメッセージは、ワークフローアクションを実行している Docker イメージに lodash バージョン 4.17.20 がダウンロードされたことを示しています。

ステップ 6: npmjs.com からのインポートをブロックする

lodash バージョン 4.17.20 がゲートウェイリポジトリと CodeCatalyst パッケージリポジトリに存在するため、他のバージョンのインポートをブロックできます。ブロックすると、悪意のあるコードが含まれている可能性がある lodash のそれ以降 (またはそれ以前の) バージョンを誤ってインポートできなくなります。詳細については、パッケージオリジンコントロールの編集および依存関係置換攻撃を参照してください。

ゲートウェイリポジトリへの lodash のインポートをブロックする手順は次のとおりです。ゲートウェイでパッケージをブロックすると、ダウンストリームの場所でもブロックされます。

ゲートウェイリポジトリへのインポートをブロックするには
  1. ナビゲーションペインで、[Packages (パッケージ)] を選択します。

  2. [npm-publish-registry-gateway] を選択します。

  3. lodash を選択してください。

  4. 上部付近で、[オリジンコントロール] を選択します。

  5. [アップストリーム] で、[ブロック] を選択します。

  6. [Save] を選択します。

    これで、npmjs.com からゲートウェイリポジトリ (およびダウンストリームリポジトリとコンピュータ) へのインポートがブロックされました。

ステップ 7: ブロック機能をテストする

このセクションでは、「ステップ 6: npmjs.com からのインポートをブロックする」で設定したブロックが機能していることを確認します。まず、「Hello World」を、ゲートウェイリポジトリで使用可能な lodash のバージョン 4.17.20 ではなく、バージョン 4.17.21 をリクエストするように設定します。次に、アプリケーションが nmpjs.com からバージョン 4.17.21 をプルできないことを確認します。これは、ブロックが成功したことを意味します。最後のテストとして、ゲートウェイリポジトリへのインポートのブロックを解除し、アプリケーションが lodash のバージョン 4.17.21 を正常にプルできることを確認します。

ブロック機能をテストするには、以下の手順を使用します。

[開始する前に]
  1. 開発環境に切り替えます。

  2. CodeCatalyst コンソールを使用して以前に作成した codecatalyst-package-workflow.yaml ファイルをプルします。

    git pull
「lodash」のバージョン 4.17.21 をリクエストするように「Hello World」を設定するには
  1. /hello-world-app/package.json を開きます。

  2. 赤の太字で示されているように、lodash のバージョンを 4.17.21 に変更します。

    { "name": "hello-world-app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "lodash": "4.17.21" } }

    これで、package.json ファイル内のバージョン (4.17.21) とゲートウェイリポジトリおよび CodeCatalyst パッケージリポジトリ内のバージョン (4.17.20) が一致しなくなりました。

  3. 追加、コミット、プッシュ:

    git add . git commit -m "update package.json to use lodash 4.17.21" git push
「Hello World」が「lodash」のバージョン 4.17.21 をプルできないことをテストするには
  1. バージョンが一致しない状態でワークフローを実行します。

    1. CodeCatalyst コンソールに切り替えます。

    2. ナビゲーションペインで [CI/CD][ワークフロー] の順に選択します。

    3. codecatalyst-package-workflow の横で、[アクション][実行] の順に選択します。

      npm は package.json で依存関係をチェックし、lodash のバージョン 4.17.21 が「Hello World」で必要であることを確認します。npm は、次の場所で、次の順序で依存関係を探します。

      • アクションを実行している Docker イメージ。ここにはありません。

      • CodeCatalyst パッケージリポジトリ。ここにはありません。

      • ゲートウェイリポジトリ。ここにはありません。

      • npmjs.com。ここにあります。

      npm が npmjs.com でバージョン 4.17.21 を見つけた後、ゲートウェイリポジトリにインポートしようとしますが、lodash のインポートをブロックするようにゲートウェイを設定しているため、インポートは行われません。

      インポートが行われないため、ワークフローは失敗します。

  2. ワークフローが失敗したことを確認します。

    1. 右上の緑色の通知で、実行へのリンクをクリックします。リンクは View Run-2345 の形式で表示されます。

    2. ワークフロー図で、[RunHelloWorldApp] ボックスを選択します。

    3. npm install ログメッセージを展開します。

      次のメッセージが表示されます。

      [Container] 2024/04/25 17:20:34.995591 Running command npm install npm ERR! code ETARGET npm ERR! notarget No matching version found for lodash@4.17.21. npm ERR! notarget In most cases you or one of your dependencies are requesting npm ERR! notarget a package version that doesn't exist. npm ERR! A complete log of this run can be found in: /tmp/.npm/_logs/2024-05-08T22_03_26_493Z-debug-0.log

      エラーから、バージョン 4.17.21 が見つからなかったことがわかります。ブロックしているので、想定される結果です。

npmjs.com からのインポートのブロックを解除するには
  1. ナビゲーションペインで、[Packages (パッケージ)] を選択します。

  2. [npm-publish-registry-gateway] を選択します。

  3. lodash を選択してください。

  4. 上部付近で、[オリジンコントロール] を選択します。

  5. [アップストリーム] で、[許可] を選択します。

  6. [Save] を選択します。

    これで、lodash のインポートのブロックが解除されました。

    ワークフローで lodash のバージョン 4.17.21 をインポートできるようになりました。

npmjs.com からのインポートがブロック解除されていることをテストするには
  1. ワークフローを再度実行します。4.17.21 のインポートが機能するようになったため、今回はワークフローが成功するはずです。ワークフローを再び実行するには:

    1. [CI/CD] を選択し、[ワークフロー] を選択します。

    2. codecatalyst-package-workflow の横で、[アクション][実行] の順に選択します。

    3. 右上の緑色の通知で、実行へのリンクをクリックします。リンクは View Run-3456 の形式で表示されます。

      ワークフロー図が表示され、実行を開始したユーザーと RunHelloWorldApp アクションが表示されます。

    4. [RunHelloWorldApp] アクションボックスを選択して、アクションの進行状況を確認します。

    5. npm list ログメッセージを展開し、次のようなメッセージが表示されることを確認します。

      └── lodash@4.17.21

      このメッセージから、lodash バージョン 4.17.21 がダウンロードされたことがわかります。

  2. バージョン 4.17.21 が CodeCatalyst およびゲートウェイリポジトリにインポートされたことを確認します。

    1. ナビゲーションペインで、[Packages (パッケージ)] を選択します。

    2. [npm-public-registry-gateway] を選択します。

    3. lodash を見つけて、バージョンが 4.17.21 であることを確認します。

      注記

      バージョン 4.17.20 はこのページに表示されていませんが、lodash を選択して、上部にある [バージョン] を選択することで見つけることができます。

    4. 以上のステップを繰り返して、バージョン 4.17.21 が にインポートされたことを確認しますcodecatalyst-package-repository

クリーンアップ

このチュートリアルで使用されているファイルとサービスをクリーンアップして、料金が発生しないようにします。

パッケージのチュートリアルをクリーンアップするには
  1. codecatalyst-package-project を削除する:

    1. CodeCatalyst コンソールで、まだ codecatalyst-package-project プロジェクトにいない場合はプロジェクトに移動します。

    2. ナビゲーションペインで、[プロジェクト設定] を選択します。

    3. [プロジェクトの削除] を選択し、「delete」と入力し、[プロジェクトの削除] を選択します。

      CodeCatalyst は、ソースリポジトリ、ゲートウェイリポジトリ、CodeCatalyst パッケージリポジトリを含むすべてのプロジェクトリソースを削除します。開発環境も削除されます。

  2. PAT トークンを削除する:

    1. 右側のユーザー名を選択し、[マイ設定] を選択します。

    2. [個人用アクセストークン] で、このチュートリアルで作成したトークンを選択し、[削除] を選択します。

このチュートリアルでは、CodeCatalyst パッケージリポジトリから依存関係をプルするアプリケーションを実行するワークフローの作成手順を学びました。また、パッケージがゲートウェイリポジトリや CodeCatalyst パッケージリポジトリに入るのをブロックする方法や、そのブロックを解除する方法も学びました。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.