次の方法で共有


コードレス コネクタ プラットフォームの RestApiPoller データ コネクタ リファレンス

コードレス コネクタ プラットフォーム (CCP) を使用して RestApiPoller データ コネクタを作成するには、このリファレンスを、 Microsoft Sentinel REST API for Data Connectors ドキュメントの補足として使用します。

dataConnector は、Microsoft Sentinel データ コネクタの特定の connection を表します。 1 つのデータ コネクタに複数の接続があり、異なるエンドポイントからデータをフェッチする場合があります。 このリファレンス ドキュメントを使用して構築された JSON 構成は、CCP データ コネクタのデプロイ テンプレートを完成させるために使用されます。

詳細については、「 Microsoft Sentinel 用のコードレス コネクタを作成する」を参照してください。

データ コネクタ - 作成または更新

REST API ドキュメントの Create または Update 操作を参照して、最新の安定した API バージョンまたはプレビュー API バージョンを見つけます。 createupdate操作の違いは、更新にetag値が必要です。

PUT メソッド

https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.OperationalInsights/workspaces/{{workspaceName}}/providers/Microsoft.SecurityInsights/dataConnectors/{{dataConnectorId}}?api-version={{apiVersion}}

URI パラメーター

最新の API バージョンの詳細については、「 Data コネクタ - URI パラメーターの作成または更新」を参照してください。

名前 説明
dataConnectorId データ コネクタ ID は一意の名前である必要があり、要求本文のname パラメーターと同じです
resourceGroupName リソース グループの名前。大文字と小文字は区別されません。
subscriptionId ターゲット サブスクリプションの ID。
workspaceName ID ではなく、ワークスペースの
正規表現パターン: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$
api-version この操作に使用する API バージョン。

要求本文

RestApiPoller CCP データ コネクタの要求本文には、次の構造があります。

{
   "name": "{{dataConnectorId}}",
   "kind": "RestApiPoller",
   "etag": "",
   "properties": {
        "connectorDefinitionName": "",
        "auth": {},
        "request": {},
        "response": {},
        "paging": "",
        "dcrConfig": ""
   }
}

RestApiPoller

RestApiPoller は、データ ソースのページング、承認、要求/応答のペイロードをカスタマイズする API Poller CCP データ コネクタを表します。

名前 Required タイプ 説明
name True string URI パラメーターに一致する接続の一意の名前
kind True string `Default` である必要があります。
etag GUID 新しいコネクタを作成する場合は空のままにします。 更新操作の場合、etag は既存のコネクタの etag (GUID) と一致する必要があります。
properties.connectorDefinitionName string データ コネクタの UI 構成を定義する DataConnectorDefinition リソースの名前。 詳細については、「 Data コネクタ定義」を参照してください。
properties.認証 True 入れ子の JSON データをポーリングするための認証プロパティについて説明します。 詳細については、 認証の構成を参照してください。
properties.依頼 True 入れ子の JSON API エンドポイントなど、データをポーリングするための要求ペイロードについて説明します。 詳細については、「要求の構成」をご覧ください。
properties.応答 True 入れ子の JSON データのポーリング時に API から返される応答オブジェクトと入れ子になったメッセージについて説明します。 詳細については、「応答の構成」をご覧ください。
properties.ページング 入れ子の JSON データをポーリングする際の改ページ位置の自動修正のペイロードについて説明します。 詳細については、「ページングの構成」をご覧ください。
properties.dcrConfig 入れ子の JSON データがデータ収集規則 (DCR) に送信されるときに必要なパラメーター。 詳細については、 DCR 構成を参照してください。

認証の構成

CCP では、次の認証の種類がサポートされています。

Note

CCP OAuth2 の実装では、クライアント証明書の資格情報はサポートされていません。

ベスト プラクティスとして、資格情報をハードコーディングする代わりに、認証セクションのパラメーターを使用します。 詳細については、「 安全な機密入力」を参照してください。

