Werken met de Throttling-API

Met de Throttling-API kunt u uw throttling-configuraties maken, configureren en controleren om het aantal gebeurtenissen dat per seconde wordt verzonden te beperken.

Deze sectie bevat algemene informatie over het werken met de API. Een gedetailleerde API beschrijving is beschikbaar in ​ documentatie van Adobe Journey Optimizer APIs ​.

Doorzichtig

  • Één configuratie per organisatie: slechts wordt één configuratie momenteel toegestaan per organisatie. Er moet een configuratie worden gedefinieerd in een productiesandbox (opgegeven via x-sandbox-name in de koppen).

  • organisatie-vlakke toepassing: de configuratie van A wordt toegepast op organisatieniveau.

  • API grens behandeling: wanneer de grens die in API wordt geplaatst wordt bereikt, worden de verdere gebeurtenissen een rij gevormd tot 6 uren. Deze waarde kan niet worden gewijzigd.

  • maxHttpConnectionsparameter: De maxHttpConnections parameter is een optionele parameter die beschikbaar is in de API voor uitsnijden, zodat u alleen het aantal verbindingen kunt beperken dat Journey Optimizer opent voor het externe systeem. ​ Leer hoe te met het Kappen API ​ te werken

    Als u het aantal verbindingen wilt beperken maar die externe vraag ook wilt vertragen, kunt u twee configuraties, één throttling en één het in kaart brengen, op het zelfde eindpunt vormen. Beide configuraties kunnen voor één eindpunt coëxisteren. Als u ‘maxHttpConnections’ wilt instellen voor een vertraagd eindpunt, gebruikt u de Throttling-API om de vertragingsdrempel en de Capping-API in te stellen om ‘maxHttpConnections’ in te stellen. Wanneer u de API voor uitsnijden aanroept, kunt u de drempelwaarde voor uitlijnen instellen op iets hoger dan de drempelwaarde voor vertragen, zodat de uitlijningsregel in feite nooit wordt toegepast.

Throttling API description & Postman collection description

In de onderstaande tabel staan de beschikbare opdrachten voor de vertragings-API. De gedetailleerde informatie met inbegrip van verzoeksteekproeven, parameters, en antwoordformaten is beschikbaar in de ​ documentatie van Adobe Journey Optimizer APIs ​.

Methode
Pad
Beschrijving
POST
list/throttlingConfigs
Krijg een lijst van de throttling configuraties
POST
/throttlingConfigs
Een configuratie voor vertragen maken
POST
/throttlingConfigs/{uid}/opstellen
Implementeer een configuratie voor het vertragen
POST
/throttlingConfigs/{uid}/undeploy
Implementatie van een vertragingsconfiguratie ongedaan maken
POST
/throttlingConfigs/{uid}/canDeploy
Controleren of een throttling-configuratie kan worden geïmplementeerd
PUT
/throttlingConfigs/{uid}
Een throttingconfiguratie bijwerken
GET
/throttlingConfigs/{uid}
Een configuratie voor vertragen ophalen
DELETE
/throttlingConfigs/{uid}
Een configuratie met vertraagde invoer verwijderen

Bovendien is een inzameling van Postman beschikbaar ​ hier ​ om u in uw het testen configuratie te helpen.

Deze inzameling is opstelling geweest om de Variabele die inzameling van Postman te delen via de Integraties van de Console van Adobe I/O wordt geproduceerd ​ > probeert het uit > Download voor Postman, die een dossier van het Milieu van Postman met de geselecteerde integratiewaarden produceert.

Nadat u het bestand hebt gedownload en geüpload naar Postman, moet u drie variabelen toevoegen: {JO_HOST} , {BASE_PATH} en {SANDBOX_NAME} .

  • {JO_HOST} : Journey Optimizer URL van gateway.
  • {BASE_PATH} : ingangspunt voor de API.
  • {SANDBOX_NAME} : de kopbal x-zandbak-naam (bijvoorbeeld, “prod”) die aan de zandbaknaam beantwoordt waar de API verrichtingen zullen plaatsvinden. Zie het ​ zandbakenoverzicht ​ voor meer informatie.

Throtting-configuratie  configuration

Hier is de structuur van een throttling configuratie. naam en beschrijvings attributen zijn facultatief.

