Docs Menu
Docs Home
/ /
Atlas App Services
/

Edge Server の構成 - プレビュー

項目一覧

  • 前提条件
  • Edge Server ホストの要件
  • Edge Server インスタンスのインストールと構成
  • Edge Server の起動と停止
  • Edge Server ステータスの確認
  • Edge Server インスタンス構成を更新する
  • Edge Server バージョンのアップグレード
  • Edge Server API キーのサイクル数
  • Edge Server のクエリを指定する
  • オフライン接続のシミュレート
  • ホスト上で複数の Edge Server インスタンスの実行

Atlas で Edge Server インスタンスを作成したら、Edge Server インスタンスを実行するハードウェアを構成する必要があります。 ほとんどのユースケースでは、Edge Server インスタンスをホストするためにオンプレミスでハードウェアをプロビジョニングします。 Edge Server アプリケーションを開発している間に、便宜上クラウドサーバーでホストできます。

オンプレミスのクライアント デバイスは Edge Server インスタンスに接続します。 インスタンスは、作成方法に応じて Edge Server Service または Device Sync Service に接続します。 クライアントは MongoDB Atlas に直接接続しません。

Atlas に接続されている Edge Server に接続されているデバイスを示すアーキテクチャ図

このページでは、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 ベンチマークが完了した後に、これらの要件が変更される可能性があります。

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 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 時間を引き続き使用します。

1

Edge Server は、 edgectlというコマンドライン ツールを使用して、ホスト ハードウェア上の Edge Server インスタンスを管理します。 これには、インストールを管理し、必要な依存関係をインストールするためのインストール スクリプトが含まれています。

次のコマンドを使用して、Edge Server インスタンスを実行するデバイスにコマンドライン ツールと Edge Server コードをインストールします。

curl -s https://services.cloud.mongodb.com/edge/install.sh | bash

プロンプトに従って、Edge Server のコードをダウンロードしてインストールします。

2

Edge Server インスタンスを設定するには、 edgectlを使用します。

edgectl init --app-id="<INSERT-YOUR-APP-ID-HERE>" --platform=compose

最小限必要なパラメータはapp-idplatformです。

  • --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は初期設定中にトークンの対話型プロンプトを表示します。
3

Edge Server インスタンスを初めて構成するときは、Edge Server トークンを提供するように求められます。 これは、 インスタンスを サービスに追加したときに取得したトークンです。

トークンが存在しない場合は、サービスのEdge Server インスタンスの詳細から新しいトークンを生成できます。

Edge Server インスタンスは、このトークンをシークレットと交換します。 データを同期するときに Atlas で認証するためにシークレットを使用します。

4

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 インスタンスを起動および停止するには、 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 インスタンスが実行されている場合は、次の方法でインスタンスのステータスが表示されます。

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 インスタンスの現在のステータス。 指定できる値は、 "ACTIVE""FAILED""BOOTSTRAPPING"です。

"ACTIVE": インスタンスが実行中、接続をリッスンし、同期しようとしているとき

"FAILED": インスタンスで介入が必要なエラー状態が発生しました。 詳細については、 「 Edge Server インスタンスのトラブルシューティング 」を参照してください。

"BOOTSTRAPPING": インスタンスはデータセット内の関連ドキュメントの初期ダウンロードを実行中であり、まだ使用する準備ができていません。

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 のクエリを指定する 」を参照してください。

edgectlを使用して、既存の Edge Server インスタンスに変更を加えることができます。 構成を変更した後、インスタンスを再起動して更新を適用します。

1

適切なフラグを指定して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 キーを更新します。
2

構成を更新してから、 インスタンスを停止します。

edgectl stop

そして、再度起動して更新を適用します。

edgectl start

Edge Server が進化するにつれて、新しい機能を活用するために、Edge Server のバージョンをアップグレードすることが必要になる場合があります。 さらに、Edge Server インスタンスは、使用可能な最新バージョンより 1 段階のメジャー バージョン以下でなければなりません。そうしないと、 FAILED状態になり、Atlas に接続できなくなります。

重要

必要なネットワーク アクセス

Edge Server バージョンをアップグレードするには、 edgectlにネットワーク アクセス権が必要です。 edgectlがオンラインでない場合、Edge Server バージョンをアップグレードすることはできません。

1