パラメーターも使用するデプロイ テンプレートを作成するには、追加の開始 [を使用して、このセクションのパラメーターをエスケープする必要があります。 これによりパラメータは、コネクタとのユーザー操作に基づいて値を割り当てることができます。 詳細については、テンプレート式のエスケープ文字に関するページを参照してください。

UI から資格情報を入力できるようにするには、 connectorUIConfig セクションで目的のパラメーターを instructions する必要があります。 詳細については、「コードレス コネクタ プラットフォームの Data コネクタ定義リファレンスを参照してください。

基本認証

フィールド 必須 Type
UserName True string
Password True string

connectorUIconfigで定義されているパラメーターを使用した基本認証の例:

"auth": {
    "type": "Basic",
    "UserName": "[[parameters('username')]",
    "Password": "[[parameters('password')]"
}

APIKey

フィールド 必須 タイプ 説明 規定値
ApiKey True string ユーザー シークレット キー
ApiKeyName string ApiKey 値を含む Uri ヘッダーの名前 Authorization
ApiKeyIdentifier string トークンの先頭に追加する文字列値 token
IsApiKeyInPostPayload boolean ヘッダーの代わりに POST 本文でシークレットを送信する false

APIKey 認証の例:

"auth": {
    "type": "APIKey",
    "ApiKey": "[[parameters('apikey')]",
    "ApiKeyName": "X-MyApp-Auth-Header",
    "ApiKeyIdentifier": "Bearer"
}

この例では、次のヘッダーで送信されたユーザー入力から定義されたシークレットになります: X-MyApp-Auth-Header: Bearer apikey

"auth": { 
    "type": "APIKey",
    "ApiKey": "123123123",
}

この例では既定値を使用し、 Authorization: token 123123123

"auth": { 
    "type": "APIKey",
    "ApiKey": "123123123",
    "ApiKeyName": ""
}

ApiKeyNameは明示的に "" に設定されているため、結果は次のヘッダーになります:Authorization: 123123123

OAuth2

コードレス コネクタ プラットフォームでは、OAuth 2.0 承認コードの付与とクライアント資格情報がサポートされています。 認証コード付与の種類は、認証コードをアクセストークンと交換するために、機密クライアントおよびパブリッククライアントによって使用されます。 ユーザーがリダイレクト URL 経由でクライアントに戻った後、アプリケーションは URL から認証コードを取得し、それを使用してアクセス トークンを要求します。

フィールド 必須 タイプ 説明
ClientId True String クライアント ID
ClientSecret True String クライアント シークレット
AuthorizationCode true の場合 grantType = authorization_code String 許可の種類が authorization_code 場合、このフィールド値は認証サービスから返される承認コードになります。
スコープ true authorization_code 許可の種類
許可の種類 client_credentials 省略可能
String ユーザーの同意のためのスコープのスペース区切りの一覧。 詳細については、「 OAuth2 のスコープとアクセス許可を参照してください。
RedirectUri true の場合 grantType = authorization_code String リダイレクトの URL。次の URL である必要があります。 https://portal.azure.com/TokenAuthorize/ExtensionName/Microsoft_Azure_Security_Insights
GrantType True String authorization_code または client_credentials
TokenEndpoint True String 有効なトークンを持つコードを authorization_code 許可、またはクライアント ID とシークレットを有効なトークンと client_credentials 許可で交換する URL。
TokenEndpointHeaders Object トークン サーバーにカスタム ヘッダーを送信するオプションのキー値オブジェクト
TokenEndpointQueryParameters Object トークン サーバーにカスタム クエリ パラメーターを送信するオプションのキー値オブジェクト
AuthorizationEndpoint True String authorization_code フローに対するユーザーの同意の URL
AuthorizationEndpointHeaders Object カスタム ヘッダーを認証サーバーに送信するオプションのキー値オブジェクト
AuthorizationEndpointQueryParameters Object OAuth2 承認コード フロー要求で使用されるオプションのキー値ペア

認証コード フローは、ユーザーのアクセス許可に代わってデータをフェッチするためのものであり、クライアント資格情報はアプリケーションのアクセス許可を使用してデータをフェッチするためのフローです。 データ サーバーは、アプリケーションへのアクセスを許可します。 クライアント資格情報フローにはユーザーがないため、承認エンドポイントは必要なく、トークン エンドポイントのみが必要です。

例: OAuth2 authorization_code 許可の種類

"auth": {
    "type": "OAuth2",
    "ClientId": "[[parameters('appId')]",
    "ClientSecret": "[[parameters('appSecret')]",
    "tokenEndpoint": "https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token",
    "authorizationEndpoint": "https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/authorize",
    "authorizationEndpointHeaders": {},
    "authorizationEndpointQueryParameters": {
        "prompt": "consent"
    },
    "redirectUri": "https://portal.azure.com/TokenAuthorize/ExtensionName/Microsoft_Azure_Security_Insights",
    "tokenEndpointHeaders": {
        "Accept": "application/json",
        "Content-Type": "application/x-www-form-urlencoded"
    },
    "TokenEndpointQueryParameters": {},
    "scope": "openid offline_access some_scope",
    "grantType": "authorization_code"
}

例: OAuth2 client_credentials 許可の種類

"auth": {
    "type": "OAuth2",
    "ClientId": "[[parameters('appId')]",
    "ClientSecret": "[[parameters('appSecret')]",
    "tokenEndpoint": "https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token",
    "tokenEndpointHeaders": {
        "Accept": "application/json",
        "Content-Type": "application/x-www-form-urlencoded"
    },
    "TokenEndpointQueryParameters": {},
    "scope": "openid offline_access some_scope",
    "grantType": "client_credentials"
}

Jwt

例: JSON Web トークン (JWT)

"auth": {
    "type": "JwtToken",
    "userName": {
        "key":"username",
        "value":"[[parameters('UserName')]"
    },
    "password": {
        "key":"password",
        "value":"[[parameters('Password')]"
    },
    "TokenEndpoint": {"https://token_endpoint.contoso.com"},
    "IsJsonRequest": true
}

要求の構成

要求セクションでは、API エンドポイントなど、CCP データ コネクタがデータ ソースに要求を送信する方法と、そのエンドポイントをポーリングする頻度を定義します。

フィールド 必須 タイプ 説明
ApiEndpoint True String リモート サーバーの URL。 データのプル元のエンドポイントを定義します。
RateLimitQPS Integer 1 秒あたりに許可される呼び出しまたはクエリの数を定義します。
QueryWindowInMin Integer 使用可能なクエリ ウィンドウを分単位で定義します。 最小値は 1 分です。 既定値は 5 分です。
HttpMethod String API メソッドを定義します: GET(既定) または POST
QueryTimeFormat String エンドポイント (リモート サーバー) で想定される日付と時刻の形式を定義します。 CCP では、この変数が使用されている場所であれば常に現在の日付と時刻が使用されます。 使用できる値は、定数です。 UnixTimestampUnixTimestampInMills 、またはその他の有効な日付時刻の表現 (例: yyyy-MM-ddMM/dd/yyyy HH:mm:ss
既定値は ISO 8601 UTC
RetryCount 整数 (1...6) 障害からの復旧を許可する再試行を6する1を定義します。 既定値は 3 です。
TimeoutInSeconds 整数 (1...180) 要求のタイムアウトを秒単位で定義します。 既定値は 20 です
IsPostPayloadJson Boolean ポスト ペイロードが JSON 形式であるかどうかを判断します。 既定値は false です
ヘッダー Object 要求ヘッダーを定義するキー値ペア。
QueryParameters Object 要求クエリ パラメーターを定義するキー値ペア。
StartTimeAttributeName true EndTimeAttributeName が設定されている場合 String クエリの開始時刻のクエリ パラメーター名を定義します。 を参照してください。
EndTimeAttributeName true StartTimeAttributeName が設定されている場合 String クエリの終了時刻のクエリ パラメーター名を定義します。
QueryTimeIntervalAttributeName String エンドポイントで時間枠内のデータに対してクエリを実行するための特殊な形式が必要な場合は、 QueryTimeIntervalPrepend パラメーターと QueryTimeIntervalDelimiter パラメーターでこのプロパティを使用します。 を参照してください。
QueryTimeIntervalPrepend true QueryTimeIntervalAttributeName が設定されている場合 String QueryTimeIntervalAttributeName」を参照してください。
QueryTimeIntervalDelimiter true QueryTimeIntervalAttributeName が設定されている場合 String QueryTimeIntervalAttributeName」を参照してください。
QueryParametersTemplate String 高度なシナリオでパラメーターを渡すときに使用するクエリ テンプレート。
br>例: "queryParametersTemplate": "{'cid': 1234567, 'cmd': 'reporting', 'format': 'siem', 'data': { 'from': '{_QueryWindowStartTime}', 'to': '{_QueryWindowEndTime}'}, '{_APIKeyName}': '{_APIKey}'}"

API に複雑なパラメーターが必要な場合は、組み込みの変数を含む queryParameters または queryParametersTemplate を使用します。

組み込み変数 で使用する場合 queryParameters で使用する場合 queryParametersTemplate
_QueryWindowStartTime はい はい
_QueryWindowEndTime はい はい
_APIKeyName no はい
_APIKey no はい

StartTimeAttributeName の例

以下に例を示します。

  • StartTimeAttributeName = from
  • EndTimeAttributeName = until
  • ApiEndpoint = https://www.example.com

リモート サーバーに送信されるクエリは次のとおりです。 https://www.example.com?from={QueryTimeFormat}&until={QueryTimeFormat + QueryWindowInMin}

QueryTimeIntervalAttributeName の例

以下に例を示します。

  • QueryTimeIntervalAttributeName = interval
  • QueryTimeIntervalPrepend = time:
  • QueryTimeIntervalDelimiter = ..
  • ApiEndpoint = https://www.example.com

リモート サーバーに送信されるクエリは次のとおりです。 https://www.example.com?interval=time:{QueryTimeFormat}..{QueryTimeFormat + QueryWindowInMin}

Microsoft Graph をデータ ソース API として使用する要求の例

この例では、フィルター クエリ パラメーターを使用してメッセージを照会します。 詳細については、「 Microsoft Graph API クエリ パラメーターを参照してください。

"request": {
  "apiEndpoint": "https://graph.microsoft.com/v1.0/me/messages",
  "httpMethod": "Get",
  "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
  "queryWindowInMin": 10,
  "retryCount": 3,
  "rateLimitQPS": 20,
  "headers": {
    "Accept": "application/json",
    "User-Agent": "Example-app-agent"
  },
  "QueryTimeIntervalAttributeName": "filter",
  "QueryTimeIntervalPrepend": "receivedDateTime gt ",
  "QueryTimeIntervalDelimiter": " and receivedDateTime lt "
}

前の例では、 GET 要求を https://graph.microsoft.com/v1.0/me/messages?filter=receivedDateTime gt {time of request} and receivedDateTime lt 2019-09-01T17:00:00.0000000に送信します。 各 queryWindowInMin 時刻のタイムスタンプが更新されます。

この例では、同じ結果が得られます。

"request": {
  "apiEndpoint": "https://graph.microsoft.com/v1.0/me/messages",
  "httpMethod": "Get",
  "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
  "queryWindowInMin": 10,
  "retryCount": 3,
  "rateLimitQPS": 20,
  "headers": {
    "Accept": "application/json",
  },
  "queryParameters": {
    "filter": "receivedDateTime gt {_QueryWindowStartTime} and receivedDateTime lt {_QueryWindowEndTime}"
  }
}

もう 1 つのオプションは、データ ソースで 2 つのクエリ パラメーター (開始時刻に 1 つ、終了時刻に 1 つ) が必要な場合です。

例:

"request": {
  "apiEndpoint": "https://graph.microsoft.com/v1.0/me/calendarView",
  "httpMethod": "Get",
  "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
  "queryWindowInMin": 10,
  "retryCount": 3,
  "rateLimitQPS": 20,
  "headers": {
    "Accept": "application/json",
  },
  "StartTimeAttributeName": "startDateTime",
  "EndTimeAttributeName": "endDateTime",
}

これにより、 GET 要求が https://graph.microsoft.com/me/calendarView?startDateTime=2019-09-01T09:00:00.0000000&endDateTime=2019-09-01T17:00:00.0000000

複雑なクエリの場合は、 QueryParametersTemplateを使用します。 次の例では、本文にパラメーターを含む POST 要求を送信します。

例:

request: {
  "apiEndpoint": "https://graph.microsoft.com/v1.0/me/messages",
  "httpMethod": "POST",
  "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
  "queryWindowInMin": 10,
  "retryCount": 3,
  "rateLimitQPS": 20,
  "headers": {
    "Accept": "application/json",
  },
  "isPostPayloadJson": true,
  "queryParametersTemplate": "{\"query":"TableName | where createdTimestamp between (datetime({_QueryWindowStartTime}) .. datetime({_QueryWindowEndTime}))\"}"
}

応答の構成

次のパラメーターを使用して、データ コネクタの応答処理を定義します。

フィールド 必須 タイプ 説明
EventsJsonPaths True 文字列の一覧 応答の JSON 内のメッセージへのパスを定義します。 JSPON パス式で、JSON 構造体の要素または要素のセットへのパスを指定します。
SuccessStatusJsonPath String 応答の JSON 内の成功メッセージへのパスを定義します。 このパラメーターを定義するときは、 SuccessStatusValue パラメーターも定義する必要があります。
SuccessStatusValue String 応答の JSON 内の成功メッセージ値へのパスを定義します。
IsGzipCompressed Boolean 応答が gzip ファイルで圧縮されているかどうかを判断します
format True String json または csv または xml
CompressionAlgo String multi-gzipまたはdeflateのいずれかの圧縮アルゴリズム。 gzip 圧縮アルゴリズムの場合は、このパラメーターの値を設定するのではなく、TrueするようにIsGzipCompressedを構成するだけです。
CsvDelimiter String 応答形式が CSV で、既定の CSV 区切り記号を変更する場合 ","
HasCsvBoundary Boolean CSV データに境界があるかどうかを示す
HasCsvHeader Boolean CSV データにヘッダーがあるかどうかを示します。既定値は True
CsvEscape String フィールド境界のエスケープ文字。既定値は "

たとえば、ヘッダーが id,name,avg された CSV や、 1,"my name",5.5 などのスペースを含むデータ行には、 " フィールド境界が必要です。
ConvertChildPropertiesToArray Boolean リモート サーバーが、各プロパティにデータが含まれるイベントのリストの代わりにオブジェクトを返す特殊なケース。

Note

CSV 形式の種類は、 RFC4180 仕様によって解析されます。

応答構成の例

要求されたデータがプロパティ valueに含まれる、JSON 形式のサーバー応答が必要です。 response プロパティ status は、値が successされている場合にのみ、データを取り込むよう示します。

"response": {
  "EventsJsonPaths ": ["$.value"],
  "format": "json",
  "SuccessStatusJsonPath": "$.status",
  "SuccessStatusValue": "success",
  "IsGzipCompressed: true
 }

この例で想定される応答は、ヘッダーのない CSV を準備します。

"response": {
  "EventsJsonPaths ": ["$"],
  "format": "csv",
  "HasCsvHeader": false
 }

ページングの構成

データ ソースが応答ペイロード全体を一度に送信できない場合、CCP データ コネクタは、応答 ページでデータの一部を受信する方法を認識する必要があります。 選択するページングの種類は次のとおりです。

ページングの種類 decision factor
API 応答には、次のページと前のページへのリンクがありますか?
API 応答には、次のページと前のページのトークンまたはカーソルがありますか?
API 応答は、ページング時にスキップするオブジェクトの数のパラメーターをサポートしていますか?

LinkHeader または PersistentLinkHeader の構成

最も一般的なページングの種類は、サーバー データ ソース API がデータの次のページと前のページに URL を提供する場合です。 リンクヘッダ仕様の詳細については、RFC 5988を参照してください。

LinkHeader ページングは、API 応答に次のいずれかが含まれていることを意味します。

  • Link HTTP 応答ヘッダー
  • または、応答本文からリンクを取得する JSON パス。

PersistentLinkHeader ページングには、バックエンド ストレージにリンク ヘッダーが保持される点を除き、 LinkHeaderと同じプロパティがあります。 このオプションを使用すると、クエリ ウィンドウ間のページング リンクが有効になります。 たとえば、一部の API ではクエリの開始時刻や終了時刻がサポートされていません。 代わりに、サーバー側の cursor をサポートします。 永続的なページの種類は、サーバー側の cursorを記憶するために使用できます。 詳細については、「カーソルとは」を参照してください。

Note

PersistentLinkHeader を使用するコネクタに対して実行できるクエリは 1 つだけで、サーバー側の競合状態を回避 cursor。 これは待機時間に影響する可能性があります。

フィールド 必須 タイプ 説明
LinkHeaderTokenJsonPath いいえ String このプロパティを使用して、応答本文の値を取得する場所を示します。

たとえば、データ ソースから次の JSON が返された場合、{ nextPage: "foo", value: [{data}]}LinkHeaderTokenJsonPathは次のようになります。$.nextPage
PageSize いいえ Integer ページあたりのイベントの数
PageSizeParameterName いいえ String ページ サイズのクエリ パラメーター名

次に例をいくつか示します。

Paging: {
  "pagingType": "LinkHeader",
  "linkHeaderTokenJsonPath" : "$.metadata.links.next"
}
Paging: {
 "pagingType" : "PersistentLinkHeader", 
 "pageSizeParameterName" : "limit", 
 "pageSize" : 500 
}

NextPageUrl の構成

NextPageUrl ページングとは、API 応答の応答本文に LinkHeader のような複雑なリンクが含まれていることを意味しますが、URL はヘッダーではなく応答本文に含まれます。

フィールド 必須 タイプ 説明
PageSize いいえ Integer ページあたりのイベントの数
PageSizeParameterName いいえ String ページ サイズのクエリ パラメーター名
NextPageUrl いいえ String コネクタが Coralogix API 用の場合のみ
NextPageUrlQueryParameters いいえ オブジェクト キーの値のペア – 次のページの各要求にカスタム クエリ パラメーターを追加する
NextPageParaName いいえ String 要求の次のページ名を決定します。
HasNextFlagJsonPath いいえ String HasNextPage フラグ属性へのパスを定義します。
NextPageRequestHeader いいえ String 要求の次のページ ヘッダー名を決定します。
NextPageUrlQueryParametersTemplate いいえ String コネクタが Coralogix API 用の場合のみ

例:

Paging: {
 "pagingType" : "NextPageUrl", 
  "nextPageTokenJsonPath" : "$.data.repository.pageInfo.endCursor", 
  "hasNextFlagJsonPath" : "$.data.repository.pageInfo.hasNextPage", 
  "nextPageUrl" : "https://api.github.com/graphql", 
  "nextPageUrlQueryParametersTemplate" : "{'query':'query{repository(owner:\"xyz\")}" 
}

NextPageToken または PersistentToken の構成

NextPageToken 改ページでは、現在のページの状態を表すトークン (ハッシュまたはカーソル) が使用されます。 トークンは API 応答に含まれており、クライアントは次の要求にトークンを追加して次のページをフェッチします。 この方法は、サーバーが要求間で正確な状態を維持する必要がある場合によく使用されます。

PersistentToken 改ページでは、サーバー側を保持するトークンが使用されます。 サーバーは、クライアントによって取得された最後のトークンを記憶し、後続の要求で次のトークンを提供します。 クライアントは、後で新しい要求を行った場合でも、中断した場所を続行します。

フィールド 必須 タイプ 説明
PageSize いいえ Integer ページあたりのイベントの数
PageSizeParameterName いいえ string ページ サイズのクエリ パラメーター名
NextPageTokenJsonPath いいえ string 応答本文の次のページ トークンの JSON パス。
NextPageTokenResponseHeader いいえ string NextPageTokenJsonPathが空の場合は、次のページのこのヘッダー名にトークンを使用します。
NextPageParaName いいえ string 要求の次のページ名を決定します。
HasNextFlagJsonPath いいえ string 応答に残っているページが増えるかどうかを判断するときに、 HasNextPage フラグ属性へのパスを定義します。
NextPageRequestHeader いいえ string 要求の次のページ ヘッダー名を決定します。

例 :

Paging: {
 "pagingType" : "NextPageToken", 
 "nextPageRequestHeader" : "ETag", 
 "nextPageTokenResponseHeader" : "ETag" 
}
Paging: {
 "pagingType" : "PersistentToken", 
    "nextPageParaName" : "gta", 
    "nextPageTokenJsonPath" : "$.alerts[-1:]._id" 
}

オフセットの構成

Offset pagination は、スキップするページ数と、要求のページごとに取得するイベントの数の制限を指定します。 クライアントは、データ セットから特定の範囲の項目をフェッチします。

フィールド 必須 タイプ 説明
PageSize いいえ Integer ページあたりのイベントの数
PageSizeParameterName いいえ String ページ サイズのクエリ パラメーター名
OffsetParaName いいえ String 次の要求クエリ パラメーター名。 CCP は、各要求のオフセット値を計算します (取り込まれたすべてのイベント + 1)

例:

Paging: {
   
       "pagingType": "Offset", 
        "offsetParaName": "offset" 
 }

DCR の構成

フィールド 必須 タイプ 説明
DataCollectionEndpoint True String DCE (データ収集エンドポイント) 例: https://example.ingest.monitor.azure.com
DataCollectionRuleImmutableId True String DCR の変更できない ID。 DCR 作成応答を表示するか、 DCR API を使用して検索します
StreamName True string この値は、DCR で定義されている streamDeclaration です (プレフィックスは Custom- で始まる必要があります)

CCP データ コネクタの例

CCP データ コネクタ JSON のすべてのコンポーネントの一例を次に示します。

{
   "kind": "RestApiPoller",
   "properties": {
      "connectorDefinitionName": "ConnectorDefinitionExample",
      "dcrConfig": {
           "streamName": "Custom-ExampleConnectorInput",
           "dataCollectionEndpoint": "https://example-dce-sbsr.location.ingest.monitor.azure.com",
           "dataCollectionRuleImmutableId": "dcr-32_character_hexadecimal_id"
            },
      "dataType": "ExampleLogs",
      "auth": {
         "type": "Basic",
         "password": "[[parameters('username')]",
         "userName": "[[parameters('password')]"
      },
      "request": {
         "apiEndpoint": "https://rest.contoso.com/example",
         "rateLimitQPS": 10,
         "queryWindowInMin": 5,
         "httpMethod": "GET",
         "queryTimeFormat": "UnixTimestamp",
         "startTimeAttributeName": "t0",
         "endTimeAttributeName": "t1",
         "retryCount": 3,
         "timeoutInSeconds": 60,
         "headers": {
            "Accept": "application/json",
            "User-Agent": "Example-app-agent"
         } 
      },
      "paging": {
         "pagingType": "LinkHeader"
      },
      "response": {
         "eventsJsonPaths": ["$"]
      }
   }
}