Overview
このガイドでは、接続、認証、ドライバーのオプションと、Lambda アプリケーションのデータベース接続構成でそれらを指定する方法を学習できます。 接続オプションは、データベース接続を管理する MongoDB PHP ライブラリに渡されます。
MongoDB PHP ライブラリの詳細については、 MongoDB PHP ライブラリのドキュメント を参照してください。
このガイドでは、次のトピックについて説明します。
接続オプションと認証オプション
次のセクションでは、構成ファイルに一般的な接続および認証オプションを追加する方法を学びます。
接続オプションと認証オプションの追加
次のいずれかの方法を使用して、Lambda ウェブ アプリケーションのconfig/database.php構成ファイルで接続オプションまたは認証オプションを指定できます。
設定と値を配列項目として
options配列項目に追加します。dsn配列項目で指定された接続stringに、設定と値をクエリstringパラメーターとして追加します。
options配列でオプションを指定するには、次の例に示すように、名前と値を配列アイテムとして追加します。
'connections' => [ 'mongodb' => [ 'dsn' => 'mongodb+srv://mongodb0.example.com/', 'driver' => 'mongodb', 'database' => 'sample_mflix', 'options' => [ 'appName' => 'myLaravelApp', 'compressors' => 'zlib', 'zlibCompressionLevel' => 7, ], ], ],
接続stringのパラメーターとしてオプションを指定するには、次のクエリstring構文形式を使用します。
ホスト情報を パラメーターから区切るために、疑問符文字
?を追加します。オプションを追加するには、
<option>=<value>としてフォーマットします。各オプションと値のペアの間にアンパサンド文字
&を挿入して、それらを区切ります。
次の設定例は、接続stringパラメーターの構文を示しています。
'dsn' => 'mongodb+srv://mongodb0.example.com/?appName=myLaravelApp&compressors=zlib',
オプションの説明
次の表では、接続オプションと認証オプションの一覧とそのデフォルト値について説明しています。
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
appName | 文字列 | なし | MongoDB PHP ライブラリがハンドシェイクの一部として MongoDB 配置に送信するアプリケーション名を指定します。 |
authMechanism | 文字列 | なし | 使用する認証メカニズムを指定します。 このオプションを指定しない場合、ドライバーはデフォルトの認証メカニズムを使用します。 詳細については、サーバー マニュアルの 「認証」 を参照してください。 |
authMechanismProperties | 文字列 | なし |
|
authSource | 文字列 | 説明を参照してください | 認証に使用されるデータベースを指定します。 |
compressors | 文字列のコンマ区切りリスト | なし | MongoDB PHP ライブラリが使用するデータコンプレッサーを指定して、指定された順序で MongoDB とアプリケーション間で渡されるネットワーク データの量を削減します。 |
connectTimeoutMS | Non-negative integer |
| サーバーに接続するときに、基礎の各 TCP ストリームに渡される接続タイムアウトをミリ秒単位で指定します。 |
directConnection | ブール値 |
| クラスター内のすべてのサーバーを検出して接続するのではなく、単一のホストに直接接続するかどうかを指定します。 この設定の詳細については、接続ガイドの「直接接続」を参照してください。 |
heartbeatFrequencyMS | 以上の整数 |
| 各監視スレッドがサーバー チェックの実行間で待機する時間をミリ秒単位で指定します。 |
journal | ブール値 |
| 操作がディスク上のジャーナルに伝達されたことの確認を要求します。 |
localThresholdMS | Non-negative integer |
| ドライバーとサーバー間の平均ラウンドトリップ時間が、すべての適切なサーバーの最短ラウンドトリップ時間と比較して持続できる時間をミリ秒単位で指定します。 |
maxStalenessSeconds |
|
| プライマリノードに対する最大の遅延時間(秒)を指定します。この操作にセカンダリノードを使用できるようにします。 |
readConcernLevel | 文字列 | なし | MongoDB PHP ライブラリによって実行される操作のデフォルトの読み取り保証 (read concern) を指定します。 詳細については、サーバー マニュアルの「読み取り保証」を参照してください。 |
readPreference | 文字列 |
| MongoDB PHP ライブラリが読み取り操作をレプリカセット メンバーにルーティングする方法を指定します。 詳細については、サーバー マニュアルの「読み込み設定」を参照してください。 |
readPreferenceTags | キーと値のペアをコンマで区切ったリスト | なし | どのレプリカセット ノードを操作の対象にするかを指定します。 このキーの各インスタンスは、個別のタグ セットです。 ドライバーは、各タグを持つ 1 つ以上のサーバーを見つけるまで、各タグセットをチェックします。 |
replicaSet | 文字列 | なし | MongoDB PHP ライブラリが接続するレプリカセットの名前を指定します。 |
retryReads | ブール値 |
| 操作が失敗した場合に MongoDB PHP ライブラリが読み取り操作を再試行するかどうかを指定します。 |
serverSelectionTimeoutMS | Non-negative integer |
| MongoDB PHP ライブラリがタイムアウトする前に、操作のサーバーを選択するまでの待機時間をミリ秒単位で指定します。 |
tls | ブール値 |
| MongoDB PHP ライブラリがサーバーとの接続で使用する TLS 構成を指定します。 |
tlsAllowInvalidCertificates | ブール値 |
| サーバーが無効な証明書を提示した場合にMongoDB PHPライブラリがエラーを返すかどうかを指定します。 |
tlsCAFile | 文字列 | 説明を参照してください | MongoDB PHP ライブラリが TLS に使用する認証機関 (CA) ファイルへのパスを指定します。 |
tlsCertificateKeyFile | 文字列 | なし | MongoDB PHP ライブラリがサーバーに提示して自身を認証するための証明書ファイルへのパスを指定します。 |
tlsInsecure | ブール値 |
| サーバーが無効な証明書を提示した場合にMongoDB PHPライブラリがエラーを返すかどうかを指定します。 |
w | 負でない整数または文字列 | なし | 操作が特定の数または種類のサーバーに伝播されたことの確認応答をリクエストします。 |
wTimeoutMS | Non-negative integer | タイムアウトなし | 書込み保証 (write concern) の時間制限をミリ秒単位で指定します。 操作が時間制限内に要求されたレベルに伝播しなかった場合、MongoDB PHP ライブラリはエラーを発生させます。 |
zlibCompressionLevel |
|
| この圧縮を使用する場合、 |
接続オプションの完全なリストを表示するには、サーバー マニュアルの『 接続文字列 』ガイドの「接続stringオプション 」セクションを参照してください。 ページの右側にあるSelect your languageドロップダウン メニューからPHPを選択します。
ドライバー接続オプション
ドライバー オプションは、Lambel アプリケーションと MongoDB 間の接続とすべての操作を管理する MongoDB PHP ライブラリの動作を変更します。
Lambda Web アプリケーションのconfig/database.php構成ファイルでドライバー オプションを指定できます。 ドライバー オプションを追加するには、次の例に示すように、設定と値を配列項目としてdriver_options配列項目に追加します。
'connections' => [ 'mongodb' => [ 'dsn' => 'mongodb+srv://mongodb0.example.com/', 'driver' => 'mongodb', 'database' => 'sample_mflix', 'driver_options' => [ 'serverApi' => 1, 'allow_invalid_hostname' => false, ], ], ]
ドライバー オプションのリストについては、MongoDB PHP ライブラリのドキュメントの「 $DriverOptions: 配列セクション 」を参照してください。