Arbeta med begränsnings-API
API:t för begränsning hjälper dig att skapa, konfigurera och övervaka dina begränsningskonfigurationer för att begränsa antalet händelser som skickas per sekund.
Det här avsnittet innehåller global information om hur du arbetar med API:t. En detaljerad API-beskrivning finns i dokumentationen för Adobe Journey Optimizer API.
Måste läsas
-
En konfiguration per organisation: Endast en konfiguration tillåts för närvarande per organisation. En konfiguration måste definieras i en produktionssandlåda (anges via
x-sandbox-namei rubrikerna). -
Program på organisationsnivå: En konfiguration används på organisationsnivå.
-
Hantering av API-begränsning: När gränsen som anges i API:t nås köas ytterligare händelser i upp till 6 timmar. Detta värde kan inte ändras.
-
maxHttpConnections-parameter: ParameternmaxHttpConnectionsär en valfri parameter som bara är tillgänglig i API:t för att du ska kunna begränsa antalet anslutningar som Journey Optimizer öppnar till det externa systemet. Lär dig hur du arbetar med API:t för takOm du vill begränsa antalet anslutningar men även begränsa dessa externa anrop kan du konfigurera två konfigurationer, en begränsning och en begränsning, på samma slutpunkt. Båda konfigurationerna kan finnas samtidigt för en slutpunkt. Om du vill ange maxHttpConnections för en begränsad slutpunkt använder du API:t för begränsning och API:t för begränsning för att ange maxHttpConnections. När du anropar API:t för begränsning kan du ange ett tröskelvärde för begränsning till något högre än tröskelvärdet, så att reglerna för begränsning aldrig kommer att börja gälla.
Beskrivningar av begränsnings-API och Postman-samling description
I tabellen nedan visas tillgängliga kommandon för begränsnings-API:t. Detaljerad information, inklusive frågeexempel, parametrar och svarsformat, finns i Adobe Journey Optimizer API:s dokumentation.
{uid}/deploy{uid}/undeploy{uid}/canDeploy{uid}{uid}{uid}Dessutom finns en Postman-samling här som kan hjälpa dig med testkonfigurationen.
Den här samlingen har konfigurerats för att dela Postman Variable-samlingen som genereras via Adobe I/O Console’s Integrations > Testa > Hämta för Postman, som genererar en Postman-miljöfil med de valda integreringsvärdena.
När du har hämtat och överfört till Postman måste du lägga till tre variabler: {JO_HOST},{BASE_PATH} och {SANDBOX_NAME}.
{JO_HOST}: Journey Optimizer Gateway-URL.{BASE_PATH}: startpunkt för API.{SANDBOX_NAME}: huvudet x-sandbox-name (till exempel “prod”) som motsvarar sandlådans namn där API-åtgärderna ska utföras. Mer information finns i översikten över sandlådor.
Begränsningskonfiguration configuration
Här är strukturen för en strypningskonfiguration. Attributen name och description är valfria.
{
"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>
}
Exempel:
{
"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
}
Fel
När en konfiguration skapas eller uppdateras validerar processen den angivna konfigurationen och returnerar den verifieringsstatus som identifieras av dess unika ID, antingen:
"ok" or "error"
Följande fel kan uppstå när du skapar, tar bort eller distribuerar begränsningskonfiguration:
- ERR_THROTTLING_CONFIG_100: Konfigurationsbegränsning:
<mandatory attribute>krävs - ERR_THROTTLING_CONFIG_101: Konfigurationsbegränsning: maxThoutput krävs och måste vara större än eller lika med 200 och mindre än eller lika med 5 000
- ERR_THROTTLING_CONFIG_104: strypningskonfiguration: URL-mönster med felaktigt format
- ERR_THROTTLING_CONFIG_105: Begränsningskonfiguration: jokertecken tillåts inte i värddelen av URL-mönstret
- ERR_THROTTLING_CONFIG_106: Begränsningskonfigurationen: ogiltig nyttolast
- THROTTLING_CONFIG_DELETE_FORBIDDEN_ERROR: 1456,“Can’t delete a deployment throttling config. Avdistribuera den innan den tas bort”
- THROTTLING_CONFIG_DELETE_ERROR: 1457, “Can’t delete stryttling config: unknown error occurred”
- THROTTLING_CONFIG_DEPLOY_ERROR: 1458, “Can’t deploy throttling config: unknown error occurred”
- THROTTLING_CONFIG_UNDEPLOY_ERROR: 1459, “Can’t undeploy throttling config: unknown error occurred”
- THROTTLING_CONFIG_GET_ERROR: 1460, “Can’t get throttling config: unknown error occurred”
- THROTTLING_CONFIG_UPDATE_NOT_ACTIVE_ERROR: 1461, “Can’t update throttling config: runtime version is not active”
- THROTTLING_CONFIG_UPDATE_ERROR: 1462, “Can’t update throttling config: unknown error occurred”
- THROTTLING_CONFIG_NON_PROD_SANDBOX_ERROR: 1463, “Åtgärden tillåts inte för begränsning av konfiguration: icke-prod-sandlåda”
- THROTTLING_CONFIG_CREATE_ERROR: 1464, “Can’t create throttling config: unknown error occurred”
- THROTTLING_CONFIG_CREATE_LIMIT_ERROR: 1465, “Can’t create throttling config: only one config allowed per org”
- THROTTLING_CONFIG_ALREADY_DEPLOYED_ERROR: 14466,“Can’t deploy throttling config: already deploy”
- THROTTLING_CONFIG_NOT_FOUND_ERROR: 14467, “strypningskonfigurationen hittades inte”
- THROTTLING_CONFIG_NOT_DEPLOYED_ERROR: 14468,“Can’t undeploy throttling config: not deploy Yet”
Exempel på fel
När du försöker skapa en konfiguration i en icke-prod sandlåda:
{
"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"
}
Om den angivna sandlådan inte finns:
{
"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"
}
När du försöker skapa en annan konfiguration:
{
"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"
}
Konfigurationens livscykel på körningsnivå config
När en konfiguration inte distribueras markeras den som inaktiv på körningsnivå och väntande händelser bearbetas under 24 timmar. Den tas sedan bort i runtime-tjänsten.
När en konfiguration har avdistribuerats är det möjligt att uppdatera och distribuera om konfigurationen. Detta skapar en ny runtime-konfiguration som kommer att beaktas i kommande åtgärder.
När du uppdaterar en konfiguration som redan har distribuerats beaktas de nya värdena omedelbart. De underliggande systemresurserna anpassas automatiskt. This is optimal compared to undeploy then redeploy the configuration.
Responses examples responses
Skapande - 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"
}
Uppdatera - 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"
}
}
Läs (efter uppdatering) - 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
}
}
Läs (efter distributionen) - 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
}
}
Användningsfall uc
I det här avsnittet visas viktiga användningsfall för hantering av begränsningskonfigurationer i Journey Optimizer och associerade API-kommandon som krävs för att implementera användningsexemplet.
Information om varje API-kommando finns i API-beskrivningen och Postman-samlingen.
API-anrop som ska användas:
list- Hämtar befintliga konfigurationer.create- Skapar en ny konfiguration.candeploy- Kontrollerar om konfigurationen kan distribueras.deploy- Distribuerar konfigurationen.
API-anrop som ska användas:
list- Hämtar befintliga konfigurationer.get- Hämtar information om en viss konfiguration.update- Ändrar konfigurationen.candeploy- Kontrollerar distributionsbehörighet.deploy- Distribuerar konfigurationen.
API-anrop som ska användas:
list- Hämtar befintliga konfigurationer.undeploy- Avdistribuerar konfigurationen.delete- Tar bort konfigurationen.
I endast ett API-anrop kan du avdistribuera och ta bort konfigurationen med hjälp av parametern forceDelete.
API-anrop som ska användas:
list- Hämtar befintliga konfigurationer.delete(med parameternforceDelete) - Tvingar borttagning av en distribuerad konfiguration i ett enda steg.
| note |
|---|
| NOTE |
| Du behöver inte avdistribuera konfigurationen innan du uppdaterar |
API-anrop som ska användas:
list- Hämtar befintliga konfigurationer.get- Hämtar information om en viss konfiguration.update- Ändrar konfigurationen.