Compartir a través de


Referencia del conector de datos para codeless Conectar or Platform

Para crear un conector de datos con codeless Conectar or Platform (CCP), use este documento como complemento de la API REST de Microsoft Sentinel para los documentos de referencia de data Conectar ors. En concreto, este documento de referencia se expande en los detalles siguientes:

  • Tipo de conector de datos, , RestApiPollerque se usa para la CCP.
  • Configuración de autorización
  • Opciones de configuración de solicitud y respuesta del origen de datos
  • Opciones de paginación de flujos de datos
  • Asignación de reglas de recopilación de datos

Cada dataConnector representa una conexión específica de un conector de datos de Microsoft Sentinel. Un conector de datos puede tener varias conexiones, que capturan datos de distintos puntos de conexión. La configuración json creada con este documento de referencia se usa para completar la plantilla de implementación para el conector de datos ccp.

Para más información, consulte Creación de un conector sin código para Microsoft Sentinel.

Conectar ors de datos: creación o actualización

Consulte la operación Crear o actualizar en los documentos de la API REST para encontrar la versión más reciente de la API estable o preliminar. La diferencia entre la creación y la operación de actualización es que la actualización requiere el valor etag .

Método PUT

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

Parámetros de URI

Para obtener más información sobre la versión más reciente de la API, consulte Data Conectar ors - Create or Update URI Parameters (Datos Conectar ors: creación o actualización de parámetros de URI).

Nombre Descripción
data Conectar orId El identificador del conector de datos debe ser un nombre único y es el mismo que el name parámetro en el cuerpo de la solicitud.
resourceGroupName Nombre del grupo de recursos, no distingue mayúsculas de minúsculas.
subscriptionId Identificador de la suscripción de destino.
workspaceName Nombre del área de trabajo, no el identificador.
Patrón de expresión regular: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$.
api-version Versión de API que se usará para la operación.

Cuerpo de la solicitud

El cuerpo de la solicitud para el conector de datos ccp tiene la siguiente estructura:

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

RestApiPoller representa el conector de sondeo de API sin código.

Nombre Obligatorio Type Descripción
name True string Nombre único de la conexión que coincide con el parámetro URI
kind True string Debe ser RestApiPoller
etag GUID Deje vacío para la creación de nuevos conectores. Para las operaciones de actualización, la etiqueta electrónica debe coincidir con la etag (GUID) del conector existente.
properties.connectorDefinitionName string Nombre del recurso Data Conectar orDefinition que define la configuración de la interfaz de usuario del conector de datos. Para obtener más información, consulte Definición de Conectar or de datos.
Propiedades.Auth True JSON anidado Describe las propiedades de autenticación para sondear los datos. Para obtener más información, consulte configuración de autenticación.
Propiedades.Petición True JSON anidado Describe la carga de solicitud para sondear los datos, como el punto de conexión de la API. Para más información, consulte configuración de solicitud.
Propiedades.Respuesta True JSON anidado Describe el objeto de respuesta y el mensaje anidado devueltos por la API al sondear los datos. Para más información, consulte configuración de respuesta.
Propiedades.Paginación JSON anidado Describe la carga de paginación al sondear los datos. Para más información, consulte Configuración de paginación.
Propiedades.dcrConfig JSON anidado Parámetros necesarios cuando los datos se envían a una regla de recopilación de datos (DCR). Para obtener más información, consulte Configuración de DCR.

Configuración de autenticación

La CCP admite los siguientes tipos de autenticación:

Nota:

La implementación de CCP OAuth2 no admite credenciales de certificado.

Como procedimiento recomendado, use parámetros en la sección de autenticación en lugar de credenciales de codificación rígida. Para obtener más información, consulte Protección de la entrada confidencial.

