HTTP Service [非推奨]
重要
サードパーティ サービスとプッシュ通知の廃止
Atlas App Services のサードパーティ サービスとプッシュ通知は非推奨となり、代わりに関数内の外部依存関係を使用する HTTP エンドポイントを作成できるようになりました。
Webhook はHTTPS endpointsに名前変更され、動作は変更されません。 既存の Webhook を移行する必要があります。
既存のサービスは、 30、2025 まで引き続き機能します。
サードパーティ サービスとプッシュ通知は非推奨になったため、App Services UI からデフォルトで削除されました。 既存のサードパーティ サービスまたはプッシュ通知を管理する必要がある場合は、次の操作を実行して構成を UI に追加できます。
左側のナビゲーションの [ App Settings Manageセクションの下にある [] をクリックします。
Temporarily Re-Enable 3rd Party Servicesの横にあるトグル スイッチを有効にし、変更を保存します。
Overview
Atlas App Services HTTP Service は、 REST API を提供するサービスなど、HTTP 経由で利用可能な任意のサービスと通信できる汎用インターフェースです。 これは、App Services にカスタム サービスが組み込まれていないサービスを使用する必要がある場合に役立ちます。
アウトバウンド HTTP リクエストを送信するには、いずれかの HTTP アクションを呼び出します。
外部サービスからの受信リクエストを処理するには、受信 Webhook を構成し、可能な場合はそれをサービスに提供します。 例については、このページの「受信 Webhook 」セクションを参照してください。
構成パラメータ
HTTP Serviceインターフェースを作成するときは、次のパラメータに値を指定する必要があります。
{ "name": "<Service Name>", "type": "http", "config": {} }
Parameter | 説明 |
---|---|
Service Name config.name | このHTTP Serviceインターフェースの名前。 これは、アプリケーション内の他のすべてのサービス インターフェースと一意である必要があります。 |
サービス アクション
Atlas App Services のHTTP Serviceは、関数および SDK で呼び出すことができる次のアクションを提供します。 各アクションは標準の HTTP リクエスト メソッドにマッピングします。
HTTP Serviceアクションの使用手順については、「サービスアクションの呼び出し 」を参照してください。
注意
サービス ルールでサービス アクションを有効にする必要があります。
アクション | 説明 |
---|---|
HTTP GET の送信 リクエスト。 | |
HTTP POST の送信 リクエスト。 | |
HTTP PUT の送信 リクエスト。 | |
HTTP PATCH の送信 リクエスト。 | |
HTTP DELETE の送信 リクエスト。 | |
HTTP HEAD の送信 リクエスト。 |
受信 Webhook
注意
HTTP Webhook のエンドポイントへの変換
HTTP Service Webhook は非推奨で、代わりに カスタムHTTPS endpointsが採用されます。 既存の Webhook は 1 回のクリックでエンドポイントに自動的に移行できます。 方法については、「 Webhook をHTTPS endpointsに変換する 」を参照してください。
構成
HTTP 受信 Webhook を構成するときは、次のパラメータに値を指定する必要があります。
HTTP 受信 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>", "respond_result": <Boolean>, "fetch_custom_user_data": <Boolean>, "create_user_on_auth": <Boolean>, "options": { "httpMethod": "<HTTP Method>", "validationMethod": "<Webhook Validation Method>", "secret": "<Webhook Secret>" } }
構成値 | 説明 |
---|---|
Webhook Name name | 必須。 Webhook の名前。 注意HTTP Serviceインターフェース内の各受信 Webhook には一意の名前が必要です。 |
Respond With Result respond_result | 必須。 true の場合、App Services は Webhook を呼び出したクライアントに応答を送信します。 レスポンス本体は、Webhook 関数の戻り値になります。 |
Run Webhook As run_as_user_id run_as_user_id_script_source | 任意。 Webhook が呼び出されるときに Webhook 関数を実行するApp Services ユーザーの ID。 でユーザー を直接指定することも、ID |
HTTP Method options.httpMethod | HTTP メソッド 受信する Webhook リクエストが使用する必要があるもの。任意のメソッドを受け入れるか、特定のメソッドを指定するように Webhook を構成できます。 次のメソッドがサポートされています。
|
Request Validation options.validationMethod | 受信リクエストが使用するリクエスト検証方法。 次の検証タイプがサポートされています。
|
Secret options.secret | Request Validationが有効になっている場合、これは検証シークレットです。 |
リクエスト ペイロード
App Services は、受信する Webhook 関数の最初の引数としてpayload
ドキュメントを自動的に渡します。 HTTP Service 受信 Webhook では、 payload
オブジェクトは受信 HTTP リクエストを表し、形式は次のとおりです。
{ "query": <query parameters>, "headers": <request headers>, "body": <request body (BSON)> }
フィールド | 説明 | ||||
---|---|---|---|---|---|
query | 各フィールドが クエリ パラメータ に対応するドキュメント : Webhook URL に含まれる外部サービス。 例クエリ パラメータ
| ||||
headers | 各フィールドが HTTP ヘッダー に対応するドキュメント : Webhook URL に含まれる外部サービス。 例
| ||||
body | リクエスト本体からエンコードされたBSON.Binaryオブジェクト。 バイナリ オブジェクトを string にシリアル化し、その string を EJSON に解析することで、リクエスト本文にアクセスできます。
|
Webhook 関数の例
次の Webhook 関数は、受信データを MongoDB コレクションに挿入し、レスポンスbody
でinsertedId
を返します。
exports = function(payload, response) { const mongodb = context.services.get("mongodb-atlas"); const requestLogs = mongodb.db("test").collection("requestlogs"); requestLogs.insertOne({ body: EJSON.parse(payload.body.text()), query: payload.query }).then(result => { response.setStatusCode(201); response.setBody(result.insertedId); }) };