Docs Menu
Docs Home
/ /

接続ガイド

このガイドでは、Lambda MongoDB を使用して、Lambel アプリケーションを MongoDB インスタンスまたはレプリカセットの配置に接続する方法を学習できます。

このガイドには、次のセクションが含まれています。

  • 接続 URI (接続 URI とその構成要素について説明)

  • Lambda データベース接続構成では、Lambel アプリの MongoDB データベース接続を設定する方法について説明しています。

  • 接続例 接続 を使用してMongoDB Atlasstringに接続する方法を示す例えを示します。

  • MongoDB に接続するその他の方法 」では、Atlas でホストされていない MongoDB 配置に接続する方法について説明します。

接続 URI ( 接続stringとも呼ばれます)は、Lambda 統合がMongoDBに接続する方法と、接続中の動作を指定します。

接続文字列には、次のコンポーネントが含まれます。

コンポーネント
説明

mongodb:// or mongodb+srv://

必須。 URI を標準接続形式(mongodb:// )または SRV 接続形式(mongodb+srv:// )の string として識別するプレフィックス。

詳細については、「 接続文字列の形式 」を参照してください。

username:password

任意。認証用のデータベースユーザー名とパスワードを <username>:<password>形式で指定します。

配置で認証 が必要ない場合は、このセクションを省略します。

host[:port]

必須。 MongoDB が実行されているホストとオプションのポート番号。 ポート番号を指定しない場合、ドライバーはデフォルトのポート27017を使用します。

ポート番号の指定は、標準の接続形式を使用する場合にのみサポートされることに注意してください。 SRV 接続形式を使用している場合は、ポート番号を省略します。

/defaultauthdb

任意。 接続stringに username:password@ 認証情報が含まれている一方で、authSource オプションが含まれていない場合に使用する認証データベース。 このコンポーネントを含めない場合、クライアントはadminデータベースに対してユーザーを認証します。

databaseかつ データベース構成配列で オプションが指定されていない場合にのみ、アプリケーションデータベースにすることもできます。

?<options>

任意。接続固有のオプションを<name>=<value> ペアとして指定するクエリ文字列。これらのオプションの詳細については、「 接続オプション 」ガイドを参照してください。

次の例では、プロトコル、認証情報、ホスト名とポート、および接続オプションを指定する完全な接続 URI を示しています。

mongodb://myUser:myPass123@localhost:27017/?w=majority&retryWrites=true

接続文字列の詳細については、サーバー マニュアルのマニュアルの「 接続文字列 」を参照してください。

Lambda 統合を使用すると、 config/database.php Lambda アプリケーション ファイルで MongoDB database 接続を構成できます。 このファイルでは、次の接続の詳細を指定できます。

  • defaultは、指定されていない場合に使用するデータベース接続を指定します。

  • connectionsは、アプリケーションから 1 つ以上のデータベースにアクセスするためのデータベース接続情報を含みます。

構成ファイルで次のコードを使用して、 connections配列内の対応するmongodbエントリへのデフォルト接続を設定できます。

'default' => 'mongodb',

MongoDB データベース接続の場合、次の詳細を指定できます。

設定
説明

driver

接続に使用するデータベースドライバーを指定します。

dsn

MongoDB 接続 URI を指定するデータソース名(DSN)。

host

Specifies the network address and port of one or more MongoDB nodes in a deployment. You can use this setting instead of the dsn setting.
To specify a single host, pass the hostname and port as a string as shown in the following example:
'host' => 'myhost.example.com:27017',
To specify multiple hosts, pass them in an array as shown in the following example::
'host' => ['node1.example.com:27017', 'node2.example.com:27017', 'node3.example.com:27017'],
This option does not accept hosts that use the DNS seedlist connection format.

database

読み取りおよび書込み先の MongoDB database の名前を指定します。

username

MongoDB で認証するためのデータベースユーザーのユーザー名認証情報を指定します。

password

MongoDB で認証するためのデータベースユーザーのパスワード認証情報を指定します。

options

接続動作を決定する MongoDB に渡す接続オプションを指定します。 接続オプションの詳細については、「接続オプションと認証オプション 」を参照してください。

driver_options

その接続のドライバーの動作を決定する MongoDB PHP ライブラリに渡す固有のオプションを指定します。 ドライバー オプションの詳細については、「ドライバー接続オプション 」を参照してください。

注意

dsn 構成では、配列項目としてではなく、 MongoDB接続stringのパラメーターとして指定できます。

  • host

  • username

  • password

  • optionsdriver_optionsは、オプション名で指定されます

次の例は、 connections配列項目で MongoDB 接続の詳細を指定する方法を示しています。

config/database.config MongoDB 接続構成の例
'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => 'mongodb+srv//myUser:myPass123@sample.host/',
'database' => 'sample_mflix',
'options' => [
'w' => 'majority',
],
'driver_options' => [
'serverApi' => 1,
],
],
// ...
],

次のセクションでは、MongoDB 接続を指定する一般的な方法について説明します。

このセクションでは、 MongoDB Atlas接続stringを使用して Lambda アプリケーションの DSN を構成する方法を示します。

