Atlas での Edge Server の管理 - プレビュー
項目一覧
Edge Server 互換サービスは、Edge Server インスタンスを作成、削除、または監視するための Atlas の宛先です。
Edge Server を使用できるようにするサービスは 2 種類あります。
Edge Server Service : クライアントを MongoDB ドライバーとツールを使用して Edge Server インスタンスに接続する場合は、このオプションを使用します。 挿入したドキュメントからスキーマを推論して更新し、MongoDB 開発者に慣れる このサービスは Atlas Device SDK と互換性がありません。受信 Atlas Device SDK 接続を拒否します。
Device Sync サービス(Edge Server と) : Atlas Device SDK と MongoDB ドライバーとツールを使用してクライアント アプリを開発する場合は、このオプションを使用します。 このオプションには、より厳密なスキーマ適用が含まれます。これを SDK は、デバイス間でオブジェクトを自動的に同期し、競合の解決を処理するために使用します。
選択したサービスのタイプに関係なく、Edge Server は Device Sync を使用して、Edge Server インスタンスと Atlas 間でデータを同期します。
重要
Edge Server サービスに後から Atlas Device SDK を追加することはできません
Edge Server は Device Sync サービスにいつでも追加できます。 ただし、Edge Server Service で Atlas Device SDK 接続を使用することはできません。
サービス間でユーザーは移植されません。 Edge Server Service で開始したが、後で Atlas Device SDK を使用してアプリを開発したい場合、Edge Service 内のすべてのユーザーを新しい Device Sync Service に転送する方法はありません。
始める前に
Atlas UI で Edge Server を管理するには、次のものが必要です。
プロジェクト所有者の権限を持つ MongoDB Atlas アカウント。 無料アカウントの登録方法については、「 Atlasを使い始める 」を参照してください。
Admin API を使用して Edge Server を管理するには、次のものが必要です。
プロジェクト所有者の権限を持つ MongoDB Atlas アカウント。 無料アカウントのサインアップ方法については、「 Atlas の使用 」を参照してください。
MongoDB Atlas Admin APIの公開キーと秘密キーのペア。 App Services Admin API を操作するには、API キーにプロジェクト オーナーの権限が必要です。
アプリの内部 ObjectId 16x string と、アプリを含む Atlas プロジェクトのプロジェクト ID。 これらを見つける方法については、 「 アプリのメタデータを取得する 」を参照してください。
Edge Server サービスの作成
Data Services または App Services では、Edge Server 互換サービスを作成できます。
Edge Server または Device Sync と Edge Server を使用して構築を開始し、他の App Services が必要な場合は、 Data Services を選択することがあります。 Data Services から Edge Server サービスを作成できます。
認証、関数、trigger、 HTTPS endpoints 、または Values と Secret でサービスをバンドルする場合は、App Services を選択できます。 App Services から Device Sync サービスを作成し、それに Edge Server を追加できます。
サービスの作成
作成するサービスの種類を選択し、プロンプトに従って Edge Server Service または Device Sync Service を作成します。
Edge Server Service を作成したら、すぐに Edge Server インスタンスを追加できます。
Device Sync サービスを作成する場合は、左側のナビゲーションにある [ Edge Server ] をクリックします。 これにより、Edge Server インスタンスを追加および表示できるリストが開きます。
[ Add a server ] ボタンをクリックし、プロンプトに従って新しい Edge Server インスタンスに名前を付けて作成します。
Device Sync アプリの作成
App Services Appの作成 に関するドキュメントを参照してください。
アプリの種類を選択するときは、 Device Sync
を選択します。 Device Sync を構成した後に、Device Sync アプリに Edge Server を追加できます。
重要
必須 フィールド
Edge Server と同期するドキュメントには、サービスの種類に応じてタイプが異なる_id
フィールドが含まれている必要があります。
Edge Server Service: タイプ
ObjectId
Device Sync サービス: タイプ
ObjectId
、String
、Long
、Int
、UUID
このフィールドがないドキュメントは Edge Server に同期できません。
サポートされている認証プロバイダ
Edge Server は認証プロバイダのサブセットをサポートしています。 サポートされている認証プロバイダは、Atlas Device SDK で接続しているか、MongoDB URI を使用して MongoDB ドライバーまたはツールに接続しているかによって異なります。
クライアントが Edge Server インスタンスに接続できるようにするには、これらのプロバイダーの少なくとも 1 つを有効にする必要があります。
サポートされている Atlas Device SDK 認証プロバイダ
サポートされている MongoDB ドライバー認証プロバイダ
Edge Server インスタンスを作成する
Edge Server 互換サービスを作成したら、そのサービスに Edge Server を追加できます。 サービスは複数の Edge Server を処理できます。各 Edge Server には独自の登録キーがあります。
Edge Server コードのインストールと構成
インストール スクリプトをコピーして、Edge Server コードをインストールするデバイスのターミナルに貼り付けます。 詳細については、 「 Edge Server インスタンスのインストールと構成 」を参照してください。
Edge Server インスタンスを構成して起動すると、Edge Server ダッシュボード内のHealthステータスがPendingからActiveに変わります。
MongoDB Atlas ユーザーの認証
MongoDB Atlas API キー ペアを使用して、管理ユーザー認証エンドポイントを呼び出します。
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "username": "<Public API Key>", "apiKey": "<Private API Key>" }'
認証に成功すると、レスポンス本文にはaccess_token
値を持つ JSON オブジェクトが含まれます。
{ "access_token": "<access_token>", "refresh_token": "<refresh_token>", "user_id": "<user_id>", "device_id": "<device_id>" }
access_token
は App Services Admin API へのアクセスを許可します。 すべての管理 API リクエストのAuthorization
ヘッダーに Bearer トークンとして含める必要があります。
Edge Server インスタンス作成エンドポイントの呼び出し
管理 API 「Edge Server インスタンスの作成」エンドポイントを呼び出して、Edge Server インスタンスをサービスに追加します。
リクエストには、以下の内容が必要です。
Authorization
管理 API アクセス トークンが Bearer トークン として含まれる ヘッダー。新しい Edge Server インスタンスの
name
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <AccessToken>' \ -d '{ "name": "YOUR-EDGE-SERVER-INSTANCE-NAME" }'
リクエストが成功すると、 201
コードと、新しく作成された Edge Server インスタンスに関する情報を含む JSON オブジェクトが返されます。
{ "id": "6622b8f5118368b943d228a9", "user_id": "6622b8f5118368b943d2288a", "registration_key": "Qi4GgpvVduwwt4k1w77ZzaQ1n4SdTWC8rLBD9vyTib1w9G3CX2ta8WrJvt3giEK7" }
id
: Edge Server インスタンスの一意の識別子で、ObjectId 型(string)。 この識別子を使用して、Edge Server インスタンスを削除または更新できます。user_id
: Edge Server 自体はユーザーです。 これは、string としての ObjectId 型の Edge Server ユーザーの一意の識別子です。 この識別子は、権限を設定するときに使用できます。registration_key
: この情報を保存します。 ホストに Edge Server コードをインストールするときは、この登録トークンを入力します。 Edge Server は、Atlas で認証するために使用する API キーとこれを交換します。 この登録トークンは 1 回だけ使用できます。
Edge Server コードをインストール
インストール スクリプトをコピーして、Edge Server コードをインストールするデバイスのターミナルに貼り付けます。 詳細については、 「 Edge Server インスタンスのインストールと構成 」を参照してください。
Edge Server インスタンスの一覧表示
Edge Server インスタンスのリストは、Atlas UI または Admin API から取得できます。
Edge Server ダッシュボードには、最後の接続の日時やそのステータスのスナップショットなど、各 Edge Server インスタンスの簡単な概要が表示されます。 オプションで、各インスタンスの詳細またはログを表示できます。
Edge Server ダッシュボードを表示するには、左側のナビゲーション サイドバーで [ Edge Server ] を選択します。
特定の Edge Server インスタンスの詳細を表示するには、その Edge Server インスタンスの [ View Details ] をクリックします。 または、 App Logsをクリックして、インスタンスに関連するログを表示します。
MongoDB Atlas ユーザーの認証
MongoDB Atlas API キー ペアを使用して、管理ユーザー認証エンドポイントを呼び出します。
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "username": "<Public API Key>", "apiKey": "<Private API Key>" }'
認証に成功すると、レスポンス本文にはaccess_token
値を持つ JSON オブジェクトが含まれます。
{ "access_token": "<access_token>", "refresh_token": "<refresh_token>", "user_id": "<user_id>", "device_id": "<device_id>" }
access_token
は App Services Admin API へのアクセスを許可します。 すべての管理 API リクエストのAuthorization
ヘッダーに Bearer トークンとして含める必要があります。
Edge Server インスタンスの一覧を取得する
すべての Edge Server インスタンスのリストを取得するには、 Admin API List Edge Serverエンドポイントを呼び出します。
Authorization
リクエストには、管理 API アクセス トークンが Bearer トークン として返される ヘッダーが含まれている必要があります。
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <AccessToken>'
リクエストが成功すると、 200
コードと、 appId
に関連付けられた各 Edge Server インスタンスの概要の詳細を含むオブジェクトの配列であるedge_servers
キーが返されます。
{ "edge_servers": [ { "id": "6622b8f5118368b943d228a9", "created": "2024-04-19T08:51:00Z", "name": "Edge-Store-42", "user_id": "6622b8f5118368b943d2288a", "status": "active", "hostname": "ec2-13-58-70-88.us-east-2.compute.amazonaws.com", "last_connection": "2024-04-19T09:51:00Z" } ] }
詳しくは、詳細を表示するインスタンスのid
を見つけます。
Edge Server 情報エンドポイントの呼び出し
Edge Server インスタンスに関する詳細情報を取得するには、 「Admin API Get Edge Server 情報エンドポイント」を呼び出します。
Authorization
リクエストには、管理 API アクセス トークンが Bearer トークン として返される ヘッダーが含まれている必要があります。
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge/{edgeServerId} \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <AccessToken>'
リクエストが成功すると、 200
コードと、Edge Server インスタンスに関する詳細情報を含む JSON オブジェクトが返されます。
{ "id": "6622b8f5118368b943d228a9", "created": "2024-04-19T08:51:00Z", "name": "Edge-Store-42", "user_id": "6622b8f5118368b943d2288a", "status": "active", "hostname": "ec2-13-58-70-88.us-east-2.compute.amazonaws.com", "last_connection": "2024-04-19T09:51:00Z", "query": { "Item": "(store_id == \"641cb3d99e425c794ef69315\")" }, "package_version": "v0.21.2", "latest_package_version": "v0.22.2", "metrics": [ { "key": "edge_host_memory_percent", "name": "Memory Usage", "category": "host", "detail": "Percentage of memory used by the edge container", "value": 15, "unit": "%" }, ...additional Edge Server metrics... ] }
このレスポンス本体の詳細については、 API 仕様 を参照してください。
Edge Server インスタンスの詳細
Edge Server の詳細で利用できる情報は、Edge Server が構成済みで Atlas に接続されているかどうか、または構成と接続がまだ保留中かどうかによって異なります。
保留中の Edge Server インスタンス
Edge Server インスタンスがまだ Atlas に初めて接続していない場合、インスタンスのHealthステータスはPendingです。
Edge Server インスタンスがPending状態では、詳細ビューから次のアクションを実行できます。
インスタンスの名前を変更します。
インスタンスのステータスに関するアラートを確認します。
インスタンス ID を取得します。 これを使用して、この特定のインスタンスの権限を設定できます。
Edge Server コードをインストールするには、ターミナルで使用できる [ インストール ] コマンドを表示します。
登録トークンを再生成します。
Edge Server インスタンスを削除します。
Edge Server インスタンスを正常に構成して接続すると、詳細ビューが変更され、追加情報が提供されます。
アクティブまたは失敗した Edge Server インスタンス
Edge Server インスタンスを Atlas に初めて接続すると、インスタンスのHealthステータスがActiveに変わります。
Edge Server インスタンスで致命的なエラーが発生した場合、そのHealthステータスはFailedに変わります。
アクティブな インスタンスまたは失敗した インスタンスに対して次のアクションを実行できます。
インスタンスの名前を変更します。
インスタンスのステータスに関するアラートを確認します。
最後の接続の日時を表示します。
インスタンス ID を取得します。 これを使用して、この特定のインスタンスの権限を設定できます。
インスタンス クエリを表示します。 これにより、インスタンスと Atlas 間で同期されるデータと、クライアントがインスタンスに書込むデータが決まります。 クライアントは、権限とインスタンスのクエリ内にあるデータのみを書込むことができます。 詳細については、「 Edge Server のクエリを指定する 」を参照してください。
Edge Server インスタンスに関するメトリクスを表示します。 詳細については、 「 Edge Server メトリクス 」を参照してください。
インスタンス ログを表示します。 詳細については、 「 Edge Server ログ 」を参照してください。
バージョン情報を表示します。 このページには、現在のバージョンと使用可能な最新バージョンが一覧表示されています。 インスタンスが利用可能な最新バージョンより 1 つ以上遅れている場合、インスタンスはFailed状態になり、アップグレードされるまで Atlas と同期できません。 詳細については、「 Edge Server バージョンのアップグレード 」を参照してください。
Edge Server コードをインストールするには、ターミナルで使用できる [ インストール ] コマンドを表示します。
登録トークンを再生成します。
Edge Server インスタンスを削除します。
Edge Server インスタンスの削除
Atlas から個々の Edge Server インスタンスを削除できます。
MongoDB Atlas ユーザーの認証
MongoDB Atlas API キー ペアを使用して、管理ユーザー認証エンドポイントを呼び出します。
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "username": "<Public API Key>", "apiKey": "<Private API Key>" }'
認証に成功すると、レスポンス本文にはaccess_token
値を持つ JSON オブジェクトが含まれます。
{ "access_token": "<access_token>", "refresh_token": "<refresh_token>", "user_id": "<user_id>", "device_id": "<device_id>" }
access_token
は App Services Admin API へのアクセスを許可します。 すべての管理 API リクエストのAuthorization
ヘッダーに Bearer トークンとして含める必要があります。
削除する Edge Server の ID を取得する
すべての Edge Server インスタンスのリストを取得するには、 Admin API List Edge Serverエンドポイントを呼び出します。
Authorization
リクエストには、管理 API アクセス トークンが Bearer トークン として返される ヘッダーが含まれている必要があります。
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <AccessToken>'
リクエストが成功すると、 200
コードと、 appId
に関連付けられた各 Edge Server インスタンスの概要の詳細を含むオブジェクトの配列であるedge_servers
キーが返されます。
{ "edge_servers": [ { "id": "6622b8f5118368b943d228a9", "created": "2024-04-19T08:51:00Z", "name": "Edge-Store-42", "user_id": "6622b8f5118368b943d2288a", "status": "active", "hostname": "ec2-13-58-70-88.us-east-2.compute.amazonaws.com", "last_connection": "2024-04-19T09:51:00Z" } ] }
配列で削除する Edge Server インスタンスのid
を見つけます。
削除 エンドポイントの呼び出し
削除する EdgeAPI インスタンスのEdge Server を指定して、 Delete をID 呼び出します。Edge Server
Authorization
リクエストには、管理 API アクセス トークンが Bearer トークン として返される ヘッダーが含まれている必要があります。
curl -X DELETE \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge/{edgeServerId} \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <AccessToken>'
リクエストが成功すると、 200
コードが返されます。
Edge Server のデータモデルの更新
データモデルを更新するプロセスは、 Edge Server Service を使用しているか、Edge Server 付きの Device Sync Service を使用しているかによって異なります。
Edge Server Service
Edge Server Service を使用している場合、同期するドキュメントに変更を加えると、サービスによってスキーマ内のフィールドが自動的に更新されます。
UI を使用して手動でスキーマを更新し、それらのスキーマの変更によってスキーマ バージョンの変更がtriggerされると、古いスキーマを含むEdge Serverインスタンスが再起動し、自分自身をクリーンアップします。
以前に同期したことがない新しいコレクションを追加する場合は、新しい スキーマ を定義する必要があります。
コレクションを追加する
Edge Server Service にコレクションを追加する場合は、次の内容を含むスキーマを追加する必要があります。
コレクション名。
ObjectID
型である_id
フィールド。
Edge Server Service は、同期するドキュメントまたはコレクション内のドキュメントの形状から他のフィールドを自動的に推論します。
スキーマを追加する方法の詳細については、「 スキーマの定義および強制 」を参照してください。
コレクションを追加した後、Edge Server インスタンスを停止して起動し、新しいコレクションの詳細を取得する必要があります。 詳細については、「 Edge Server の起動と停止 」を参照してください。
ドキュメントのフィールドの変更
Edge Server Service を使用してドキュメント内のフィールドを変更すると、サービスによって自動的にスキーマが変更され、新しいフィールドが追加されます。
UI から行える一部の変更は、スキーマの「重大な変更」と見なされます。 「重大な」スキーマ変更が発生すると、古いスキーマを持つ Edge Server インスタンスが再起動し、自分自身を消去します。 ワイヤ プロセスにより、同期されていないデータがすべて削除されます。
重要
インスタンスを消去して再起動すると、インスタンス上のすべてのローカルの未同期データが消去されます。
そのデータが Atlas Device SDK クライアントによって書き込まれた場合、クライアント自体がデータリカバリを処理できます。 これにより、クライアントによって書き込まれたローカルの同期されていないデータが、最終的に Atlas に提供されるようになります。
MongoDB ドライバーまたは ツールによって ワイヤプロトコル を使用してデータが書き込まれた場合、同期されていないデータは回復できません。
Edge Server がパブリック プレビューから一般提供に移行する前に、このエラーが発生したときにローカル データを回復するオプションが提供されます。
どの変更のタイプが「重大」な変更と見なされるかについて詳しくは、「 重大な変更と重大でない変更のクイック リファレンス 」を参照してください。
Device Sync サービス
Device Sync Service で実行されている Edge Server は、データモデルを更新するために Device Sync ルールを使用します。
「重大な」スキーマ変更が発生すると、古いスキーマを持つ Edge Server インスタンスが再起動し、自分自身を消去します。
重要
インスタンスを消去して再起動すると、インスタンス上のすべてのローカルの未同期データが消去されます。
そのデータが Atlas Device SDK クライアントによって書き込まれた場合、クライアント自体がデータリカバリを処理できます。 これにより、クライアントによって書き込まれたローカルの同期されていないデータが、最終的に Atlas に提供されるようになります。
MongoDB ドライバーまたは ツールによって ワイヤプロトコル を使用してデータが書き込まれた場合、同期されていないデータは回復できません。
Edge Server がパブリック プレビューから一般提供に移行する前に、このエラーが発生したときにローカル データを回復するオプションが提供されます。
Edge Server インスタンスのトラブルシューティング
いくつかの条件により、Edge Server インスタンスはFailed
状態になる可能性があります。
Edge Server がクライアントの最大オフライン時間よりも長くオフラインになる
Edge Server は Device Sync を使用して、Edge Server インスタンスと Atlas 間でデータを同期します。 Device Sync にはクライアント最大オフライン時間設定があります。
この設定はデフォルトで有効になっています。 履歴を削除して、バッキング Atlas クラスターに必要なストレージの量を減らします。 クライアントの最大オフライン時間が長いほど、同期をサポートする履歴レコードを保持するために Atlas が必要とするストレージも大きくなります。
Edge Server インスタンスがこの設定よりも長時間オフラインになると、回復不能なエラーが発生します。 インスタンスを消去して再起動する必要があります。 あるいは、 インスタンスをオンラインに戻すと、自動的に消去され再起動されます。
重要
インスタンスを消去して再起動すると、インスタンス上のすべてのローカルの未同期データが消去されます。
そのデータが Atlas Device SDK クライアントによって書き込まれた場合、クライアント自体がデータリカバリを処理できます。 これにより、クライアントによって書き込まれたローカルの同期されていないデータが、最終的に Atlas に提供されるようになります。
MongoDB ドライバーまたは ツールによって ワイヤプロトコル を使用してデータが書き込まれた場合、同期されていないデータは回復できません。
Edge Server がパブリック プレビューから一般提供に移行する前に、このエラーが発生したときにローカル データを回復するオプションが提供されます。
同期設定 でクライアントの最大オフライン時間の長さを変更できます。
重要
Edge Server オフライン制限は60日
Edge Server インスタンスは、クライアントの最大オフライン時間に設定した設定に関係なく、 60日より長くオフラインになることはできません。 設定が未設定であるか、または60日を超えている場合、Edge Server のオフライン制限は60日です。
Edge Server インスタンスは 1 つ以上のメジャー バージョンより遅れています
Edge Server は、現在の最新バージョンより 1 つ以上前のメジャー バージョンより前のインスタンスをサポートしていません。 Edge Server インスタンスのバージョンがさらに遅れている場合は、 Failed
状態を解決するためにインスタンスをアップグレードする必要があります。
Edge Server インスタンスのアップグレードの詳細については、「 Edge Server バージョンのアップグレード 」を参照してください。
Edge Server トークンが無効
Edge Server インスタンス トークンが再生成され、インスタンス自体の API キーを更新しない場合は、 Failed
状態になる可能性があります。
Edge Server トークンの再生成後に Edge Server インスタンスの API キーを更新する方法の詳細については、「 Edge Server API キーのサイクル 」を参照してください。
Edge Server の制限
Edge Server はパブリック プレビュー段階ですが、MongoDB および Atlas Device SDK の機能の全範囲はまだサポートされていません。
コレクションのタイプ
Edge Server は現在、時系列コレクションをサポートしていません。
Edge Server サービスを作成すると、リンクされたデータベース内のすべてのコレクションのスキーマが自動的に作成されます。 時系列コレクションを含むデータベースで Edge Server を使用しようとすると、エラーがスローされます。
このエラーを解決するには、時系列コレクションのスキーマを手動で削除する必要があります。 スキーマを削除する方法の詳細については、「 スキーマの削除 」を参照してください。
集計と CRUD 操作
Edge Server は現在、MongoDB の集計と CRUD 操作のサブセットのみをサポートしています。 サポートされている操作のリストについては、 「Edge Server MongoDB API サポート - プレビュー」 を参照してください。
Atlas Device SDK の機能
Edge Server は現在、 Data Ingest をサポートしていません。