{
    "name": "<given name - free text>",
    "description": "<given description - free text>"
    "urlPattern": "<endpoint URL - wildcards are allowed>",
    "methods": [ "<HTTP method such as GET, POST, PUT>" ],
    "maxThroughput": <max call throughput>
}

Voorbeeld:

{
  "name": "throttling-config-external",
  "description": "example of throttling config for an external endpoint",
  "urlPattern": "https://api.example.org/data/2.5/*",
  "methods": ["POST", "PUT"],
  "maxThroughput": 4000
}
IMPORTANT
De configuratie zal slechts actief na het roepen van ​eindpunt opstellen.

Fouten

Wanneer het creëren van of het bijwerken van een configuratie, bevestigt het proces de bepaalde configuratie en keert de bevestigingsstatus terug die door zijn Unieke identiteitskaart wordt geïdentificeerd, of:

"ok" or "error"
IMPORTANT
De attributen maxThroughput, urlPattern en methodes zijn verplicht.
maxThroughput waarde moet in waaier 200-5000 zijn.

Wanneer het creëren van, het schrappen van of het opstellen van throttling configuratie, kunnen de volgende fouten voorkomen:

  • ERR_THROTTLING_CONFIG_100: throttling config: <mandatory attribute> vereist
  • ERR_THROTTLING_CONFIG_101: throttling config: maxThroughput is vereist en moet groter zijn dan of gelijk aan 200 en minder dan of gelijk aan 5.000
  • ERR_THROTTLING_CONFIG_104: throttling config: misvormd url patroon
  • ERR_THROTTLING_CONFIG_105: throttling config: de vervangingskaartjes niet toegestaan in gastheerdeel van het urlpatroon
  • ERR_THROTTLING_CONFIG_106: throttling config: ongeldige lading
  • THROTTLING_CONFIG_DELETE_FORBIDDEN_ERROR: 1456, “kan geen opgesteld throttling config schrappen. Implementatie ongedaan maken voordat deze wordt verwijderd”
  • THROTTLING_CONFIG_DELETE_ERROR: 1457, “kan vertragende config niet schrappen: onverwachte fout komt voor”
  • THROTTLING_CONFIG_DEPLOY_ERROR: 1458, “kan geen throttling config opstellen: onverwachte fout komt voor”
  • THROTTLING_CONFIG_UNDEPLOY_ERROR: 1459, “kan niet het opstellen van throttling config ongedaan maken: onverwachte fout komt voor”
  • THROTTLING_CONFIG_GET_ERROR: 1460, “kan geen throttling config krijgen: onverwachte fout komt voor”
  • THROTTLING_CONFIG_UPDATE_NOT_ACTIVE_ERROR: 1461, “kan niet update throttling config: runtime versie is niet actief”
  • THROTTLING_CONFIG_UPDATE_ERROR: 1462, “kan geen throttling config bijwerken: onverwachte fout komt voor”
  • THROTTLING_CONFIG_NON_PROD_SANDBOX_ERROR: 1463, “Bewerking niet toegestaan op throttling config: niet-prod zandbak”
  • THROTTLING_CONFIG_CREATE_ERROR: 1464, “kan geen throttling config tot stand brengen: onverwachte fout komt voor”
  • THROTTLING_CONFIG_CREATE_LIMIT_ERROR: 1465, “kan geen throttling config tot stand brengen: slechts één config toegestaan per org”
  • THROTTLING_CONFIG_ALREADY_DEPLOYED_ERROR: 14466, “kan geen throttling config opstellen: reeds opgesteld”
  • THROTTLING_CONFIG_NOT_FOUND_ERROR: 14467, “throttling config niet gevonden”
  • THROTTLING_CONFIG_NOT_DEPLOYED_ERROR: 14468, “kan geen throttling config ongedaan maken: nog niet opgesteld”

Voorbeelden van Fouten

Bij het maken van een config in een niet-prod-sandbox:

{
    "status": 400,
    "error": "{\"code\":1463,\"family\":\"INPUT_OUTPUT_ERROR\",\"message\":\"Operation not allowed on throttling config: non prod sandbox\",\"service\":\"vyg-authoring-api\",\"version\":\"ed87515\",\"context\":\"com.adobe.voyager.service.authoring.restapis.v1_0.ThrottlingConfigService:384\",\"schema\":\"throttlingConfigs$ui-tests\"}",
    "requestId": "5sgnAYXs8mpswwjAFEIaAU2faQYbtyHc"
}

