Docs Menu
Docs Home
/ /
Atlas App Services
/

Edge Server への接続 - プレビュー

項目一覧

  • Atlas Device SDK から Edge Server への接続
  • サポートされている認証プロバイダ
  • Edge Server 間のローリング
  • 例: SwiftUI テンプレート アプリ
  • MongoDB ドライバーとツールを使用した Edge Server への接続
  • 匿名接続
  • サポートされている MongoDB API
  • MongoDB Compass との接続

Edge Server インスタンスが構成され、 を実行中の場合は、クライアント アプリケーションからそのインスタンスに接続できるようになります。

クライアントから Edge Server インスタンスに接続するには、次の 3 つの方法があります。

  • Atlas Device SDK: Device Sync は、デバイス間と Edge Server とのデータを自動的に同期します。

  • MongoDB ドライバーとツール: サポートされている MongoDB API のサブセットを使用して CRUD 操作を実行します。

  • MongoDB Compass: Edge Server インスタンスに同期されているドキュメントを調査し、それらのドキュメントを更新します。

Atlas Device SDK クライアントから Edge Server インスタンスに接続するには、アプリで次の操作を行う必要があります。

  • アプリ構成の同期 URL を、Edge Server edge_config.json baseURLフィールドに設定したパブリックにアクセス可能な DNS アドレスに設定します。

  • TLS が有効になっていない場合は、ポート 80 経由の HTTP を使用します。

Tip

Edge Server 配置の開発中は、簡素化するためにポート 80 経由で HTTP で接続することをお勧めします。 本番環境に移行する前に、製品またはアカウント担当者と調整して、自己署名証明書を使用して HTTPS を構成できます。

アプリ構成をカスタマイズする方法の詳細については、ご希望の SDK のドキュメントを参照してください。

Edge Server は、SDK で接続する場合に認証プロバイダの次のサブセットをサポートしています。

SDK クライアントは、Edge Server インスタンス間、または Edge Server インスタンスと Atlas 間でローテーションできます。

ローリングには、クライアントのアプリ構成内のベース URL を変更する必要があります。 詳細については、上記にリンクした SDK ドキュメントを参照してください。

SDK ユーザーがローテーションする場合、クライアントアプリは新しいサーバーに接続するときにクライアントリセットを実行する必要があります。 クライアント リセットの詳細については、「 クライアントのリセット 」を参照してください

Edge Server インスタンスまたは Edge Server インスタンスと Atlas の間でローテーションする場合、匿名ユーザーはサーバー間で永続することはありません。 Atlas は、クライアントが接続するサーバーごとに新しい匿名ユーザーを作成し、サーバー間でローカル データを保持しません。

サポートされている他のすべての認証プロバイダーでは、ユーザーは永続的であり、サーバー全体で期待されるデータにアクセスします。

テンプレート アプリを使用して概念を簡単に証明するために、 Swift テンプレート アプリ に加えることができる変更を示します。 次のように、Edge Server インスタンスに接続します。

1

Swift テンプレート アプリのatlasConfigで、値を次のように設定します。

キー
baseUrl
Edge Server インスタンス ホストのパブリックにアクセス可能な DNS。 これはhttp:// 、または TLS が有効になっている場合はhttps://で、その後に Edge Server コンテナ構成で公開される IP アドレスが続きます。
appId
Edge Server が有効になっている App Services App のアプリケーション ID。 アプリ ID の検索の詳細については、「 アプリ ID の検索 」を参照してください。
2

アプリで TLS を使用する場合は、この手順を無視できます。 開発時に TLS が有効になっていない状態で Edge Server アプリを開発する場合は、この手順を完了する必要があります。

iOS の場合、Apple はデフォルトで安全でない接続を無効にします。 クライアントアプリが DNS に接続できるようにするには、パブリックにアクセス可能な DNS の例外を追加する必要があります。

アプリのターゲットを選択し、[]Go Signing & Capabilitiesタブに します。+ Capabilityボタンを押して、 App Transport Security Settingsを検索します。 これをアプリに追加します。

パブリックにアクセス可能な DNS の例外ドメインを追加します。 これは、 ec2-13-58-70-88.us-east-2.compute.amazonaws.comのように string ドメインのみにする必要があります。

これにより、プロジェクトにInfo.plistファイルが作成されます。 このファイルにGoして、次の調整を行います。

このStringキーをDictionaryに変更します。 次のキーをさらに 2 つ追加します。

キー
タイプ
NSIncludesSubdomains
ブール値
YES
NSExceptionAllowsInsecureHTTPLoads
ブール値
YES

これにより、iOS クライアントは安全でない HTTP DNS に接続できるようになります。

Info.plistファイルは次のようになります。

上記の設定を示す Index.plist ファイルのスクリーンショット
3

Edge Server との通信ステータスに関する追加の詳細を取得する場合は、ログ レベルを調整できます。

Appファイルでは、ログレベルを設定するために.onAppearブロックを追加できます。 追加情報を取得するには、このブロックにログ レベルの行を追加します。

