Naslaginformatie over restApiPoller-gegevensconnector voor het Platform voor codeloze connectors
Als u een RestApiPoller
gegevensconnector wilt maken met het Codeless Connector Platform (CCP), gebruikt u deze verwijzing als aanvulling op de Documentatie voor Microsoft Sentinel REST API voor gegevensconnectors .
Elk dataConnector
vertegenwoordigt een specifieke verbinding van een Microsoft Sentinel-gegevensconnector. Eén gegevensconnector kan meerdere verbindingen hebben, waardoor gegevens van verschillende eindpunten worden opgehaald. De JSON-configuratie die met dit referentiedocument is gebouwd, wordt gebruikt om de implementatiesjabloon voor de CTP-gegevensconnector te voltooien.
Zie Een connector zonder code maken voor Microsoft Sentinel voor meer informatie.
Gegevensconnectors - Maken of bijwerken
Raadpleeg de bewerking Maken of Bijwerken in de REST API-documenten om de nieuwste stabiele of preview-API-versie te vinden. Het verschil tussen het maken en de updatebewerking is dat voor de update de etag-waarde is vereist.
PUT-methode
https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.OperationalInsights/workspaces/{{workspaceName}}/providers/Microsoft.SecurityInsights/dataConnectors/{{dataConnectorId}}?api-version={{apiVersion}}
URI-parameters
Zie Gegevensconnectors - URI-parameters maken of bijwerken voor meer informatie over de nieuwste API-versie.
Name | Beschrijving |
---|---|
dataConnectorId | De id van de gegevensconnector moet een unieke naam zijn en is hetzelfde als de name parameter in de aanvraagbody. |
resourceGroupName | De naam van de resourcegroep, niet hoofdlettergevoelig. |
subscriptionId | De id van het doelabonnement. |
workspaceName | De naam van de werkruimte, niet de id. Regex-patroon: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$ |
api-version | De API-versie die voor deze bewerking moet worden gebruikt. |
Aanvraagtekst
De aanvraagbody voor een RestApiPoller
CTP-gegevensconnector heeft de volgende structuur:
{
"name": "{{dataConnectorId}}",
"kind": "RestApiPoller",
"etag": "",
"properties": {
"connectorDefinitionName": "",
"auth": {},
"request": {},
"response": {},
"paging": "",
"dcrConfig": ""
}
}
RestApiPoller
RestApiPoller vertegenwoordigt een API Poller CCP-gegevensconnector waarin u nettoladingen voor paging, autorisatie en aanvraag/antwoord voor uw gegevensbron aanpast.
Naam | Vereist | Type | Description |
---|---|---|---|
name | Waar | tekenreeks | De unieke naam van de verbinding die overeenkomt met de URI-parameter |
soort | Waar | tekenreeks | Moet RestApiPoller zijn |
etag | GUID | Laat leeg voor het maken van nieuwe connectors. Voor updatebewerkingen moet de etag overeenkomen met de etag (GUID) van de bestaande connector. | |
properties.connectorDefinitionName | tekenreeks | De naam van de DataConnectorDefinition-resource die de ui-configuratie van de gegevensconnector definieert. Zie Definitie van gegevensconnector voor meer informatie. | |
Eigenschappen.Auth | Waar | Geneste JSON | Beschrijft de verificatie-eigenschappen voor het peilen van de gegevens. Zie de verificatieconfiguratie voor meer informatie. |
Eigenschappen.verzoek | Waar | Geneste JSON | Beschrijft de nettolading van de aanvraag voor het peilen van de gegevens, zoals het API-eindpunt. Zie de aanvraagconfiguratie voor meer informatie. |
Eigenschappen.antwoord | Waar | Geneste JSON | Beschrijft het antwoordobject en geneste bericht dat wordt geretourneerd door de API bij het peilen van de gegevens. Zie de antwoordconfiguratie voor meer informatie. |
Eigenschappen.Paging | Geneste JSON | Beschrijft de nettolading van paginering bij het peilen van de gegevens. Zie de pagingconfiguratie voor meer informatie. | |
Eigenschappen.dcrConfig | Geneste JSON | Vereiste parameters wanneer de gegevens worden verzonden naar een DCR (Data Collection Rule). Zie DCR-configuratie voor meer informatie. |
Verificatieconfiguratie
De CCP ondersteunt de volgende verificatietypen:
Notitie
DE implementatie van CCP OAuth2 biedt geen ondersteuning voor referenties voor clientcertificaten.
Als best practice gebruikt u parameters in de sectie verificatie in plaats van hardcoderingsreferenties. Zie Vertrouwelijke invoer beveiligen voor meer informatie.
Als u de implementatiesjabloon wilt maken die ook parameters gebruikt, moet u de parameters in deze sectie escapen met een extra begin [
. Hierdoor kunnen de parameters een waarde toewijzen op basis van de interactie van de gebruiker met de connector. Zie Sjabloonexpressies escape-tekens voor meer informatie.
Als u de referenties wilt inschakelen die moeten worden ingevoerd vanuit de gebruikersinterface, vereist instructions
de connectorUIConfig
sectie de gewenste parameters. Zie de naslaginformatie over definities van gegevensconnector voor het Platform voor codeloze connectors voor meer informatie.
Basisverificatie
Veld | Vereist | Type |
---|---|---|
Gebruikersnaam | Waar | tekenreeks |
Wachtwoord | Waar | tekenreeks |
Voorbeeld van basisverificatie met parameters die zijn gedefinieerd in connectorUIconfig
:
"auth": {
"type": "Basic",
"UserName": "[[parameters('username')]",
"Password": "[[parameters('password')]"
}
APIKey
Veld | Vereist | Type | Description | Default value |
---|---|---|---|---|
ApiKey | Waar | tekenreeks | gebruikersgeheimsleutel | |
ApiKeyName | tekenreeks | naam van de URI-header met de ApiKey-waarde | Authorization |
|
ApiKeyIdentifier | tekenreeks | tekenreekswaarde om het token vooraf te laten gaan | token |
|
IsApiKeyInPostPayload | boolean | geheim verzenden in POST-hoofdtekst in plaats van koptekst | false |
Voorbeelden van APIKey-verificatie:
"auth": {
"type": "APIKey",
"ApiKey": "[[parameters('apikey')]",
"ApiKeyName": "X-MyApp-Auth-Header",
"ApiKeyIdentifier": "Bearer"
}
Dit voorbeeld resulteert in het geheim dat is gedefinieerd op basis van gebruikersinvoer die is verzonden in de volgende header: X-MyApp-Auth-Header: Bearer apikey
"auth": {
"type": "APIKey",
"ApiKey": "123123123",
}
In dit voorbeeld worden de standaardwaarden gebruikt en wordt de volgende header weergegeven: Autorisatie: token 123123123
"auth": {
"type": "APIKey",
"ApiKey": "123123123",
"ApiKeyName": ""
}
Omdat het ApiKeyName
expliciet is ingesteld op ""
, is het resultaat de volgende header: Autorisatie: 123123123
OAuth2
Het Platform voor codeloze connectors ondersteunt OAuth 2.0-autorisatiecodetoekenningen en clientreferenties. Het toekenningstype Autorisatiecode wordt gebruikt door vertrouwelijke en openbare clients om een autorisatiecode voor een toegangstoken in te wisselen. Nadat de gebruiker via de omleidings-URL naar de client terugkeert, krijgt de toepassing de autorisatiecode van de URL en gebruikt deze om een toegangstoken aan te vragen.
Veld | Vereist | Type | Description |
---|---|---|---|
ClientId | Waar | String | De client-id |
ClientSecret | Waar | String | Het clientgeheim |
AuthorizationCode | Waar wanneer grantType = authorization_code |
String | Als het toekenningstype deze veldwaarde is authorization_code , wordt de autorisatiecode geretourneerd door de verificatie-service. |
Scope | Waar voor authorization_code toekenningstypeoptioneel voor client_credentials toekenningstype |
String | Een door spaties gescheiden lijst met bereiken voor toestemming van de gebruiker. Zie OAuth2-bereiken en -machtigingen voor meer informatie. |
RedirectUri | Waar wanneer grantType = authorization_code |
String | URL voor omleiding moet zijn https://portal.azure.com/TokenAuthorize/ExtensionName/Microsoft_Azure_Security_Insights |
GrantType | Waar | String | authorization_code of client_credentials |
TokenEndpoint | Waar | String | URL voor het uitwisselen van code met een geldig token in authorization_code grant of client-id en geheim met geldig token in client_credentials grant. |
TokenEndpointHeaders | Object | Een optioneel sleutelwaardeobject voor het verzenden van aangepaste headers naar tokenserver | |
TokenEndpointQueryParameters | Object | Een optioneel sleutelwaardeobject voor het verzenden van aangepaste queryparameters naar tokenserver | |
AuthorizationEndpoint | Waar | String | URL voor gebruikerstoestemming voor authorization_code stroom |
AuthorizationEndpointHeaders | Object | Een optioneel sleutelwaardeobject voor het verzenden van aangepaste headers naar de verificatieserver | |
AuthorizationEndpointQueryParameters | Object | Een optioneel sleutelwaardepaar dat wordt gebruikt in de OAuth2-autorisatiecodestroomaanvraag |
De verificatiecodestroom is bedoeld voor het ophalen van gegevens namens de machtigingen van een gebruiker en clientreferenties is voor het ophalen van gegevens met toepassingsmachtigingen. De gegevensserver verleent toegang tot de toepassing. Omdat er geen gebruiker is in de clientreferentiestroom, is er geen autorisatie-eindpunt nodig, alleen een tokeneindpunt.
Voorbeeld: OAuth2-toekenningstype 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"
}
Voorbeeld: OAuth2-toekenningstype 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
Voorbeeld: JSON-webtoken (JWT)
"auth": {
"type": "JwtToken",
"userName": {
"key":"username",
"value":"[[parameters('UserName')]"
},
"password": {
"key":"password",
"value":"[[parameters('Password')]"
},
"TokenEndpoint": {"https://token_endpoint.contoso.com"},
"IsJsonRequest": true
}
Aanvraagconfiguratie
In de aanvraagsectie wordt gedefinieerd hoe de CTP-gegevensconnector aanvragen verzendt naar uw gegevensbron, zoals het API-eindpunt en hoe vaak dat eindpunt moet worden gepeild.
Veld | Vereist | Type | Description |
---|---|---|---|
ApiEndpoint | Waar | String | URL voor externe server. Hiermee definieert u het eindpunt waaruit gegevens moeten worden opgehaald. |
RateLimitQPS | Geheel getal | Hiermee definieert u het aantal aanroepen of query's dat in een seconde is toegestaan. | |
QueryWindowInMin | Geheel getal | Hiermee definieert u het beschikbare queryvenster in minuten. Minimaal 1 minuut. Standaard is dit 5 minuten. | |
HttpMethod | String | Definieert de API-methode: GET (standaard) of POST |
|
QueryTimeFormat | String | Hiermee definieert u de datum- en tijdnotatie die het eindpunt (externe server) verwacht. De CTP gebruikt de huidige datum en tijd waar deze variabele ook wordt gebruikt. Mogelijke waarden zijn de constanten: UnixTimestamp of UnixTimestampInMills een andere geldige weergave van datum/tijd, bijvoorbeeld: yyyy-MM-dd , MM/dd/yyyy HH:mm:ss standaard is ISO 8601 UTC |
|
RetryCount | Geheel getal (1...6) | Hiermee definieert u 1 nieuwe 6 pogingen die zijn toegestaan om te herstellen na een fout. Standaard is 3 . |
|
Time-outInSeconds | Geheel getal (1...180) | Hiermee definieert u de time-out van de aanvraag, in seconden. Standaard is 20 |
|
IsPostPayloadJson | Booleaanse waarde | Bepaalt of de POST-nettolading de JSON-indeling heeft. Standaard is false |
|
Kopteksten | Object | Sleutel-waardeparen die de aanvraagheaders definiëren. | |
QueryParameters | Object | Sleutel-waardeparen waarmee de queryparameters van de aanvraag worden gedefinieerd. | |
StartTimeAttributeName | Waar wanneer EndTimeAttributeName is ingesteld |
String | Hiermee definieert u de naam van de queryparameter voor de begintijd van de query. Zie voorbeeld. |
EndTimeAttributeName | Waar wanneer StartTimeAttributeName is ingesteld |
String | Hiermee definieert u de naam van de queryparameter voor de eindtijd van de query. |
QueryTimeIntervalAttributeName | String | Als voor het eindpunt een gespecialiseerde indeling is vereist voor het uitvoeren van query's op de gegevens in een tijdsbestek, gebruikt u deze eigenschap met de QueryTimeIntervalPrepend en de QueryTimeIntervalDelimiter parameters. Zie voorbeeld. |
|
QueryTimeIntervalPrepend | Waar wanneer QueryTimeIntervalAttributeName is ingesteld |
String | Zie QueryTimeIntervalAttributeName |
QueryTimeIntervalDelimiter | Waar wanneer QueryTimeIntervalAttributeName is ingesteld |
String | Zie QueryTimeIntervalAttributeName |
QueryParametersTemplate | String | Querysjabloon die moet worden gebruikt bij het doorgeven van parameters in geavanceerde scenario's. br>bijvoorbeeld: "queryParametersTemplate": "{'cid': 1234567, 'cmd': 'reporting', 'format': 'siem', 'data': { 'from': '{_QueryWindowStartTime}', 'to': '{_QueryWindowEndTime}'}, '{_APIKeyName}': '{_APIKey}'}" |
Wanneer voor de API complexe parameters zijn vereist, gebruikt u de queryParameters
of queryParametersTemplate
die enkele ingebouwde variabelen bevat.
ingebouwde variabele | voor gebruik in queryParameters |
voor gebruik in queryParametersTemplate |
---|---|---|
_QueryWindowStartTime |
ja | ja |
_QueryWindowEndTime |
ja | ja |
_APIKeyName |
nee | ja |
_APIKey |
nee | ja |
Voorbeeld van StartTimeAttributeName
Kijk eens naar dit voorbeeld:
StartTimeAttributeName
=from
EndTimeAttributeName
=until
ApiEndpoint
=https://www.example.com
De query die naar de externe server wordt verzonden, is: https://www.example.com?from={QueryTimeFormat}&until={QueryTimeFormat + QueryWindowInMin}
Voorbeeld van QueryTimeIntervalAttributeName
Kijk eens naar dit voorbeeld:
QueryTimeIntervalAttributeName
=interval
QueryTimeIntervalPrepend
=time:
QueryTimeIntervalDelimiter
=..
ApiEndpoint
=https://www.example.com
De query die naar de externe server wordt verzonden, is: https://www.example.com?interval=time:{QueryTimeFormat}..{QueryTimeFormat + QueryWindowInMin}
Voorbeelden aanvragen met Behulp van Microsoft Graph als gegevensbron-API
In dit voorbeeld worden berichten met een filterqueryparameter opgevraagd. Zie Microsoft Graph API-queryparameters voor meer informatie.
"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 "
}
In het vorige voorbeeld wordt een GET
aanvraag verzonden naar https://graph.microsoft.com/v1.0/me/messages?filter=receivedDateTime gt {time of request} and receivedDateTime lt 2019-09-01T17:00:00.0000000
. De tijdstempel wordt telkens queryWindowInMin
bijgewerkt.
Dezelfde resultaten worden bereikt met dit voorbeeld:
"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}"
}
}
Een andere optie is wanneer de gegevensbron twee queryparameters verwacht, één voor de begintijd en één voor de eindtijd.
Voorbeeld:
"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",
}
Hiermee wordt een GET
aanvraag verzonden naar https://graph.microsoft.com/me/calendarView?startDateTime=2019-09-01T09:00:00.0000000&endDateTime=2019-09-01T17:00:00.0000000
Gebruik QueryParametersTemplate
voor complexe query's . In dit volgende voorbeeld wordt een POST
aanvraag met parameters in de hoofdtekst verzonden.
Voorbeeld:
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}))\"}"
}
Antwoordconfiguratie
Definieer de reactieafhandeling van uw gegevensconnector met de volgende parameters:
Veld | Vereist | Type | Description |
---|---|---|---|
EventsJsonPaths | Waar | Lijst met tekenreeksen | Hiermee definieert u het pad naar het bericht in de antwoord-JSON. Een JSON-padexpressie geeft een pad naar een element of een set elementen op in een JSON-structuur |
SuccessStatusJsonPath | String | Definieert het pad naar het succesbericht in de antwoord-JSON. Wanneer deze parameter is gedefinieerd, moet ook de SuccessStatusValue parameter worden gedefinieerd. |
|
SuccessStatusValue | String | Definieert het pad naar de waarde van het geslaagde bericht in de antwoord-JSON | |
IsGzipCompressed | Booleaanse waarde | Bepaalt of het antwoord is gecomprimeerd in een gzip-bestand | |
format | Waar | String | json of csv xml |
CompressionAlgo | String | Het algoritme voor compressies, ofwel multi-gzip deflate . Voor gzip-compressie-algoritme hoeft u alleen maar te configureren IsGzipCompressed in True plaats van een waarde in te stellen voor deze parameter. |
|
CsvDelimiter | String | Als de antwoordindeling CSV is en u het standaard-CSV-scheidingsteken van "," |
|
HasCsvBoundary | Booleaanse waarde | Aangeven of CSV-gegevens een grens hebben | |
HasCsvHeader | Booleaanse waarde | Geef aan of CSV-gegevens een koptekst hebben, de standaardwaarde is True |
|
CsvEscape | String | Escape-teken voor een veldgrens, standaard is " Een CSV met kopteksten id,name,avg en een rij met gegevens die spaties bevatten, zoals 1,"my name",5.5 de " veldgrens is vereist. |
|
ConvertChildPropertiesToArray | Booleaanse waarde | Speciaal geval waarin de externe server een object retourneert in plaats van een lijst met gebeurtenissen waarin elke eigenschap gegevens bevat. |
Notitie
Het type CSV-indeling wordt geparseerd door de RFC4180 specificatie.
Voorbeelden van antwoordconfiguratie
Er wordt een serverantwoord met JSON-indeling verwacht, met de aangevraagde gegevens in de eigenschapswaarde. De status van de antwoordeigenschap geeft aan dat de gegevens alleen moeten worden opgenomen als de waarde issuccess
.
"response": {
"EventsJsonPaths ": ["$.value"],
"format": "json",
"SuccessStatusJsonPath": "$.status",
"SuccessStatusValue": "success",
"IsGzipCompressed: true
}
Het verwachte antwoord in dit voorbeeld bereidt zich voor op een CSV zonder header.
"response": {
"EventsJsonPaths ": ["$"],
"format": "csv",
"HasCsvHeader": false
}
Configuratie van paging
Wanneer de gegevensbron de volledige nettolading van het antwoord niet tegelijk kan verzenden, moet de CTP-gegevensconnector weten hoe delen van de gegevens in antwoordpagina's moeten worden ontvangen. De pagingtypen waaruit u kunt kiezen zijn:
Pagingstype | beslissingsfactor |
---|---|
Bevat het API-antwoord koppelingen naar volgende en vorige pagina's? | |
Heeft het API-antwoord een token of cursor voor de volgende en vorige pagina's? | |
Ondersteunt het API-antwoord een parameter voor het aantal objecten dat moet worden overgeslagen bij het wisselen? |
LinkHeader of PersistentLinkHeader configureren
Het meest voorkomende pagieringstype is wanneer een SERVERgegevensbron-API URL's levert aan de volgende en vorige pagina's met gegevens. Zie RFC 5988 voor meer informatie over de specificatie van de koppelingsheader.
LinkHeader
paging betekent dat het API-antwoord een van de volgende opties bevat:
- de
Link
HTTP-antwoordheader - of een JSON-pad om de koppeling op te halen uit de hoofdtekst van het antwoord.
PersistentLinkHeader
paging heeft dezelfde eigenschappen als LinkHeader
, behalve de koppelingsheader blijft behouden in back-endopslag. Met deze optie kunt u pagingkoppelingen tussen queryvensters inschakelen. Sommige API's bieden bijvoorbeeld geen ondersteuning voor begin- of eindtijden van query's. In plaats daarvan ondersteunen ze een cursor aan de serverzijde. Permanente paginatypen kunnen worden gebruikt om de cursor aan de serverzijde te onthouden. Zie Wat is een cursor? voor meer informatie.
Notitie
Er kan slechts één query worden uitgevoerd voor de connector met PersistentLinkHeader om racevoorwaarden op de cursor aan de serverzijde te voorkomen. Dit kan van invloed zijn op de latentie.
Veld | Vereist | Type | Description |
---|---|---|---|
LinkHeaderTokenJsonPath | Onwaar | String | Gebruik deze eigenschap om aan te geven waar de waarde moet worden opgehaald in de hoofdtekst van het antwoord. Als de gegevensbron bijvoorbeeld de volgende JSON retourneert, { nextPage: "foo", value: [{data}]} is dat LinkHeaderTokenJsonPath $.nextPage |
Pagesize | Onwaar | Geheel getal | Hoeveel gebeurtenissen per pagina |
PageSizeParameterName | Onwaar | String | Naam van queryparameter voor het paginaformaat |
Hieronder volgen een aantal voorbeelden:
Paging: {
"pagingType": "LinkHeader",
"linkHeaderTokenJsonPath" : "$.metadata.links.next"
}
Paging: {
"pagingType" : "PersistentLinkHeader",
"pageSizeParameterName" : "limit",
"pageSize" : 500
}
NextPageUrl configureren
NextPageUrl
paging betekent dat het API-antwoord een complexe koppeling bevat in de hoofdtekst van het antwoord, vergelijkbaar met LinkHeader
, maar dat de URL is opgenomen in de hoofdtekst van het antwoord in plaats van de header.
Veld | Vereist | Type | Description |
---|---|---|---|
Pagesize | Onwaar | Geheel getal | Hoeveel gebeurtenissen per pagina |
PageSizeParameterName | Onwaar | String | Naam van queryparameter voor het paginaformaat |
NextPageUrl | Onwaar | String | Alleen als de connector voor Coralogix-API is |
NextPageUrlQueryParameters | Onwaar | Waardeparen van objectsleutels: aangepaste queryparameter toevoegen aan elke aanvraag voor de volgende pagina | |
NextPageParaName | Onwaar | String | Bepaalt de naam van de volgende pagina in de aanvraag. |
HasNextFlagJsonPath | Onwaar | String | Hiermee definieert u het pad naar het vlagkenmerk HasNextPage |
NextPageRequestHeader | Onwaar | String | Bepaalt de naam van de volgende paginakoptekst in de aanvraag. |
NextPageUrlQueryParametersTemplate | Onwaar | String | Alleen als de connector voor Coralogix-API is |
Voorbeeld:
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 of PersistentToken configureren
NextPageToken
paginering maakt gebruik van een token (een hash of een cursor) die de status van de huidige pagina vertegenwoordigt. Het token is opgenomen in het API-antwoord en de client voegt het toe aan de volgende aanvraag om de volgende pagina op te halen. Deze methode wordt vaak gebruikt wanneer de server de exacte status tussen aanvragen moet onderhouden.
PersistentToken
paginering maakt gebruik van een token dat de serverzijde persistent maakt. De server onthoudt het laatste token dat door de client is opgehaald en levert het volgende token in volgende aanvragen. De client gaat verder waar het was gebleven, zelfs als er later nieuwe aanvragen worden ingediend.
Veld | Vereist | Type | Description |
---|---|---|---|
Pagesize | Onwaar | Geheel getal | Hoeveel gebeurtenissen per pagina |
PageSizeParameterName | Onwaar | tekenreeks | Naam van queryparameter voor het paginaformaat |
NextPageTokenJsonPath | Onwaar | tekenreeks | JSON-pad voor het volgende paginatoken in de hoofdtekst van het antwoord. |
NextPageTokenResponseHeader | Onwaar | tekenreeks | Als NextPageTokenJsonPath dit leeg is, gebruikt u het token in deze headernaam voor de volgende pagina. |
NextPageParaName | Onwaar | tekenreeks | Bepaalt de naam van de volgende pagina in de aanvraag. |
HasNextFlagJsonPath | Onwaar | tekenreeks | Definieert het pad naar een HasNextPage-vlagkenmerk bij het bepalen of er meer pagina's in het antwoord staan. |
NextPageRequestHeader | Onwaar | tekenreeks | Bepaalt de naam van de volgende paginakoptekst in de aanvraag. |
Voorbeelden:
Paging: {
"pagingType" : "NextPageToken",
"nextPageRequestHeader" : "ETag",
"nextPageTokenResponseHeader" : "ETag"
}
Paging: {
"pagingType" : "PersistentToken",
"nextPageParaName" : "gta",
"nextPageTokenJsonPath" : "$.alerts[-1:]._id"
}
Verschuiving configureren
Offset
paginering geeft het aantal pagina's op dat moet worden overgeslagen en een limiet voor het aantal gebeurtenissen dat per pagina in de aanvraag moet worden opgehaald. Clients halen een specifiek bereik van items op uit de gegevensset.
Veld | Vereist | Type | Description |
---|---|---|---|
Pagesize | Onwaar | Geheel getal | Hoeveel gebeurtenissen per pagina |
PageSizeParameterName | Onwaar | String | Naam van queryparameter voor het paginaformaat |
OffsetParaName | Onwaar | String | De naam van de volgende aanvraagqueryparameter. De CTP berekent de offsetwaarde voor elke aanvraag (alle opgenomen gebeurtenissen + 1) |
Voorbeeld:
Paging: {
"pagingType": "Offset",
"offsetParaName": "offset"
}
DCR-configuratie
Veld | Vereist | Type | Description |
---|---|---|---|
DataCollectionEndpoint | Waar | String | DCE (eindpunt voor gegevensverzameling) bijvoorbeeld: https://example.ingest.monitor.azure.com . |
DataCollectionRuleImmutableId | Waar | String | De onveranderbare DCR-id. Zoek het door het dcr-antwoord te bekijken of de DCR-API te gebruiken |
StreamName | Waar | tekenreeks | Deze waarde is de streamDeclaration gedefinieerde in de DCR (voorvoegsel moet beginnen met Custom-) |
Voorbeeld van CCP-gegevensconnector
Hier volgt een voorbeeld van alle onderdelen van de CTP-gegevensconnector JSON samen.
{
"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": ["$"]
}
}
}