Indien het opgegeven vakje niet bestaat:

{
    "status": 500,
    "error": "{\"code\":4000,\"family\":\"INTERNAL_ERROR\",\"message\":\"INTERNAL ERROR\",\"service\":\"vyg-authoring-api\",\"version\":\"ed87515\",\"context\":\"com.adobe.voyager.common.exceptions.ApiErrorException:43\"}",
    "requestId": "04ZJ4e5ki4bYs3lfO17a7hovRGewjvdK"
}

Wanneer het proberen om een andere config te creëren:

{
    "status": 400,
    "error": "{\"code\":1465,\"family\":\"INPUT_OUTPUT_ERROR\",\"message\":\"Can't create throttling config: only one config allowed per org\",\"service\":\"vyg-authoring-api\",\"version\":\"ed87515\",\"context\":\"com.adobe.voyager.service.authoring.restapis.v1_0.ThrottlingConfigService:108\",\"schema\":\"throttlingConfigs$prod\"}",
    "requestId": "A7ezT8JhOQT4WIAf1Fv7K2wCDA8281qM"
}

Levenscyclus van configuratie op runtimeniveau config

Wanneer een configuratie wordt gedecodeerd, wordt het duidelijk als inactief op runtime niveau en hangende gebeurtenissen worden verwerkt tijdens 24 uur. Deze wordt vervolgens verwijderd in de runtimeservice.

Nadat een configuratie is gedesgroepeerd, is het mogelijk om de configuratie bij te werken en opnieuw op te stellen. Hierdoor wordt een nieuwe runtimeconfiguratie gemaakt die in overweging zal worden genomen bij de uitvoering van de volgende acties.

Wanneer het bijwerken van een reeds opgestelde configuratie, wordt met de nieuwe waarden onmiddellijk rekening gehouden. De onderliggende systeembronnen worden automatisch aangepast. Dit is optimaal in vergelijking met undeploy dan herstelt de configuratie.

Voorbeelden van reacties responses

Creatie - POST

{
    "canDeploy": {
        "validationStatus": "ok"
    },
    "createdElement": {
        "name": "throttling-config-external",
        "description": "example of throttling config for an external endpoint",
        "urlPattern": "https://api.example.org/data/2.5/*",
        "methods": [
            "PUT",
            "POST"
        ],
        "maxThroughput": 4000,
        "orgId": "AC202A3A5F615BD30A495FDE@AdobeOrg",
        "sandboxId": "8872a010-f91e-11ea-895c-11ef8f98ba52",
        "sandboxName": "prod",
        "uid": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
        "metadata": {
            "createdBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "createdById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "lastModifiedBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "lastModifiedById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "createdAt": "2023-03-22T10:48:16.099647Z",
            "lastModifiedAt": "2023-03-22T10:48:16.099647Z"
        },
        "state": "created",
        "authoringFormatVersion": "1.0"
    },
    "uid": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
    "uri": "/voyager/apis/throttlingConfigs/043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
    "resStatus": "created"
}

Update - PUT

{
    "updatedElement": {
        "_id": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6_8872a010-f91e-11ea-895c-11ef8f98ba52",
        "name": "throttling-config-external -- optional",
        "description": "example of throttling config for an external endpoint -- optional",
        "urlPattern": "https://api.example.org/data/2.5/*",
        "methods": [
            "POST"
        ],
        "maxThroughput": 5000,
        "orgId": "AC202A3A5F615BD30A495FDE@AdobeOrg",
        "sandboxId": "8872a010-f91e-11ea-895c-11ef8f98ba52",
        "sandboxName": "prod",
        "uid": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
        "metadata": {
            "createdBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "createdById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "lastModifiedBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "lastModifiedById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "createdAt": "2023-03-22T10:48:16.099647Z",
            "lastModifiedAt": "2023-03-22T11:39:14.212983Z"
        },
        "state": "updated",
        "authoringFormatVersion": "1.0",
        "hasBeenDeployed": false
    },
    "uid": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
    "uri": "/voyager/apis/throttlingConfigs/043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
    "resStatus": "updated",
    "canDeploy": {
        "validationStatus": "ok"
    }
}

Gelezen (na update) - GET