var body: some Scene {
WindowGroup {
ContentView(app: app)
.environmentObject(errorHandler)
.alert(Text("Error"), isPresented: .constant(errorHandler.error != nil)) {
Button("OK", role: .cancel) { errorHandler.error = nil }
} message: {
Text(errorHandler.error?.localizedDescription ?? "")
}
.onAppear {
Logger.shared.level = .trace
}
}
}

ログ レベルの設定の詳細については、「 ログ記録- Swift SDK 」を参照してください。

4

これで、アプリをビルドして実行できるようになりました。 ログインすると、アプリは Edge Server インスタンスに接続されます。 新しいアイテムを作成すると、それらは インスタンスと同期されます。 その後、インスタンスは Atlas App Services App と同期します。

ホストから Edge Server インスタンスのステータスを確認できます。 実行中のクライアントでは、インスタンスのステータスに"num_local_clients": 1が表示されます。 同期ステータスに反映されるエラー メッセージも確認できます。

Edge Server インスタンスが App Services App と次回同期すると、同期された変更がリンクされた Atlas コレクションに反映されるのが確認できます。

重要

以前に Device Sync を使用してクライアントから App Services App に直接接続したことがある場合は、シミュレーターまたはデバイスの状態をクリアする必要がある場合があります。 キャッシュをリセットすると、クライアントは Edge Server インスタンスに接続できるようになります。

コンソール アプリで、 mongodb-realmディレクトリを削除します。 iOS または Android シミュレーターまたはデバイスを使用している場合は、アプリをアンインストールして再インストールしてください。

標準の MongoDB ドライバーとツールを使用して Edge Server に接続できます。 クライアントは専用のMongoDB URI 接続文字列を使用してEdge Serverに接続し、リクエストを送信します。

ワイヤプロトコル サーバーはこれらの着信接続を受け入れます。 MongoDB URI を使用してホスト マシンに接続できます。

この URI は、認証タイプによって異なる場合があります。 Broadly, it resembles this form:

mongodb://<username>:<password>@<hostname>:<port>?authMechanism=PLAIN
要素
説明
<username>
Atlas userのユーザー名。 メール/パスワード ユーザーの場合、これはfirst.last@example.comのようになります。 このユーザー名に@記号が含まれている場合は、 @記号をエスケープする必要があります。 たとえば、 john.doe@example.comjohn.doe%40example.comになります。
<password>
Atlas userのパスワード。 これはmyPassword123456に似ている場合があります。
<hostname>
Edge Server ホストのパブリック DNS。 ローカル開発では、これはlocalhostになる場合があります。 それ以外の場合は、 ec2-13-58-70-88.us-east-2.compute.amazonaws.comのようになります。 詳細については、「 Edge Server インスタンスのインストールと構成 」を参照してください。
<port>
Edge Server ワイヤプロトコル listen ポート。 デフォルトのポートは27021です。 詳細については、 「 Edge Server インスタンスのインストールと構成 」を参照してください。
authMechanism=PLAIN
認証メカニズム。 現在、サポートされている値はPLAINのみです。

Amazon EC 2でホストされている Edge Server インスタンスのワイヤプロトコル接続 URI は、次のようになります。

mongodb://example-user:my-password@ec2-13-58-70-88.us-east-2.compute.amazonaws.com:27021?authMechanism=PLAIN

匿名接続を有効にし、ユーザー名やパスワードを指定せずに接続できます。 このオプションはデフォルトで無効になっています。

重要

本番環境での匿名接続の無効化

匿名接続を有効にすると、認証フローをバイパスし、開発を効率化できます。 これは開発支援のみを目的としたものです。は、実稼働環境では認証フローをバイパスしないでください。

1

匿名接続を有効にするには、 --insecure-disable-authフラグをtrueに設定して Edge Server を起動します。 そのため、ユーザー名とパスワードを指定せずに接続できるようになります。

この設定のデフォルトはfalseです。 これをtrueに設定すると、接続は認証をバイパスできます。

edgectlを使用して Edge Server インスタンスを構成して起動する方法の詳細については、「 Edge Server インスタンスのインストールと構成 」を参照してください。

2

認証なしで接続する場合、MongoDB URI は認証関連のパラメーターを省略します。 この簡略化された URI は次のとおりです。

mongodb://<hostname>:<port>

Amazon EC 2でホストされている Edge Server インスタンスの匿名のワイヤプロトコル接続 URI は、次のようになります。

mongodb://ec2-13-58-70-88.us-east-2.compute.amazonaws.com:27021

開発中のマシン上で実行されている Edge Server インスタンスへの匿名接続は、次のようになります。

mongodb://localhost:27021

Edge Server は現在、MongoDB API のサブセットをサポートしています。 サポートされている API の詳細については、「 Edge Server MongoDB API サポート - プレビュー 」を参照してください。

MongoDB Compassを通じて MongoDB URI を使用して Edge Server インスタンスに接続できます。 Compass を使用すると、Edge Server インスタンスに同期されているドキュメントを調査し、それらのドキュメントを更新できます。

Compass の Edge Server サポートは制限されています。 これを使用して、次のことができます。

  • Edge Server インスタンスでデータベース、コレクション、ドキュメントを参照します。

  • Edge Server インスタンス内のドキュメントに対して基本的な CRUD 操作を実行します。

Edge Server は現時点では、Compass での集計をサポートしていません。

戻る

Edge Server の構成