Para crear la plantilla de implementación que también usa parámetros, debe escapar los parámetros de esta sección con un inicio [adicional. Esto permite que los parámetros asignen un valor en función de la interacción del usuario con el conector. Para obtener más información, consulte Caracteres de escape de expresiones de plantilla.

Para permitir que las credenciales se escriban desde la interfaz de usuario, la connectorUIConfig sección requiere instructions con los parámetros deseados. Para obtener más información, consulte Referencia de definiciones del conector de datos para codeless Conectar or Platform.

Autenticación básica

Campo Obligatorio Tipo
UserName True string
Contraseña True string

Ejemplo de autenticación básica mediante parámetros definidos en connectorUIconfig:

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

APIKey

Campo Obligatorio Type Descripción Default value
ApiKey True string clave secreta de usuario
ApiKeyName string nombre del encabezado URI que contiene el valor apiKey Authorization
ApiKeyIdentifier string valor de cadena para anteponer el token token
IsApiKeyInPostPayload boolean enviar secreto en el cuerpo POST en lugar del encabezado false

Ejemplos de autenticación de APIKey:

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

Este ejemplo da como resultado el secreto definido a partir de la entrada del usuario enviada en el siguiente encabezado: X-MyApp-Auth-Header: Bearer apikey

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

En este ejemplo se usan los valores predeterminados y se produce el siguiente encabezado: Autorización: token 123123123

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

Dado que se ApiKeyName establece ""explícitamente en , el resultado es el siguiente encabezado: Authorization: 123123123

OAuth2

Codeless Conectar or Platform admite la concesión de código de autorización de OAuth 2.0 y las credenciales de cliente. Los clientes confidenciales y públicos usan el tipo de concesión de código de autorización para intercambiar un código de autorización para un token de acceso. Después de que el usuario vuelva al cliente a través de la dirección URL de redireccionamiento, la aplicación obtendrá el código de autorización de la dirección URL y lo usará para solicitar un token de acceso.

Campo Obligatorio Type Descripción
ClientId True String Identificador de cliente
ClientSecret True String El secreto de cliente
AuthorizationCode True cuando grantType = authorization_code Cadena Si el tipo de concesión es authorization_code este valor de campo, el código de autorización devuelto por el servicio de autenticación.
Ámbito True para el authorization_code tipo de concesión
opcional para client_credentials el tipo de concesión
Cadena Una lista separada por espacios de ámbitos para el consentimiento del usuario. Para obtener más información, consulte Ámbitos y permisos de OAuth2.
RedirectUri True cuando grantType = authorization_code Cadena La dirección URL para el redireccionamiento debe ser https://portal.azure.com/TokenAuthorize/ExtensionName/Microsoft_Azure_Security_Insights
GrantType True String authorization_code o client_credentials
TokenEndpoint True String Dirección URL para intercambiar código con token válido en authorization_code concesión o identificador de cliente y secreto con token válido en client_credentials concesión.
TokenEndpointHeaders Object Objeto de valor de clave opcional para enviar encabezados personalizados al servidor de tokens
TokenEndpointQueryParameters Object Objeto de valor de clave opcional para enviar parámetros de consulta personalizados al servidor de tokens
AuthorizationEndpoint True String Dirección URL del consentimiento del usuario para authorization_code el flujo
AuthorizationEndpointHeaders Object Objeto de valor de clave opcional para enviar encabezados personalizados al servidor de autenticación
AuthorizationEndpointQueryParameters Object Un par de valores de clave opcional usado en la solicitud de flujo de código de autorización de OAuth2

El flujo de código de autenticación es para capturar datos en nombre de los permisos de un usuario y las credenciales de cliente es para capturar datos con permisos de aplicación. El servidor de datos concede acceso a la aplicación. Dado que no hay ningún usuario en el flujo de credenciales de cliente, no se necesita ningún punto de conexión de autorización, solo se necesita un punto de conexión de token.

Ejemplo: concesión de código de autenticación de OAuth2

"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"
}

Ejemplo:

"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"
}

Configuración de la solicitud

En la sección de solicitud se define cómo el conector de datos ccp envía solicitudes al origen de datos, como el punto de conexión de API y la frecuencia con la que sondear ese punto de conexión.

