Edge Server への接続 - プレビュー
項目一覧
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 への接続
Atlas Device SDK クライアントから Edge Server インスタンスに接続するには、アプリで次の操作を行う必要があります。
アプリ構成の同期 URL を、Edge Server
edge_config.json
baseURL
フィールドに設定したパブリックにアクセス可能な DNS アドレスに設定します。TLS が有効になっていない場合は、ポート 80 経由の HTTP を使用します。
Tip
Edge Server 配置の開発中は、簡素化するためにポート 80 経由で HTTP で接続することをお勧めします。 本番環境に移行する前に、製品またはアカウント担当者と調整して、自己署名証明書を使用して HTTPS を構成できます。
アプリ構成をカスタマイズする方法の詳細については、ご希望の SDK のドキュメントを参照してください。
C++ SDK: App Services に接続 - C++ SDK
Flutter SDK: App Services への接続 - Flutter SDK
Kotlin SDK: Atlas App Services への接続 - Kotlin SDK
.NET SDK: Atlas App Services バックエンドへの接続 - .NET SDK
Node.js SDK: Atlas App Services バックエンドへの接続 - Node.js SDK
React Native SDK: Atlas App Services アプリへの接続 - React Native SDK
Swift SDK: Atlas App Services バックエンドへの接続 - Swift SDK
サポートされている認証プロバイダ
Edge Server は、SDK で接続する場合に認証プロバイダの次のサブセットをサポートしています。
Edge Server 間のローリング
SDK クライアントは、Edge Server インスタンス間、または Edge Server インスタンスと Atlas 間でローテーションできます。
ローリングには、クライアントのアプリ構成内のベース URL を変更する必要があります。 詳細については、上記にリンクした SDK ドキュメントを参照してください。
SDK ユーザーがローテーションする場合、クライアントアプリは新しいサーバーに接続するときにクライアントリセットを実行する必要があります。 クライアント リセットの詳細については、「 クライアントのリセット 」を参照してください。
ローリングユーザーと匿名認証
Edge Server インスタンスまたは Edge Server インスタンスと Atlas の間でローテーションする場合、匿名ユーザーはサーバー間で永続することはありません。 Atlas は、クライアントが接続するサーバーごとに新しい匿名ユーザーを作成し、サーバー間でローカル データを保持しません。
サポートされている他のすべての認証プロバイダーでは、ユーザーは永続的であり、サーバー全体で期待されるデータにアクセスします。
例: SwiftUI テンプレート アプリ
テンプレート アプリを使用して概念を簡単に証明するために、 Swift テンプレート アプリ に加えることができる変更を示します。 次のように、Edge Server インスタンスに接続します。
サーバー接続の構成
Swift テンプレート アプリのatlasConfig
で、値を次のように設定します。
キー | 値 |
---|---|
baseUrl | Edge Server インスタンス ホストのパブリックにアクセス可能な DNS。 これは http:// 、または TLS が有効になっている場合はhttps:// で、その後に Edge Server コンテナ構成で公開される IP アドレスが続きます。 |
appId | Edge Server が有効になっている App Services App のアプリケーション ID。 アプリ ID の検索の詳細については、「 アプリ ID の検索 」を参照してください。 |
アプリトランスポートのセキュリティ設定の調整(任意)
アプリで 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
ファイルは次のようになります。
ログレベルの調整(任意)
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 」を参照してください。
アプリを実行する
これで、アプリをビルドして実行できるようになりました。 ログインすると、アプリは 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 ドライバーとツールを使用して 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.com はjohn.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
匿名接続
匿名接続を有効にし、ユーザー名やパスワードを指定せずに接続できます。 このオプションはデフォルトで無効になっています。
重要
本番環境での匿名接続の無効化
匿名接続を有効にすると、認証フローをバイパスし、開発を効率化できます。 これは開発支援のみを目的としたものです。は、実稼働環境では認証フローをバイパスしないでください。
関連するフラグを使用した Edge Server の構成
匿名接続を有効にするには、 --insecure-disable-auth
フラグをtrue
に設定して Edge Server を起動します。 そのため、ユーザー名とパスワードを指定せずに接続できるようになります。
この設定のデフォルトはfalse
です。 これをtrue
に設定すると、接続は認証をバイパスできます。
edgectl
を使用して Edge Server インスタンスを構成して起動する方法の詳細については、「 Edge Server インスタンスのインストールと構成 」を参照してください。
MongoDB URI から認証の詳細を省略する
認証なしで接続する場合、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
サポートされている MongoDB API
Edge Server は現在、MongoDB API のサブセットをサポートしています。 サポートされている API の詳細については、「 Edge Server MongoDB API サポート - プレビュー 」を参照してください。
MongoDB Compass との接続
MongoDB Compassを通じて MongoDB URI を使用して Edge Server インスタンスに接続できます。 Compass を使用すると、Edge Server インスタンスに同期されているドキュメントを調査し、それらのドキュメントを更新できます。
制限
Compass の Edge Server サポートは制限されています。 これを使用して、次のことができます。
Edge Server インスタンスでデータベース、コレクション、ドキュメントを参照します。
Edge Server インスタンス内のドキュメントに対して基本的な CRUD 操作を実行します。
Edge Server は現時点では、Compass での集計をサポートしていません。