Edge Server の構成 - プレビュー
項目一覧
Atlas で Edge Server インスタンスを作成したら、Edge Server インスタンスを実行するハードウェアを構成する必要があります。 ほとんどのユースケースでは、Edge Server インスタンスをホストするためにオンプレミスでハードウェアをプロビジョニングします。 Edge Server アプリケーションを開発している間に、便宜上クラウドサーバーでホストできます。
オンプレミスのクライアント デバイスは Edge Server インスタンスに接続します。 インスタンスは、作成方法に応じて Edge Server Service または Device Sync Service に接続します。 クライアントは MongoDB Atlas に直接接続しません。
このページでは、Edge Server インスタンスで操作を構成および実行する方法について詳しく説明します。
前提条件
各 Edge Server インスタンスは、Atlas プロジェクト内のサービスに接続します。 Edge Server インスタンスを使用する前に、関連するサービスを作成し、Edge Server インスタンスの認証プロバイダと権限を構成する必要があります。
Edge Server ホストの要件
Edge Server インスタンスを実行するホストは、EC 2インスタンスやその他のクラウドサーバー、またはオンサイトでプロビジョニングするハードウェアです。
Tip
概念実証テストには、Ubuntu Server 18.x を実行している EC2 インスタンスを起動できます。 [ ネットワーク 設定 ] の下に、HTTP/ポート 80 経由のアクセスを許可するルールを追加します。無料階層設定は、小規模な POC プロジェクトに十分です。
必要なハードウェア
Edge Server インスタンスを実行するための現在の最小ハードウェア要件は次のとおりです。
CPU: 64ビット、クアッドコア プロセッサ
RAM: 8 GB メモリ
ストレージ: 32 GB のディスク容量
Edge Server ベンチマークが完了した後に、これらの要件が変更される可能性があります。
OS Compatibility
Edge Server は、次のオペレーティング システムで検証されています。
M1 または Intel 2018+ macOS Pros で実行中の macOS 11.x 以降
Raspberry Pi OS 12
Ubuntu Server 18+
他のオペレーティング システムも可能である可能性がありますが、まだ検証されていません。
必要なソフトウェア
便宜上、開発中に Sward モードで Docker を使用して Edge Server インスタンスを管理できます。 本番環境では、Kubernetes を使用して Edge Server コンテナを管理します。
Docker がインストールされておらず、Sward が有効になっている場合は、Edge Server を実行する前にこれらの依存関係を解決するよう求められます。
必要なネットワーク アクセス
同期クライアントからの接続または MongoDB URI を使用する接続を受け入れるには、Edge Server を実行するホストが着信接続へのアクセスを許可している必要があります。
Edge Server を独自のインフラストラクチャ上で実行する場合、一般インターネットに対して インスタンスを開く必要はありません。 必要なのは、クライアント デバイスがアクセスできることを確認するだけです。
EC2 で開発環境を実行するなどのクラウド インフラストラクチャの場合は、着信接続を受け入れるためにポートを開く必要があります。
開発: 開発を簡素化と高速化するために、ポート 80 で HTTP を使用します。
本番環境: 本番環境のデータへのアクセスを保護するには、ポート 443 で SSL を使用します。
Edge Server は TLS をサポートしています。
Kubernetes コントローラーを介して、Device SDK トラフィックを含む HTTP アクセスの TLS 終了を設定することをお勧めします。
MongoDB URI を介した接続では、 edgectl
を通じて TLS を構成できます。
Edge Server インスタンスのインストールと構成
Edge Server Service または Device Sync Service を作成した後、Edge Server インスタンスを作成する必要があります。 各サービスには多くの Edge Server インスタンスがある場合があります。 Edge Server インスタンスを作成すると、Edge Server インスタンスedgectl
をインストールおよび管理するためのツールをダウンロードするために使用できるインストール スクリプトが取得されます。 また、Edge Server インスタンスを登録するために使用できるトークンも取得します。 詳細については、 「 Edge Server インスタンスの作成 」を参照してください。
インストール スクリプトを使用して、ホスト上の Edge Server インスタンスをセットアップして実行します。
重要
Edge Server を使用していない場合は停止する
Edge Server インスタンスを起動すると、クライアント アプリケーションが接続されていない場合でも、Atlas への Webhook 接続を維持しようとします。 デモを実行している場合、またはその他で POC で作業している場合は、Edge Server インスタンスの使用が完了したら、 edgectl stop
を使用して Edge Server インスタンスを停止することを忘れないでください。 それ以外の場合は、ホストのコンピュートと Device Sync 時間を引き続き使用します。
Edge Server コードをインストール
Edge Server は、 edgectl
というコマンドライン ツールを使用して、ホスト ハードウェア上の Edge Server インスタンスを管理します。 これには、インストールを管理し、必要な依存関係をインストールするためのインストール スクリプトが含まれています。
次のコマンドを使用して、Edge Server インスタンスを実行するデバイスにコマンドライン ツールと Edge Server コードをインストールします。
curl -s https://services.cloud.mongodb.com/edge/install.sh | bash
プロンプトに従って、Edge Server のコードをダウンロードしてインストールします。
Edge Server インスタンスの初期化
Edge Server インスタンスを設定するには、 edgectl
を使用します。
edgectl init --app-id="<INSERT-YOUR-APP-ID-HERE>" --platform=compose
最小限必要なパラメータはapp-id
とplatform
です。
--app-id
: Edge Server アプリ ID を入力します。 たとえば、--app-id="edge-server-vtoyh"
。 詳しくは、 「 アプリ ID の検索 」を参照してください。--platform
: Docker Compose を使用して、開発環境で Edge Server インスタンスをインストールおよび管理するか、Kubernetes を使用して本番環境でインスタンスを管理できます。 有効な値はcompose
またはkubernetes
のいずれかです。
追加の構成の詳細を指定するには、次の任意フラグを指定します。
フィールド名 | タイプ | 値 |
---|---|---|
--edge-root-dir | 文字列 | 構成ファイルを保存するディスク上のロケーション。 デフォルトは ~/.mongodb-edge/ です。 代替のロケーションを指定する場合は、発行する後続のedgectl コマンドで、このフラグを代替のロケーションとともに渡す必要があります。 |
--query | 文字列 | Edge Server インスタンスと Atlas 間で同期するデータを定義するクエリ。 クエリを指定しない場合、インスタンスはアクセス権限を持つすべてのデータを同期します。 クエリの入力の詳細については、「 Edge Server のクエリを指定する 」を参照してください。 |
--global-query | 文字列 | リンクされたデータソース内のすべてのコレクションに適用するクエリ。 詳細については、「 Edge Server のクエリを指定する 」を参照してください。 |
--query-file | 文字列 | リンクされたデータソース内のコレクションに対するクエリを含む JSON ファイルへのパスを渡します。 詳細については、「 Edge Server のクエリを指定する 」を参照してください。 |
--http-port | Int | インスタンスが HTTP 接続をリッスンするポート。 デフォルト値は 80 です。 |
--wire-protocol-port | Int | インスタンスが MongoDB ドライバーからの接続など、MongoDB ワイヤプロトコル 接続をリッスンするポート。 デフォルト値は 27021 です。 |
--insecure-disable-auth | ブール値 | true の場合、ユーザーは ワイヤプロトコル または Atlas Device SDK クライアントを介してインスタンスに匿名で接続できます。 デフォルトはfalse です。 |
--skip-user-prompt | ブール値 | true の場合、Edge Server はユーザーの作成を求めません。 false の場合、Edge Server は Atlas に接続して、メール/パスワードユーザーがサービス内に存在するかどうかを確認します。 対応するメール/パスワード ユーザーが存在しない場合は、ユーザーを作成するためにユーザー名とパスワードの入力を対話的に要求します。 デフォルトはfalse です。 |
--disable-local-ui | ブール値 | true の場合、Edge Server インスタンスは登録されたhttp-port で UI を実行しません。 デフォルトはfalse です。 |
--profile | 文字列 | 特定の edgectl コマンドを実行するときに使用するプロファイルの名前。 名前を指定しない場合、プロファイル名はデフォルトでapp-id になり、 -01 から始めて、増加する番号が追加されます。 プロファイルフラグを指定しない場合、 edgectl はコマンドの実行時にデフォルトのプロファイルを使用します。 詳細については、「 ホスト上で複数の Edge Server インスタンスの実行 」を参照してください。 |
--registration-token | 文字列 | Edge Server インスタンスの 1 回限りの使用登録トークン。 トークンとともにこのフラグを渡さない場合、 edgectl は初期設定中にトークンの対話型プロンプトを表示します。 |
Edge Server トークンの提供
Edge Server インスタンスを初めて構成するときは、Edge Server トークンを提供するように求められます。 これは、 インスタンスを サービスに追加したときに取得したトークンです。
トークンが存在しない場合は、サービスのEdge Server インスタンスの詳細から新しいトークンを生成できます。
Edge Server インスタンスは、このトークンをシークレットと交換します。 データを同期するときに Atlas で認証するためにシークレットを使用します。
(任意)新しいユーザーの作成
MongoDB ドライバーまたはツールを使用して Edge Server インスタンスに接続する場合は、ユーザー名/パスワードの認証情報またはバイパス認証が必要です。 ユーザー名/パスワードの認証情報がすでに存在する場合、または MongoDB ドライバーまたはツールを使用して Edge Server インスタンスに接続する予定がない場合は、この手順をスキップできます。
詳しくは、「 MongoDB ドライバーとツールを使用して Edge Server に接続する 」を参照してください。
ユーザー名やパスワードの認証情報がまだない場合は、 edgectl init
中にプロンプトに従って作成できます。
それ以外の場合は、App Services UI、App Services CLI、または App Services Admin API を使用して、後でメール/パスワードユーザーを手動で作成できます。
あるいは、認可フローを後で実装する予定の場合は、次のコマンドと フラグを使用して認可をバイパスすることもできます。
edgectl config --insecure-disable-auth=true
Edge Server の起動と停止
Edge Server インスタンスを起動および停止するには、 edgectl
を使用します。
すべての Edge Server インスタンス コンテナを起動するには、 start
コマンドを使用します。
edgectl start
すべての Edge Server インスタンス コンテナを停止するには、 stop
コマンドを使用します。
edgectl stop
重要
Edge Server を使用していない場合は停止する
Edge Server インスタンスを起動すると、クライアント アプリケーションが接続されていない場合でも、Atlas への Webhook 接続を維持しようとします。 デモを実行している場合、またはその他で POC で作業している場合は、Edge Server インスタンスの使用が完了したら、 edgectl stop
を使用して Edge Server インスタンスを停止することを忘れないでください。 それ以外の場合は、ホストのコンピュートと Device Sync 時間を引き続き使用します。
Edge Server ステータスの確認
Edge Server インスタンスが実行されている場合は、次の方法でインスタンスのステータスが表示されます。
edgectl status
これにより、Edge Server コンテナの状態に関する情報と、重要な情報の内訳の Sync サーバーの詳細なステータスが提供されます。 次のようになります。
{ "mongoContainerStatus": { "message": "running" }, "mongoDBStatus": { "message": "ready" }, "syncServerContainerStatus": { "message": "running" }, "syncServerStatus": { "message": "ACTIVE" }, "syncServerDetailedStatus": { "version": "v0.22.3", "status": "ACTIVE", "cloud_connected": true, "num_local_clients": 0, "query": { "Item": "truepredicate" } } }
syncServerDetailedStatus
には、Edge Server インスタンスの状態に関する情報が含まれています。 これには、次のような、Atlas への接続と、それに接続されたクライアントに関する詳細が含まれます。
フィールド名 | タイプ | 値 |
---|---|---|
version | 文字列 | インスタンスが実行している Edge Server コードの現在のバージョン。 Edge Server インスタンスが利用可能な最新バージョンより 1 つ以上前のメジャー バージョンより遅れている場合は、Atlas に接続できなくなるため、消去して更新する必要があります。 詳細については、「 Edge Server バージョンのアップグレード 」を参照してください。 |
status | 文字列 | Edge Server インスタンスの現在のステータス。 指定できる値は、
|
cloud_connected | ブール値 | true の場合、Edge Server インスタンスは現在 Atlas に接続されています。 false の場合、Edge Server インスタンスは Atlas に接続されていません。 インスタンスが Atlas に接続されていない場合でも、ローカル接続は引き続き受信し、ローカル クライアントとデータを同期できます。 Atlas と再接続すると、接続されていない間に変更されたデータの同期が試行されます。 |
num_local_clients | Int | 現在 Atlas Device SDK を介して Edge Server インスタンスに現在接続されているクライアントの数。 これにはワイヤプロトコルを介した接続は含まれません。 |
query | オブジェクト | JSON オブジェクトとして表示される Edge Server インスタンス同期クエリ。 詳細については、「 Edge Server のクエリを指定する 」を参照してください。 |
Edge Server インスタンス構成を更新する
edgectl
を使用して、既存の Edge Server インスタンスに変更を加えることができます。 構成を変更した後、インスタンスを再起動して更新を適用します。
Edge Server 構成の更新
適切なフラグを指定してedgectl config
コマンドを使用して、 インスタンスを更新します。
edgectl config --YOUR-FLAG-HERE
フィールド名 | タイプ | 値 |
---|---|---|
--edge-root-dir | 文字列 | 構成ファイルを保存するディスク上のロケーション。 デフォルトは ~/.mongodb-edge/ です。 初期設定中に代替の場所を指定した場合は、 edgectl コマンドを発行するたびに、このフラグを代替 コマンドで渡す必要があります。 |
--query | 文字列 | Edge Server インスタンスと Atlas 間で同期するデータを定義するクエリ。 クエリを指定しない場合、インスタンスはアクセス権限を持つすべてのデータを同期します。 クエリの入力の詳細については、「 Edge Server のクエリを指定する 」を参照してください。 |
--global-query | 文字列 | リンクされたデータソース内のすべてのコレクションに適用するクエリ。 詳細については、「 Edge Server のクエリを指定する 」を参照してください。 |
--query-file | 文字列 | リンクされたデータソース内のコレクションに対するクエリを含む JSON ファイルへのパスを渡します。 詳細については、「 Edge Server のクエリを指定する 」を参照してください。 |
--http-port | Int | インスタンスが HTTP 接続をリッスンするポート。 デフォルト値は 80 です。 |
--wire-protocol-port | Int | インスタンスが MongoDB ドライバーからの接続など、MongoDB ワイヤプロトコル 接続をリッスンするポート。 デフォルト値は 27021 です。 |
--insecure-disable-auth | ブール値 | true の場合、ユーザーは ワイヤプロトコル または Atlas Device SDK クライアントを介してインスタンスに匿名で接続できます。 デフォルトはfalse です。 |
--skip-user-prompt | ブール値 | true の場合、Edge Server はユーザーの作成を求めません。 false の場合、Edge Server は Atlas に接続して、メール/パスワードユーザーがサービス内に存在するかどうかを確認します。 対応するメール/パスワード ユーザーが存在しない場合は、ユーザーを作成するためにユーザー名とパスワードの入力を対話的に要求します。 デフォルトはfalse です。 |
--disable-local-ui | ブール値 | true の場合、Edge Server インスタンスは登録されたhttp-port で UI を実行しません。 デフォルトはfalse です。 |
--profile | 文字列 | 特定の edgectl コマンドを実行するときに使用するプロファイルの名前。 名前を指定しない場合、プロファイル名はデフォルトでapp-id になり、 -01 から始めて、増加する番号が追加されます。 プロファイルフラグを指定しない場合、 edgectl はコマンドの実行時にデフォルトのプロファイルを使用します。 詳細については、「 ホスト上で複数の Edge Server インスタンスの実行 」を参照してください。 |
--registration-token | 文字列 | Edge Server インスタンスの 1 回限りの使用登録トークン。 このトークンで フラグを渡すと、Edge Server インスタンスに API キーの更新を求めることができます。 |
--update-registration-token | ブール値 | 新しい 1 回限り使用登録トークンを対話的にリクエストするには、 edgectl をプロンプトします。 新しいトークンを提供すると、Edge Server インスタンスはその API キーを更新します。 |
Edge Server バージョンのアップグレード
Edge Server が進化するにつれて、新しい機能を活用するために、Edge Server のバージョンをアップグレードすることが必要になる場合があります。 さらに、Edge Server インスタンスは、使用可能な最新バージョンより 1 段階のメジャー バージョン以下でなければなりません。そうしないと、 FAILED
状態になり、Atlas に接続できなくなります。
重要
必要なネットワーク アクセス
Edge Server バージョンをアップグレードするには、 edgectl
にネットワーク アクセス権が必要です。 edgectl
がオンラインでない場合、Edge Server バージョンをアップグレードすることはできません。
アップグレードコマンドの実行
edgectl
を使用して Edge Server バージョンをアップグレードできます。
edgectl update
ハードウェアとネットワーク接続によっては、アップグレード プロセスに 秒から 分かかる場合があります。
オプションで、特定のバージョンにアップグレードするための引数を指定できます。
フィールド名 | タイプ | 値 |
---|---|---|
--config-path | 文字列 | 構成ファイルを保存するディスク上のロケーション。 デフォルトは ~/.mongodb-edge/ です。 |
--minor | ブール値 | 現在のメジャー バージョンの最新のマイナー バージョンにアップグレードします。 デフォルトは true です。 |
--major | ブール値 | 次のメジャー バージョンにアップグレードします。 デフォルトは false です。 |
--to | 文字列 | 正確なバージョンにアップグレード(またはダウングレード)します。 デフォルトは "" です。 |
Edge Server API キーのサイクル数
Edge Server API キーを繰り返し使用する方法は、次のとおりです。
Atlas での新しいトークンの生成
Edge Server インスタンスの詳細から新しい Edge Server トークンを生成できます。 Regenerate Tokenボタンを使用して新しいトークンを取得し、それをコピーします。 このトークンは再度表示されることはありません。コピーしない場合は、新しいトークンを生成する必要があります。
新しい Edge Server トークンの入力
Edge Server インスタンスから新しいトークンの入力を求められるようにするには、 edgectl
を使用します。
edgectl config --update-registration-token=true
これにより、 edgectl
がトリガーされ、トークンの入力を求めるようになります。 これを指定すると、Edge Server インスタンスはこのトークンを シークレット と交換します。 データを同期するときに Atlas で認証するためにシークレットを使用します。
重要
必要なネットワーク アクセス
トークンを API キーに交換するには、 edgectl
にネットワーク アクセスが必要です。 edgectl
がオンラインでない場合、API キーをサイクル化することはできません。
Edge Server のクエリを指定する
クエリを指定しない場合、Edge Server インスタンスはデフォルトで"*"
のグローバル クエリになります。これにより、リンクされたデータソース内のすべてのコレクション内のすべてのデータが自動的に同期されます。
Edge Server インスタンス同期クエリを指定するには、 edgectl config
コマンドでいくつかの引数を使用できます。
単純な string クエリを渡します。
edgectl config --query="Store: store_id == 42" 複数のクエリ フラグを渡して、複数のコレクションのクエリを指定します。
edgectl config --query="Person: age > 10" --query "Pet: type = 'cat'" より複雑なクエリをマッピングする JSON オブジェクトを含むファイルへのパスを渡します。
edgectl config --query-file="/Users/my.user/edge-server/query.json" すべてのコレクションで同じクエリを使用するには、グローバル クエリを渡します。
edgectl config --global-query="shouldSync == true"
グローバル クエリを使用していない限り、Edge Server クエリはYOUR-SCHEMA-TITLE: YOUR-QUERY
の形式をとります。
YOUR-SCHEMA-TITLE
:スキーマのtitle
フィールド。このフィールドは通常、データベース内のコレクションの名前と一致します。 異なるデータベースに同じ名前を持つ 2 つのコレクションがある場合は、コレクション名の前にデータベース名が付けられます。たとえば、databaseName_collectionName
。リンクされた Atlas データソースには、それぞれ一致するスキーマを持つ多くのコレクションが含まれる場合があります。 デフォルトの Edge Server クエリ
"*"
またはすべてを同期するグローバル クエリを使用しない場合は、同期する各スキーマに独自のクエリが必要です。テンプレート アプリを使用している場合、これは
Item
コレクションです。YOUR-QUERY
: Edge Server がコレクションと同期できるドキュメントを決定するクエリ。 RQLを使用してこのクエリを定義できますが、 Flexible Sync RQLの制限 に関する同じ警告メッセージが表示されます。
注意
クエリ可能なフィールド
Edge Server は Device Sync を使用して Atlas とデータを同期するため、Edge Server インスタンスで使用するクエリにはクエリ可能なフィールドを使用する必要があります。 Edge Server Service を使用する場合、Edge Server インスタンス クエリで使用するフィールドがクエリ可能なフィールドに自動的に追加されます。 Edge Server で Device Sync Service を使用する場合、 開発モード が有効になっている場合にのみクエリ可能なフィールドが追加されます。
詳細については、「クエリ可能なフィールド 」を参照してください。
Edge Server クエリの例
すべてのドキュメントの同期
Edge Server インスタンスと Atlas 間ですべてのドキュメントを同期できます。 これにはtruepredicate
または"*"
クエリが使用されます。 これはグローバル クエリであるため、 edgectl --global-query
引数を使用して string として渡すことができます。
Edge Server インスタンスを構成するときにクエリを指定しない場合、これがデフォルトのクエリになります。
edgectl config --global-query="truepredicate"
すべてのコレクションからのドキュメント サブセットの同期
Edge Server インスタンスとドキュメントのサブセットのみを同期したい場合があります。 たとえば、特定のストアにある インスタンスの場合、そのストアに関連するドキュメントのみを同期したい場合があるかもしれません。 RQL クエリは次のようになります。
edgectl config --global-query="store_id == 42"
1 つのコレクションからのドキュメント サブセットの同期
Edge Server 互換サービスにリンクされたデータソースに複数のコレクションが含まれており、特定のコレクションのクエリを定義する場合は、コレクションのスキーマ タイトルと関連するクエリのマッピングを提供できます。
この例では、 Inventory
コレクションのクエリを設定します。このコレクションのスキーマ タイトルもInventory
です。 Edge Server インスタンスは、 store_id
が42
(Edge Server インスタンスが配置されている店舗番号)と一致するそのコレクションのドキュメントのみを同期します。
edgectl config --query="Inventory: store_id == 42"
リンクされたデータソースにはCustomers
コレクションも含まれています。 ただし、そのコレクションには Edge Server インスタンスからのクエリがないため、コレクション内のどのドキュメントも Edge Server インスタンスに同期されません。ただし、Edge Server クエリの42
と一致する値を持つstore_id
フィールドが含まれている場合でも、 。
複数のコレクションに異なるクエリを指定
より複雑なクエリで、複数のコレクションに対して異なるクエリを渡す場合は、次の 2 つのオプションがあります。
コレクションごとに 1 つずつ、複数の
--query
フラグを渡しますクエリを JSON として定義するファイルへのパスを渡します
これらの例では、 Project
、 Item
、 Team
の 3 つのコレクションがあり、コレクション名はスキーマ タイトルと一致します。 これらのクエリは、 Item
とProject
の 2 つのコレクションとデータを同期します。 Project
コレクションには、 Item
コレクションとの 対多の関係を表す リスト プロパティがあります。 Team
コレクションを Edge Server インスタンスに同期 したくない です。 クエリからこのスキーマ タイトルを省略すると、そのデータは インスタンスに同期されません。
これらのクエリでは、施設42のProject
ドキュメントのみが同期されます。 さらに、 priority
フィールドの値が3
以上であるItem
のドキュメントのみを同期します。 この方法では、クエリを組み合わせて、特定の Edge Server インスタンスに関連するドキュメントのみを同期できます。
複数のクエリ フラグを渡す
edgectl config
と複数のクエリフラグを渡して、複数のコレクションのクエリを提供できます。
edgectl config --query="Project: facility_id == 42" --query "Item: priority >= 3"
クエリを JSON ファイルとして渡す
多数のさまざまなクエリを定義する JSON ファイルへのパスを渡すことができます。 例:
edgectl config --query-file="/Users/my.user/edge-server/query.json"
JSON ファイルには次のものが含まれています。
{ "Project": "facility_id == 42", "Item": "priority >= 3" }
オフライン接続のシミュレート
Edge Server は、Atlas との接続を失った Edge Server インスタンスをシミュレートするために使用できるデモ モードを提供します。 Edge Server インスタンスがオフラインのデモ モードの間も、MongoDB ドライバーやツール、または Atlas Device SDK アプリケーションを使用して、 インスタンスで CRUD 操作を引き続き実行できます。
Edge Server インスタンスに接続されたクライアントを使用してローカルにデータの変更を確認できますが、Atlas に反映された変更は確認できません。 同様に、Edge Server インスタンスがオフラインになっているときに Atlas で行った変更は Edge Server に同期されず、ローカル クライアントに反映されます。
Edge Server インスタンスのオフライン デモ モードを終了すると、Atlas との同期が自動的に再開されます。 Edge Server インスタンスのデータが Atlas に反映され、Atlas で変更されたデータはインスタンスと接続されたクライアントに表示されます。
オフラインデモモードを設定する
オフライン デモ機能を設定するには、次のedgectl
フラグをinit
コマンドまたはconfig
コマンドで使用します。
edgectl config --insecure-enable-offline-demo
このフラグをedgectl config
コマンドで発行する場合、変更を有効にするには Edge Server インスタンスを再起動する必要があります。
オフライン デモ モードの有効化
オフライン接続をシミュレートする前に、Edge Server インスタンスが Atlas に正常に接続されている必要があります。 Atlas との最初の同期を実行したことがない Edge Server インスタンスでは、この機能は使用できません。
オフライン デモモードを設定し、Atlas に正常に接続したら、次のedgectl
コマンドを実行してオフライン接続をシミュレートします。
edgectl offline-demo disable-connection
インターネット接続が正常に無効化されたことを示すメッセージが表示されます。 Edge Server インスタンスのステータスを確認すると、 cloud_connected
ブール値はtrue
からfalse
に変わります。
Edge Server インスタンスを使用してローカルに CRUD 操作を実行できるようになりましたが、Atlas に反映された変更は表示されません。
オフライン デモ モードを無効化する
ネットワークへの再接続をシミュレートするには、次のedgectl
コマンドを実行します。
edgectl offline-demo enable-connection
インターネット接続が正常に有効になったことを示すメッセージが表示されます。 Edge Server インスタンスのステータスを確認すると、 cloud_connected
ブール値はfalse
からtrue
に変わります。
同期される変更が同期されるまで少し待機すると、Atlas に反映されたローカル変更と、Edge Server インスタンスに反映された Atlas の変更が表示されます。
ホスト上で複数の Edge Server インスタンスの実行
Edge Server アーキテクチャの開発中に、単一のホスト(たとえば、ローカルマシン)で複数の Edge Server インスタンスを実行する場合があります。 edgectl
プロファイル機能を使用して、これを実現できます。
Edge Server インスタンスを作成すると、 edgectl
によってデフォルトのプロファイルが自動的に作成されます。 プロファイルは、コマンドを特定の Edge Server インスタンスにマッピングします。
同じマシンに新しい Edge Server インスタンスを作成すると、 edgectl
は新しいプロファイルをデフォルト プロファイルとして設定します。 デフォルト以外のプロファイルを使用するコマンドを発行するには、各コマンドに--profile
フラグを追加します。
edgectl start --profile=YOUR-PROFILE-NAME
プロファイルとそれに関連する構成ファイルは、次の場所で表示できます。
~/.mongodb-edge/profiles/
プロファイルに名前を付ける
edgectl init
コマンドを発行すると、 --profile
フラグを使用してプロファイルに名前を付けることができます。
edgectl init --app-id="YOUR-APP-ID" --platform=compose --profile=YOUR-PROFILE-NAME
プロファイルの一覧表示
次のedgectl
コマンドを使用して、すべてのプロファイルを一覧表示して、どのプロファイルが現在デフォルトに設定されているかを確認できます。
edgectl profile list
プロファイル詳細の取得
次のedgectl
コマンドを使用して、プロファイルの詳細を取得できます。
edgectl profile inspect YOUR-PROFILE-NAME
これにより、プロファイルに関連付けられたアプリ ID とプラットフォームに関する情報が提供されます。
{ "appId" : "YOUR-APP-ID", "platform" : "compose" }
デフォルトのプロファイルを設定する
新しいプロファイルを作成すると、それがデフォルトのプロファイルになります。 次のedgectl
コマンドを使用して、別のデフォルト プロファイルを設定できます。
edgectl profile set-default YOUR-PROFILE-NAME
すべてのプロファイルを再度一覧表示すると、新しいデフォルトが表示されます。
プロファイルの削除
次のedgectl
コマンドを使用してプロファイルを削除できます。
edgectl profile delete YOUR-PROFILE-NAME
デフォルト プロファイルを削除する場合は、新しいデフォルト プロファイルを設定するか、発行するすべてのコマンドで--profile
フラグを渡す必要があります。