Campo Obligatorio Type Descripción
ApiEndpoint True String Dirección URL del servidor remoto. Define el punto de conexión del que se extraerán los datos.
RateLimitQPS Entero Define el número de llamadas o consultas permitidas en un segundo.
QueryWindowInMin Entero Define la ventana de consulta disponible en minutos. El mínimo es de 1 minuto. El valor predeterminado es 5 minutos.
HttpMethod Cadena Define el método de API: GET(valor predeterminado) o POST
QueryTimeFormat Cadena Define el formato de fecha y hora que espera el punto de conexión (servidor remoto). La CCP usa la fecha y hora actuales donde se use esta variable. Los valores posibles son las constantes: UnixTimestamp, UnixTimestampInMills o cualquier otra representación válida de fecha y hora, por ejemplo: yyyy-MM-dd, MM/dd/yyyy HH:mm:ss
el valor predeterminado es ISO 8601 UTC
RetryCount Entero (1...6) Define los 6 reintentos permitidos 1 para recuperarse de un error. El valor predeterminado es 3.
TimeoutInSeconds Entero (1...180) Define el tiempo de espera de la solicitud, en segundos. Valor predeterminado: 20
IsPostPayloadJson Booleano Determina si la carga de POST está en formato JSON. Valor predeterminado: false
Encabezados Object Pares clave-valor que definen los encabezados de solicitud.
QueryParameters Object Pares clave-valor que definen los parámetros de consulta de solicitud.
StartTimeAttributeName True cuando EndTimeAttributeName se establece Cadena Define el nombre del parámetro de consulta para la hora de inicio de la consulta. Vea el ejemplo.
EndTimeAttributeName True cuando StartTimeAttributeName se establece Cadena Define el nombre del parámetro de consulta para la hora de finalización de la consulta.
QueryTimeIntervalAttributeName Cadena Si el punto de conexión requiere un formato especializado para consultar los datos en un período de tiempo, use esta propiedad con los QueryTimeIntervalPrependQueryTimeIntervalDelimiter parámetros y . Vea el ejemplo.
QueryTimeIntervalPrepend True cuando QueryTimeIntervalAttributeName se establece Cadena Consulte QueryTimeIntervalAttributeName.
QueryTimeIntervalDelimiter True cuando QueryTimeIntervalAttributeName se establece Cadena Consulte QueryTimeIntervalAttributeName.
QueryParametersTemplate Cadena Plantilla de consulta que se usará al pasar parámetros en escenarios avanzados.
br>Por ejemplo: "queryParametersTemplate": "{'cid': 1234567, 'cmd': 'reporting', 'format': 'siem', 'data': { 'from': '{_QueryWindowStartTime}', 'to': '{_QueryWindowEndTime}'}, '{_APIKeyName}': '{_APIKey}'}"

Cuando la API requiere parámetros complejos, use queryParameters o queryParametersTemplate que incluya algunas variables integradas.

Variable integrada para su uso en queryParameters para su uso en queryParametersTemplate
_QueryWindowStartTime
_QueryWindowEndTime
_APIKeyName no
_APIKey no

Ejemplo de StartTimeAttributeName

Considere este ejemplo:

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

La consulta enviada al servidor remoto es: https://www.example.com?from={QueryTimeFormat}&until={QueryTimeFormat + QueryWindowInMin}

Ejemplo de QueryTimeIntervalAttributeName

Considere este ejemplo:

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

La consulta enviada al servidor remoto es: https://www.example.com?interval=time:{QueryTimeFormat}..{QueryTimeFormat + QueryWindowInMin}

Solicitar ejemplos de uso de Microsoft Graph como API de origen de datos

En este ejemplo se consultan mensajes con un parámetro de consulta de filtro. Para obtener más información, consulte Parámetros de consulta de 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 "
}

En el ejemplo anterior se envía una GET solicitud a https://graph.microsoft.com/v1.0/me/messages?filter=receivedDateTime gt {time of request} and receivedDateTime lt 2019-09-01T17:00:00.0000000. La marca de tiempo se actualiza cada queryWindowInMin vez.

Los mismos resultados se logran con este ejemplo:

"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}"
  }
}

Otra opción es cuando el origen de datos espera 2 parámetros de consulta, uno para la hora de inicio y otro para la hora de finalización.

Ejemplo:

"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",
}

Esto envía una GET solicitud a https://graph.microsoft.com/me/calendarView?startDateTime=2019-09-01T09:00:00.0000000&endDateTime=2019-09-01T17:00:00.0000000

