注意
このページでは、レガシー構成ファイル形式について説明します。 非推奨の realm-cliを使用している場合にのみ、この情報を使用する必要があります。
App Services CLI を使用してプルする構成ファイル、または UI からエクスポートする構成ファイルには、最新の構成バージョンが使用されます。 現在の構成ファイル形式の詳細については、 「アプリ構成」 を参照してください。
app/ └── http_endpoints/ ├── config.json ├── data_api_config.json └── <Service Name>/ ├── config.json ├── rules/ │ └── <Rule Name>.json └── incoming_webhooks/ └── <Webhook Name>/ ├── config.json └── source.js
カスタム HTTPS エンドポイント構成
アプリのすべてのカスタムHTTPS endpointsの構成を http_endpoints/config.json の配列として定義します。
[ { "route": "<Endpoint route name>", "http_method": "<HTTP method>", "function_name": "<Endpoint function name", "validation_method": "<Authorization scheme>", "secret_name": "<Validation Secret Name>", "respond_result": <boolean>, "fetch_custom_user_data": <boolean>, "create_user_on_auth": <boolean>, "disabled": <boolean> } ]
フィールド | 説明 |
|---|---|
routestring | エンドポイントルート。 |
http_methodstring | エンドポイントが取り扱うHTTPメソッド のタイプ。エンドポイントが 1 つのすべてのメソッドを処理するには、 次の 1 つ:
|
function_namestring | エンドポイントに関連付けられている関数の名前。 関数はエンドポイント関数署名を使用する必要があります。 |
validation_methodstring | |
secret_namestring | string を含むシークレットの名前。 |
respond_resultboolean |
|
fetch_custom_user_databoolean |
|
create_user_on_authboolean |
この設定は、 カスタムJSON web token認証プロバイダーを介して外部認証システムと統合するアプリに便利です。 リクエストに、登録されているユーザーに対応していない外部システムからの有効なJSON web tokenが含まれている場合、 JSON web tokenを ID として持つ新しいユーザーが作成されます。 |
disabledboolean | エンドポイントを有効にする( |
データ API 構成
アプリで生成されたデータ API エンドポイントの構成をhttp_endpoints/data_api_config.jsonで定義します。
{ "disabled": <boolean>, "versions": ["v1"], "return_type": "EJSON" | "JSON", "create_user_on_auth": <boolean>, "run_as_system": <boolean>, "run_as_user_id": "<User Account ID>", "run_as_user_id_script_source": "<Function Source Code>" }
フィールド | 説明 |
|---|---|
disabledboolean |
|
versionsstring[] | アプリがサポートする データ API バージョンのリスト。 リストには可能なすべてのバージョンのサブセットを含めることができますが、バージョンは昇順で一覧表示する必要があります。 最新バージョン以外のバージョンを有効にすることはできませんが、ここにリストされている以前に有効になっているバージョンは引き続き機能します。 利用可能なバージョン:
|
return_typestring | HTTPS レスポンス ボディのエンドポイントによって返されるデータに使用するデータ形式。 次の 1 つ:
|
create_user_on_authboolean |
この設定は、 カスタムJSON web token認証プロバイダーを介して外部認証システムと統合するアプリに便利です。 リクエストに、登録されているユーザーに対応していない外部システムからの有効なJSON web tokenが含まれている場合、 JSON web tokenを ID として持つ新しいユーザーが作成されます。 |
run_as_user_idstring | アプリケーション ユーザーのアカウントID。定義されている場合、エンドポイントは常に指定されたユーザーとして実行されます。
|
run_as_user_id_script_sourcestring | アプリケーション ユーザーのアカウント ID を返す関数の文字列化されたソースコード。 定義されている場合、エンドポイントはリクエストごとに関数を実行し、関数から返された ID を持つユーザーとして実行されます。
|
HTTP Service構成
非推奨のレガシー HTTP サービスは、 /http_endpoints内の名前付きサービスにグループ化されます。
{ "name": "<Service Name>", "type": "http", "config": {} }
フィールド | 説明 |
|---|---|
nameString | HTTP エンドポイント サービスの名前。 これは、アプリ内のすべての HTTP エンドポイント サービス間で一意であり、含まれているディレクトリの名前と一致する必要があります。 |
typeString | HTTP エンドポイントの場合、この値は常に |
configString | Additional configuration options for the service. HTTP エンドポイントには現在、追加の構成オプションはありません。 |
サービスアクション ルール
サービス アクション ルールは、サービスのrules/サブディレクトリで定義します。 各ルールは、ルールと同じ名前の独自の.json構成ファイルにマッピングします。
{ "name": "<Rule Name>", "actions": ["<Service Action Name>"], "when": { <JSON Rule Expression> } }
フィールド | 説明 |
|---|---|
nameString | サービス ルールの名前。 名前の長さは最大 64 文字で、ASCII 文字、数字、アンダースコア、ハイフンのみを含めることができます。 |
actionsArray<String> | ルールが適用されるHTTP アクションのリスト。 |
whenDocument | 特定のリクエストにルールが適用される場合に |
受信 Webhook
構成
{ "name": "<Webhook Name>", "can_evaluate": { <JSON Expression> }, "run_as_authed_user": <Boolean>, "run_as_user_id": "<App Services User ID>", "run_as_user_id_script_source": "<Function Source Code>", "fetch_custom_user_data": <Boolean>, "create_user_on_auth": <Boolean>, "respond_result": <Boolean>, "options": { "httpMethod": "<HTTP Method>", "validationMethod": "<Webhook Validation Method>", "secret": "<Webhook Secret>" } }
フィールド | 説明 | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nameString | Webhook の名前。 これは、HTTP エンドポイント サービス内のすべての Webhook 間で一意であり、含まれているディレクトリの名前と一致する必要があります。 | |||||||||||||
can_evaluateJSON Expression (default: true) | Webhook の実行が許可されている場合に | |||||||||||||
disable_arg_logsBoolean |
| |||||||||||||
run_as_authed_userBoolean |
Tip認証情報を指定する方法の例については、サービス Webhook の構成を参照してください。 | |||||||||||||
run_as_user_idString | 関数が常に実行されるApp Services ユーザーの一意の ID。 | |||||||||||||
run_as_user_id_script_sourceString | Webhook が呼び出されるたびに実行され、関数が実行されるApp Services ユーザーの一意の ID を返す文字列化された関数。 | |||||||||||||
respond_resultBoolean |
| |||||||||||||
fetch_custom_user_dataBoolean |
このオプションは、 | |||||||||||||
create_user_on_authBoolean |
このオプションは、 | |||||||||||||
optionsDocument | Webhook の構成オプションを含むドキュメント。
|
ソースコード
Webhook 関数のソースコードは、Webhook ディレクトリ内のsource.jsファイルで定義します。 各ファイルは、リクエストが Webhook を呼び出すたびに実行されるメイン関数をエクスポートする必要があります。
exports = async function (payload, response) { // Convert the webhook body from BSON to an EJSON object const body = EJSON.parse(payload.body.text()); // Execute application logic, such as working with MongoDB if (body.someField) { const mdb = context.services.get("mongodb-atlas"); const requests = mdb.db("demo").collection("requests"); const { insertedId } = await requests.insertOne({ someField: body.someField, }); // Respond with an affirmative result response.setStatusCode(200); response.setBody(`Successfully saved "someField" with _id: ${insertedId}.`); } else { // Respond with a malformed request error response.setStatusCode(400); response.setBody(`Could not find "someField" in the webhook request body.`); } // This return value does nothing because we already modified the response object. // If you do not modify the response object and you enable *Respond with Result*, // App Services will include this return value as the response body. return { msg: "finished!" }; };