Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

外部依存関係

項目一覧

  • 外部パッケージを追加する
  • 名前とバージョンでパッケージを追加
  • 依存関係ディレクトリのアップロード
  • 関数内のパッケージをインポートする
  • 完全なモジュールをインポート
  • モジュール サブフォルダーのインポート

外部依存関係は、自分で実装できない、または実装したくないコードを含むライブラリです。 たとえば、外部サービスには公式のライブラリを使用したり、データ構造やアルゴリズムのカスタム実装を使用したりできます。

Atlas は依存関係を自動的に変換し、ほとんどの組み込みNode.jsモジュールもサポートします。

注意

独自のモジュールを作成

ほとんどの npm モジュールはサードパーティによって記述されていますが、アプリケーション固有のロジックを格納するために、独自の npm モジュールを作成して公開することもできます。 モジュールを Node.js Community で使用できるようにしたり、プライベート使用のために予約したりすることもできます。 詳細については、 のレジストリへのパッケージの貢献 に関する npm のガイドをご覧ください。

外部依存関係をインポートして使用するには、まずアプリケーションに依存関係を追加する必要があります。 名前を使用してパッケージを追加するか、依存関係のディレクトリをアップロードできます。

重要

既存の依存関係の上書き

アプリが使用できる外部パッケージを指定するには、一度に 1 つの方法のみを使用できます。 依存関係を指定するために使用した最新の方法は真実のソースであり、以前の指定を上書きします。

たとえば、UI を介して名前を追加したパッケージは、アップロードされた依存関係ディレクトリにあるパッケージを含め、以前に追加した同じパッケージのコピーを上書きします。

npm レジストリ からパッケージを追加できます アプリの名前を使用して特定のバージョンを追加するか、最新バージョンを使用できます。

1
  1. Triggersページに移動する

    1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

    2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

    3. サイドバーで、 Services見出しの下のTriggersをクリックします。

      Triggersページが表示されます。

  2. 依存関係を追加する trigger を選択します。

  3. Edit Trigger ページで、Function セクションにGoし、Add Dependency をクリックします。

2
  1. Add Dependencyモーダルウィンドウに、次の情報を含めます。

    フィールド
    説明
    パッケージ名を定義する
    npm パッケージの名前。
    パッケージ バージョン
    任意。 使用する依存関係の特定のバージョン。 デフォルトでは 、Atlas 関数は利用可能な最新バージョンを使用します。
  2. パッケージを追加するには、 Addをクリックします。

依存関係を追加する状況は、ウィンドウの下部にある進行状況追跡で追跡できます。 進行状況追跡は、パッケージが成功したか失敗したかを示すメッセージを提供します。 失敗メッセージには、パッケージを追加できなかった理由に関する追加情報が含まれています。

3

依存関係を正常に追加すると、メインのTriggersページのDependenciesタブの依存関係のリストに表示されます。

圧縮された node_modulesディレクトリのパッケージをアプリにアップロードできます。 圧縮された依存関係ディレクトリは 15 MB を超えることはできません。

重要

既存の依存関係の上書き

アーカイブをインポートすると、既存の依存関係がすべて削除されます。

1

外部依存関係をアップロードするには、まず少なくとも 1 つの Node.js パッケージを含むローカルnode_modulesフォルダーが必要です。 次のコード スニペットを使用して、アップロードする依存関係をローカルにインストールできます。

npm install <package name>

node_modulesフォルダがまだ存在しない場合、このコマンドはそれを自動的に作成します。

注意

インストールの代替方法

また、 package.jsonを構成し、 npm installコマンドを実行して、 package.jsonにリストされているすべてのパッケージ(およびその依存関係)をインストールすることもできます。

npm とnode_modules の詳細については、 npm ドキュメント を参照してください 。

2

すべてのnpmモジュールをダウンロードしたので、Atlas にアップロードできるように、アーカイブにパッケージ化する必要があります。 Atlas は、 .tar.tar.gz.tgz.zipアーカイブ形式をサポートしています。

node_modulesフォルダーを含むアーカイブを作成します。

tar -czf node_modules.tar.gz node_modules/
3

依存関係を含むアーカイブを作成したら、Atlas UIを使用して依存関係アーカイブをアップロードできます。

  1. Triggersページに移動します

    1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

    2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

    3. サイドバーで、 Services見出しの下のTriggersをクリックします。

      Triggersページが表示されます。

  2. Dependencies タブを選択します。

  3. [Upload Folder] をクリックします。

  4. [] モーダルで、[ node_modules.tar.gz Upload Folder ] をクリックし、作成した [] アーカイブを選択します。

  5. [ Addをクリックします。 Atlas は アーカイブファイルをアップロードします。これには、インターネット接続の速度と依存関係アーカイブのサイズによっては、数分かかる場合があります。

  6. Atlas は、操作の成功または失敗を示すバナーを表示します。 成功した場合、 Dependenciesタブには依存関係アーカイブに含めた依存関係のリストが表示されます。

    • 配置案が有効になっている場合は、これらの変更を適用するためにReview & Deployもクリックする必要があります。

    • 配置案が無効になっている場合、依存関係アーカイブのサイズに応じて、 5から60秒以内に変更が有効になります。

アプリに追加した組み込みモジュールと外部パッケージをインポートし、関数で使用できます。 パッケージをインポートするには、関数本体内からパッケージ名を指定してrequire()を呼び出します。

重要

モジュールをインポートするには

Node.jsプロジェクトは通常、各ファイルのグローバル スコープにrequire()呼び出しを配置しますが、Atlas はこのパターンをサポートしていません。 関数のスコープ内でrequire()呼び出しを配置する必要があります。

exports = () => {
const R = require("ramda");
return R.map(x => x*2, [1,2,3]);
}
exports = function(arg){
const cloneDeep = require("lodash/cloneDeep");
var original = { name: "Deep" };
var copy = cloneDeep(original);
copy.name = "John";
console.log(`original: ${original.name}`);
console.log(`copy: ${copy.name}`);
return (original != copy);
};

戻る

Global Modules