Para consultas complejas, use QueryParametersTemplate. En este ejemplo siguiente se envía una POST solicitud con parámetros en el cuerpo.

Ejemplo:

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}))\"}"
}

Configuración de respuesta

Defina el control de respuestas del conector de datos con los parámetros siguientes:

Campo Obligatorio Type Descripción
EventsJsonPaths True Lista de cadenas Define la ruta de acceso al mensaje en el JSON de respuesta. Una expresión de ruta de acceso JSON especifica una ruta de acceso a un elemento o un conjunto de elementos en una estructura JSON
SuccessStatusJsonPath Cadena Define la ruta de acceso al mensaje de operación correcta en el JSON de respuesta. Cuando se define este parámetro, también se debe definir el SuccessStatusValue parámetro .
SuccessStatusValue Cadena Define la ruta de acceso al valor del mensaje de operación correcta en el JSON de respuesta
IsGzipCompressed Booleano Determina si la respuesta se comprime en un archivo gzip.
format True String json, csv o xml
CompressionAlgo Cadena Algoritmo de compresión, ya sea multi-gzip o deflate. Para el algoritmo de compresión gzip, solo tiene que configurar IsGzipCompressed para True en lugar de establecer un valor para este parámetro.
CsvDelimiter Cadena Si el formato de respuesta es CSV y desea cambiar el delimitador CSV predeterminado de ","
HasCsvBoundary Booleano Indica si los datos CSV tienen un límite
HasCsvHeader Booleano Indica si los datos CSV tienen un encabezado, el valor predeterminado es True
CsvEscape Cadena Carácter de escape para un límite de campo, el valor predeterminado es "

Por ejemplo, un CSV con encabezados id,name,avg y una fila de datos que contienen espacios como 1,"my name",5.5 requiere el límite del " campo.
ConvertChildPropertiesToArray Booleano Caso especial en el que el servidor remoto devuelve un objeto en lugar de una lista de eventos donde cada propiedad tiene datos en él.

Nota:

La especificación RFC4180 analiza el tipo de formato CSV.

Ejemplos de configuración de respuesta

Se espera una respuesta del servidor con formato JSON, con los datos solicitados en el valor de la propiedad. El estado de la propiedad de respuesta indica que se ingieren los datos solo si el valor es success.

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

La respuesta esperada de este ejemplo se prepara para un CSV sin encabezado.

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

Configuración de paginación

Cuando el origen de datos no puede enviar toda la carga de respuesta a la vez, el conector de datos ccp debe saber cómo recibir partes de los datos en las páginas de respuesta. Los tipos de paginación entre los que elegir son:

Tipo de paginación factor de decisión
¿La respuesta de la API tiene vínculos a las páginas siguientes y anteriores?
¿La respuesta de la API tiene un token o cursor para las páginas siguientes y anteriores?
¿La respuesta de la API admite un parámetro para el número de objetos que se omitirán al paginar?

Configuración de LinkHeader o PersistentLinkHeader

El tipo de paginación más común es cuando una API de origen de datos de servidor proporciona direcciones URL a las páginas de datos siguientes y anteriores. Para obtener más información sobre la especificación de encabezado de vínculo, consulte RFC 5988.

LinkHeader la paginación significa que la respuesta de la API incluye:

  • encabezado de Link respuesta HTTP
  • o una ruta de acceso JSON para recuperar el vínculo del cuerpo de la respuesta.

PersistentLinkHeader la paginación tiene las mismas propiedades que LinkHeader, excepto que el encabezado de vínculo persiste en el almacenamiento back-end. Esta opción permite paginar vínculos entre ventanas de consulta. Por ejemplo, algunas API no admiten las horas de inicio o las horas de finalización de consultas. En su lugar, admiten un cursor del lado servidor. Los tipos de página persistente se pueden usar para recordar el cursor del lado servidor. Para obtener más información, consulte ¿Qué es un cursor?.

Nota:

Solo puede haber una consulta en ejecución para el conector con PersistentLinkHeader para evitar condiciones de carrera en el cursor del lado servidor. Esto puede afectar a la latencia.

Campo Obligatorio Type Descripción
LinkHeaderTokenJsonPath False Cadena Use esta propiedad para indicar dónde obtener el valor en el cuerpo de la respuesta.