MongoDB DSN を Lambda アプリケーションに追加するには、次の変更を行います。

  • プロジェクトの.env環境構成ファイルに、環境変数として DSN を追加します。 変数の値をAtlas接続stringに設定します。

  • config/database.php構成ファイルのconnections配列に MongoDB 接続用の接続エントリを追加します。 接続エントリのdsn値を設定して、DSN を含む環境変数を参照します。

次の例えは、関連する構成ファイルで接続stringとして "mongodb+srv://myUser:myPass123@mongodb0.example.com/" を指定する方法を示しています。

サンプル .env 環境構成
DB_URI="mongodb+srv://myUser:myPass123@mongodb0.example.com/"
サンプル config/database.html 接続エントリ
'connections' => [
'mongodb' => [
'dsn' => env('DB_URI'), // uses the value of the DB_URI environment variable
'driver' => 'mongodb',
'database' => 'sample_mflix',
// ...
],
// ...
]

Tip

Atlas接続stringを取得するには、クイック スタート チュートリアルの「接続stringの作成」の手順に従います。

次のセクションでは、単一の MongoDB サーバー インスタンスまたは MongoDB Atlas でホストされていないレプリカセットに接続する方法を示します。

このセクションでは、ローカル開発環境などの同じマシンからstring Lambda アプリケーションとMongoDB サーバーを実行する場合に使用できる接続 の例を示します。

アプリケーションを同じマシンでホストされている MongoDB インスタンスに接続するには、次のタスクを実行する必要があります。

  • MongoDB サーバーをダウンロード、インストール、実行します。

  • MongoDB サーバーが実行されている IP アドレスとポートを取得します。 MongoDB サーバーのローカル インストールのデフォルト設定を使用する場合、IP アドレスは127.0.0.1で、ポートは27017です。

  • 接続例セクションに示されているように、 dsnの値について環境変数DB_URIを参照するようにconfig/database.php接続を設定します。

次の例は、アプリケーションがデフォルトのstring .envMongoDBIPアドレスとポートで実行されている サーバーに接続する場合に、 ファイルに追加できるサンプル接続 を示しています。

サンプル .env ローカル MongoDB サーバーに接続するための環境構成。
DB_URI="mongodb://127.0.0.1:27017/";

MongoDB サーバーをダウンロードしてインストールする方法については、サーバー マニュアルの「 MongoDB Community Edition のインストール」を参照してください。

MongoDB レプリカセットの配置は、接続されたインスタンス、つまりノードのグループであり、ノードは同じデータセットを保存します。 このインスタンスの構成は、データの冗長性と高いデータ可用性を提供します。

レプリカセットの配置に接続するには、各ノードのホスト名とポート番号をカンマで区切って指定し、レプリカセット名を 接続stringの replicaSet パラメータの値として指定します。

レプリカセットに接続するために Lambda アプリケーションの .env ファイルに追加できる接続stringを示すこの例では、次のサンプル値を使用します。

  • host1MongoDB ノードのホスト名は 、 host2host3で、

  • 27017 は、それらのホスト上で MongoDB が実行されるポートとして、

  • myRS として、レプリカセットの設定された名前

  • myUser データベースユーザーの認証情報としての とmyPass123

DB_URI="mongodb://myUser:myPass123@host1:27017,host2:27017,host3:27017/?replicaSet=myRS"

レプリカセットに接続する際、Lambda 統合が MongoDB との接続を管理するために使用するライブラリは、特に指定されていない限り、次のアクションを実行します。

  • いずれかのノードのアドレスが指定されると、レプリカセットのすべてのノードを検出します。

  • プライマリノードに対する書込み指示などの操作を適切なメンバーに送信します。 レプリカセット プライマリの詳細については、サーバー マニュアルの「レプリカセット プライマリ」を参照してください。

Tip

レプリカセットに接続するには、1 つのホストのみを指定する必要があります。 ただし、選択したホストが利用できない場合でも接続できるようにするには、ホストの全リストを提供します。

MongoDB レプリカセットのセットアップの詳細については、サーバー マニュアルの「レプリカセットの配置 」を参照してください。

MongoDBレプリカセット内の特定のノードで操作を強制的に実行するには、接続stringにノードの接続情報と、true 値を持つ directConnection パラメーターを指定します。

直接接続には、次の制限があります。

  • DNS シードリスト接続形式の接続文字列は使用できません。

  • 指定されたホストがプライマリでない場合、書き込み操作は失敗します。

  • ホストがプライマリでない場合は、接続オプションでsecondary読み込み設定(read preference)を指定する必要があります。 この制限の詳細については、サーバー マニュアルのセカンダリの読み込み設定 (read preference) のエントリを参照してください。

次の例は、string レプリカセット内のセカンダリ.env ノードへの直接接続を確立するために Atlas アプリケーションの ファイルに追加できる接続MongoDB を示しています。この例では、次のサンプル値を使用します。

  • host2 : セカンダリ ノードのホスト名

  • 27017 : MongoDB ノードが listen するポート:

サンプル .env 直接接続を有効にするための 環境構成
DB_URI="mongodb://host2:27017/?directConnection=true&readPreference=secondary"

戻る

コマンドの実行

項目一覧