http_request_post
プラグインは HTTP POST 要求を送信し、応答をテーブルに変換します。
前提条件
-
.enable plugin http_request_post
を実行してプラグイン可能にする -
Callout ポリシーの
webapi
の許可された宛先としてアクセスするように URI を設定する
構文
evaluate
http_request_post
(
Uri [,
RequestHeaders [,
Options [,
Content]])
構文規則について詳しく知る。
パラメーター
件名 | タイプ | 必須 | 説明 |
---|---|---|---|
Uri | string |
✔️ | HTTPS 要求の宛先 URI。 |
RequestHeaders(リクエストヘッダー) | dynamic |
要求と共に送信する HTTP ヘッダー を含むプロパティ バッグ。 | |
[オプション] | dynamic |
要求の追加のプロパティを含むプロパティ バッグ。 | |
コンテンツ | string |
要求と共に送信する本文コンテンツ。 コンテンツは UTF-8 でエンコードされ、 Content-Type 属性のメディアの種類が application/json 。 |
注
- 省略可能なパラメーターの後に省略可能なパラメーターを指定するには、前の省略可能なパラメーターの値を指定してください。 詳細については、「 省略可能なパラメーターを使用した作業を参照してください。
- 常に HTTPS プロトコルを使用します。 認証で HTTP を使用しようとすると、エラーが発生します。
認証と権限承認
認証するには、HTTP 標準の Authorization
ヘッダーまたは Web サービスでサポートされているカスタム ヘッダーを使用します。
注
クエリに機密情報が含まれている場合は、クエリ テキストの関連する部分が難読化されていることを確認して、トレースから省略します。 詳細については、「難読化文字列リテラル」を参照してください。
返品
プラグインは、次の動的列を持つ 1 つのレコードを持つテーブルを返します。
- ResponseHeaders: 応答ヘッダーを含むプロパティ バッグ。
-
ResponseBody:
dynamic
型の値として解析された応答本文。
HTTP 応答が ( Content-Type
応答ヘッダーを介して) メディアの種類が application/json
されていることを示す場合、応答本文は JSON オブジェクトであるかのように自動的に解析されます。 それ以外の場合は、そのまま返されます。
ヘッダー
RequestHeaders 引数を使用して、送信 HTTP 要求にカスタム ヘッダーを追加できます。 このプラグインでは、標準の HTTP 要求ヘッダーとユーザー指定のカスタム ヘッダーに加えて、次のカスタム ヘッダーも追加されます。
件名 | 説明 |
---|---|
x-ms-client-request-id |
要求を識別する関連付け ID。 同じクエリ内のプラグインの複数の呼び出しはすべて同じ ID を持つことになります。 |
x-ms-readonly |
この要求のプロセッサが永続的な変更を加えてはならないことを示すフラグ。 |
警告
x-ms-readonly
フラグは、管理コマンドではなく、クエリによってトリガーされたプラグインによって送信されたすべての HTTP 要求に対して設定されます。 Web サービスは、このフラグを持つ要求を内部状態の変更を行わない要求として扱う必要があります。それ以外の場合は、要求を拒否する必要があります。 これにより、ユーザーが一見無実なクエリを送信されるのを防ぎ、そのような攻撃のスタート パッドとして Kusto クエリを使用して不要な変更を行います。
例
次の例は、追加の要求ヘッダーを受け入れ、Microsoft Entra ID を使用して認証する必要がある架空の HTTPS Web サービスの例です。
let uri='https://example.com/node/js/on/eniac';
let headers=dynamic({'x-ms-correlation-vector':'abc.0.1.0', 'authorization':'bearer ...Azure-AD-bearer-token-for-target-endpoint...'});
evaluate http_request_post(uri, headers)