Por ejemplo, si el origen de datos devuelve el siguiente JSON: { nextPage: "foo", value: [{data}]}LinkHeaderTokenJsonPath$.nextPage
PageSize False Entero Número de eventos por página
PageSizeParameterName False Cadena Nombre del parámetro de consulta para el tamaño de página

Estos son algunos ejemplos:

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

Configurar NextPageUrl

NextPageUrl la paginación significa que la respuesta de la API incluye un vínculo complejo en el cuerpo de la respuesta similar a LinkHeader, pero la dirección URL se incluye en el cuerpo de la respuesta en lugar del encabezado.

Campo Obligatorio Type Descripción
PageSize False Entero Número de eventos por página
PageSizeParameterName False Cadena Nombre del parámetro de consulta para el tamaño de página
NextPageUrl False Cadena Solo si el conector es para coralogix API
NextPageUrlQueryParameters False Pares de valor clave de objeto: adición de parámetros de consulta personalizados a cada solicitud de la página siguiente
NextPageParaName False Cadena Determina el nombre de la página siguiente en la solicitud.
HasNextFlagJsonPath False Cadena Define la ruta de acceso al atributo de marca HasNextPage.
NextPageRequestHeader False Cadena Determina el nombre de encabezado de la página siguiente en la solicitud.
NextPageUrlQueryParametersTemplate False Cadena Solo si el conector es para coralogix API

Ejemplo:

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\")}" 
}

Configurar NextPageToken o PersistentToken

NextPageToken la paginación usa un token (un hash o un cursor) que representa el estado de la página actual. El token se incluye en la respuesta de la API y el cliente lo anexa a la siguiente solicitud para capturar la página siguiente. Este método se usa a menudo cuando el servidor necesita mantener el estado exacto entre las solicitudes.

PersistentToken paginación usa un token que conserva el lado servidor. El servidor recuerda el último token recuperado por el cliente y proporciona el siguiente token en las solicitudes posteriores. El cliente continúa donde se dejó incluso si realiza nuevas solicitudes más adelante.

Campo Obligatorio Type Descripción
PageSize False Entero Número de eventos por página
PageSizeParameterName False string Nombre del parámetro de consulta para el tamaño de página
NextPageTokenJsonPath False string Ruta de acceso JSON para el token de página siguiente en el cuerpo de la respuesta.
NextPageTokenResponseHeader False string Si NextPageTokenJsonPath está vacío, use el token en este nombre de encabezado para la página siguiente.
NextPageParaName False string Determina el nombre de la página siguiente en la solicitud.
HasNextFlagJsonPath False string Define la ruta de acceso a un atributo de marca HasNextPage al determinar si quedan más páginas en la respuesta.
NextPageRequestHeader False string Determina el nombre de encabezado de la página siguiente en la solicitud.

Ejemplos:

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

Configurar desplazamiento

Offset paginación especifica el número de páginas que se van a omitir y un límite en el número de eventos que se van a recuperar por página en la solicitud. Los clientes capturan un intervalo específico de elementos del conjunto de datos.

Campo Obligatorio Type Descripción
PageSize False Entero Número de eventos por página
PageSizeParameterName False Cadena Nombre del parámetro de consulta para el tamaño de página
OffsetParaName False Cadena Nombre del parámetro de consulta de solicitud siguiente. La CCP calcula el valor de desplazamiento de cada solicitud (todos los eventos ingeridos + 1)

Ejemplo:

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

Configuración de DCR

Campo Obligatorio Type Descripción
DataCollectionEndpoint True String DCE (punto de conexión de recopilación de datos) por ejemplo: https://example.ingest.monitor.azure.com.
DataCollectionRuleImmutableId True String Identificador inmutable de DCR. Para encontrarlo, consulte la respuesta de creación de DCR o use la API de DCR.
StreamName True string Este valor es el streamDeclaration definido en dcR (el prefijo debe comenzar por Custom-)

Conector de datos CCP de ejemplo

Este es un ejemplo de todos los componentes del json del conector de datos CCP juntos.

{
   "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": ["$"]
      }
   }
}