edgectlを使用して Edge Server バージョンをアップグレードできます。

edgectl update

ハードウェアとネットワーク接続によっては、アップグレード プロセスに 秒から 分かかる場合があります。

オプションで、特定のバージョンにアップグレードするための引数を指定できます。

フィールド名
タイプ
--config-path
文字列
構成ファイルを保存するディスク上のロケーション。 デフォルトは~/.mongodb-edge/です。
--minor
ブール値
現在のメジャー バージョンの最新のマイナー バージョンにアップグレードします。 デフォルトはtrueです。
--major
ブール値
次のメジャー バージョンにアップグレードします。 デフォルトはfalseです。
--to
文字列
正確なバージョンにアップグレード(またはダウングレード)します。 デフォルトは""です。
2

アップグレード後に、 edgectlによって構成を更新するよう求められます。

edgectl config
3

アップグレード後に、Edge Server を実行して更新を配置します。

edgectl start
4

Edge Server をアップグレードした後に予期しない動作が発生した場合は、リセットして再度起動することをお勧めします。 次のコマンドを実行します:

edgectl clean

次に、Edge Server を再度実行します。

edgectl start
5

アップグレード後、不要なファイルを削除できます。

edgectl prune

Edge Server API キーを繰り返し使用する方法は、次のとおりです。

1

Edge Server インスタンスの詳細から新しい Edge Server トークンを生成できます。 Regenerate Tokenボタンを使用して新しいトークンを取得し、それをコピーします。 このトークンは再度表示されることはありません。コピーしない場合は、新しいトークンを生成する必要があります。

2

Edge Server インスタンスから新しいトークンの入力を求められるようにするには、 edgectlを使用します。

edgectl config --update-registration-token=true

これにより、 edgectlがトリガーされ、トークンの入力を求めるようになります。 これを指定すると、Edge Server インスタンスはこのトークンを シークレット と交換します。 データを同期するときに Atlas で認証するためにシークレットを使用します。

重要

必要なネットワーク アクセス

トークンを API キーに交換するには、 edgectlにネットワーク アクセスが必要です。 edgectlがオンラインでない場合、API キーをサイクル化することはできません。

クエリを指定しない場合、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 インスタンスと Atlas 間ですべてのドキュメントを同期できます。 これにはtruepredicateまたは"*"クエリが使用されます。 これはグローバル クエリであるため、 edgectl --global-query引数を使用して string として渡すことができます。

Edge Server インスタンスを構成するときにクエリを指定しない場合、これがデフォルトのクエリになります。

edgectl config --global-query="truepredicate"

Edge Server インスタンスとドキュメントのサブセットのみを同期したい場合があります。 たとえば、特定のストアにある インスタンスの場合、そのストアに関連するドキュメントのみを同期したい場合があるかもしれません。 RQL クエリは次のようになります。

edgectl config --global-query="store_id == 42"

Edge Server 互換サービスにリンクされたデータソースに複数のコレクションが含まれており、特定のコレクションのクエリを定義する場合は、コレクションのスキーマ タイトルと関連するクエリのマッピングを提供できます。

この例では、 Inventoryコレクションのクエリを設定します。このコレクションのスキーマ タイトルもInventoryです。 Edge Server インスタンスは、 store_id42 (Edge Server インスタンスが配置されている店舗番号)と一致するそのコレクションのドキュメントのみを同期します。

edgectl config --query="Inventory: store_id == 42"

リンクされたデータソースにはCustomersコレクションも含まれています。 ただし、そのコレクションには Edge Server インスタンスからのクエリがないため、コレクション内のどのドキュメントも Edge Server インスタンスに同期されません。ただし、Edge Server クエリの42と一致する値を持つstore_idフィールドが含まれている場合でも、 。

より複雑なクエリで、複数のコレクションに対して異なるクエリを渡す場合は、次の 2 つのオプションがあります。

  • コレクションごとに 1 つずつ、複数の--queryフラグを渡します

  • クエリを JSON として定義するファイルへのパスを渡します

これらの例では、 ProjectItemTeamの 3 つのコレクションがあり、コレクション名はスキーマ タイトルと一致します。 これらのクエリは、 ItemProjectの 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 ファイルへのパスを渡すことができます。 例:

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 インスタンスを実行する場合があります。 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フラグを渡す必要があります。

戻る

Edge Server の管理