{
    "result": {
        "_id": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6_8872a010-f91e-11ea-895c-11ef8f98ba52",
        "name": "throttling-config-external -- optional",
        "description": "example of throttling config for an external endpoint -- optional",
        "urlPattern": "https://api.example.org/data/2.5/*",
        "methods": [
            "POST"
        ],
        "maxThroughput": 5000,
        "orgId": "AC202A3A5F615BD30A495FDE@AdobeOrg",
        "sandboxId": "8872a010-f91e-11ea-895c-11ef8f98ba52",
        "sandboxName": "prod",
        "uid": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
        "metadata": {
            "createdBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "createdById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "lastModifiedBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "lastModifiedById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "createdAt": "2023-03-22T10:48:16.099647Z",
            "lastModifiedAt": "2023-03-22T11:39:14.212983Z"
        },
        "state": "updated",
        "authoringFormatVersion": "1.0",
        "hasBeenDeployed": false
    }
}

Gelezen (na plaatsing) - GET

{
    "result": {
        "_id": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6_8872a010-f91e-11ea-895c-11ef8f98ba52",
        "orgId": "AC202A3A5F615BD30A495FDE@AdobeOrg",
        "sandboxId": "8872a010-f91e-11ea-895c-11ef8f98ba52",
        "sandboxName": "prod",
        "uid": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
        "urlPattern": "https://api.example.org/data/2.5/*",
        "methods": [
            "POST"
        ],
        "maxThroughput": 5000,
        "authoringFormatVersion": "1.0",
        "name": "throttling-config-external -- optional",
        "description": "example of throttling config for an external endpoint -- optional",
        "version": "1.0",
        "state": "deployed",
        "metadata": {
            "createdBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "createdById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "createdAt": "2023-03-22T10:48:16.099647Z",
            "lastModifiedBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "lastModifiedById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "lastModifiedAt": "2023-03-22T11:39:14.212983Z",
            "lastDeployedBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "lastDeployedById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "lastDeployedAt": "2023-03-22T11:46:07.532648Z"
        },
        "hasBeenDeployed": true
    }
}

Gebruiksscenario’s uc

Deze sectie bevat een overzicht van de belangrijkste gebruiksgevallen voor het beheer van configuraties met vertraagde installatie in Journey Optimizer en de bijbehorende API-opdrachten die nodig zijn om de gebruiksaanwijzing te implementeren.

De details op elk API bevel zijn beschikbaar in de ​ API beschrijving & inzameling van Postman ​.

Het creëren en de plaatsing van een nieuwe throttling configuratie

API-aanroepen voor gebruik:

  1. list - Hiermee worden bestaande configuraties opgehaald.
  2. create - Maakt een nieuwe configuratie.
  3. candeploy - Controleert of de configuratie kan worden opgesteld.
  4. deploy - Implementeert de configuratie.
Update and deploy a throttling configuration (not yet deployed)

API-aanroepen voor gebruik:

  1. list - Hiermee worden bestaande configuraties opgehaald.
  2. get - Hiermee worden details van een specifieke configuratie opgehaald.
  3. update - Hiermee wijzigt u de configuratie.
  4. candeploy - Controleert de geschiktheid voor implementatie.
  5. deploy - Implementeert de configuratie.
Undeploy and delete a deployed throttling configuration

API-aanroepen voor gebruik:

  1. list - Hiermee worden bestaande configuraties opgehaald.
  2. undeploy - implementeert de configuratie ongedaan.
  3. delete - Verwijdert de configuratie.
Delete a deployed throttling configuration

In slechts één API-aanroep kunt u de configuratie met behulp van de parameter forceDelete verwijderen en de implementatie ervan ongedaan maken.

API-aanroepen voor gebruik:

  1. list - Hiermee worden bestaande configuraties opgehaald.
  2. delete(met forceDelete parameter) - Dwingt schrapping van een opgestelde configuratie in één enkele stap.
Update a throttling configuration already deployed
note
NOTE
It is not required to undeploy the configuration before updating

API-aanroepen voor gebruik:

  1. list - Hiermee worden bestaande configuraties opgehaald.
  2. get - Hiermee worden details van een specifieke configuratie opgehaald.
  3. update - Hiermee wijzigt u de configuratie.
recommendation-more-help
journey-optimizer-help