Utilizzare l’API di limitazione

CAUTION
Ricerca di Adobe Journey Optimizer? Fai clic qui per la documentazione di Journey Optimizer.
Questa documentazione fa riferimento ai materiali Journey Orchestration legacy che sono stati sostituiti da Journey Optimizer. Contatta il team del tuo account in caso di domande sull'accesso a Journey Orchestration o Journey Optimizer.

L’API di limitazione ti consente di creare, configurare e monitorare le configurazioni di limitazione al fine di limitare il numero di eventi inviati al secondo.

IMPORTANT
Attualmente è consentita una sola configurazione per organizzazione. Una configurazione deve essere definita su una sandbox di produzione (specificata tramite x-sandbox-name nelle intestazioni).
Viene applicata una configurazione per livello di organizzazione.
Al raggiungimento del limite impostato nell’API, gli altri eventi vengono messi in coda per un massimo di 6 ore. Impossibile modificare questo valore.

Descrizione dell’API di limitazione description

Metodo
Percorso
Descrizione
POST
list/throttlingConfigs
Ottenere un elenco delle configurazioni di limitazione
POST
/throttlingConfigs
Creare una configurazione di limitazione
POST
/throttlingConfigs/{uid}/deploy
Distribuire una configurazione di limitazione
POST
/throttlingConfigs/{uid}/undeploy
Annullare la distribuzione di una configurazione di limitazione
POST
/throttlingConfigs/{uid}/canDeploy
Verificare se una configurazione di limitazione può essere distribuita o meno
PUT
/throttlingConfigs/{uid}
Aggiornare una configurazione di limitazione
GET
/throttlingConfigs/{uid}
Recuperare una configurazione di limitazione
DELETE
/throttlingConfigs/{uid}
Eliminare una configurazione di limitazione

Configurazione di limitazione  configuration

Di seguito è riportata la struttura di una configurazione di limitazione. Gli attributi name e description sono facoltativi.

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

Esempio:

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

Errori

Durante la creazione o l’aggiornamento di una configurazione, il processo convalida la configurazione specificata e restituisce lo stato di convalida identificato dal relativo ID univoco:

"ok" or "error"
IMPORTANT
Gli attributi maxThroughput, urlPattern e methods sono obbligatori.
Il valore maxThroughput deve essere compreso nell’intervallo 200-5000.

Durante la creazione, l’eliminazione o la distribuzione della configurazione di limitazione, possono verificarsi i seguenti errori:

  • ERR_THROTTLING_CONFIG_100: configurazione di limitazione: <mandatory attribute> obbligatoria
  • ERR_THROTTLING_CONFIG_101: configurazione di limitazione: maxThroughput è obbligatorio e deve essere maggiore o uguale a 200 e minore o uguale a 5000
  • ERR_THROTTLING_CONFIG_104: configurazione di limitazione: formato del pattern URL non valido
  • ERR_THROTTLING_CONFIG_105: configurazione di limitazione: caratteri jolly non consentiti nella parte dell’host del pattern URL
  • ERR_THROTTLING_CONFIG_106: configurazione di limitazione: payload non valido
  • THROTTLING_CONFIG_DELETE_FORBIDDEN_ERROR: 1456, “Impossibile eliminare una configurazione di limitazione distribuita. Annullare la distribuzione prima di eliminarla”
  • THROTTLING_CONFIG_DELETE_ERROR: 1457, “Impossibile eliminare la configurazione di limitazione: si è verificato un errore imprevisto”
  • THROTTLING_CONFIG_DEPLOY_ERROR: 1458, “Impossibile distribuire la configurazione di limitazione: si è verificato un errore imprevisto”
  • THROTTLING_CONFIG_UNDEPLOY_ERROR: 1459, “Impossibile annullare la distribuzione della configurazione di limitazione: si è verificato un errore imprevisto”
  • THROTTLING_CONFIG_GET_ERROR: 1460, “Impossibile ottenere la configurazione di limitazione: si è verificato un errore imprevisto”
  • THROTTLING_CONFIG_UPDATE_NOT_ACTIVE_ERROR: 1461, “Impossibile aggiornare la configurazione di limitazione: la versione di runtime non è attiva”
  • THROTTLING_CONFIG_UPDATE_ERROR: 1462, “Impossibile aggiornare la configurazione di limitazione: si è verificato un errore imprevisto”
  • THROTTLING_CONFIG_NON_PROD_SANDBOX_ERROR: 1463, “Operazione non consentita nella configurazione di limitazione: sandbox non di produzione”
  • THROTTLING_CONFIG_CREATE_ERROR: 1464, “Impossibile creare la configurazione di limitazione: si è verificato un errore imprevisto”
  • THROTTLING_CONFIG_CREATE_LIMIT_ERROR: 1465, “Impossibile creare la configurazione di limitazione: è consentita una sola configurazione per organizzazione”
  • THROTTLING_CONFIG_ALREADY_DEPLOYED_ERROR: 14466, “Impossibile distribuire la configurazione di limitazione: è già stata distribuita”
  • THROTTLING_CONFIG_NOT_FOUND_ERROR: 14467, “Nessuna configurazione di limitazione trovata”
  • THROTTLING_CONFIG_NOT_DEPLOYED_ERROR: 14468, “Impossibile annullare la distribuzione della configurazione di limitazione: non è ancora stata distribuita”

Esempi di errori

Quando si tenta di creare una configurazione su sandbox non di produzione:

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

Nel caso in cui la sandbox specificata non esiste:

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

Quando si tenta di creare un’altra configurazione:

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

Casi d’uso uc

Per facilitare i test e la configurazione, qui è disponibile una raccolta Postman.

Questa raccolta Postman è stata configurata per condividere la raccolta di variabili Postman generata tramite Integrazioni della console di Adobe I/O > Prova > Scarica per Postman, che genera un file di ambiente Postman con i valori delle integrazioni selezionate.

Una volta scaricata e caricata in Postman, è necessario aggiungere tre variabili: {JO_HOST},{BASE_PATH} e {SANDBOX_NAME}.

  • {JO_HOST} : Journey Orchestration URL gateway
  • {BASE_PATH} : punto di ingresso per l’API. Il valore è “/authoring”
  • {SANDBOX_NAME}: l’intestazione x-sandbox-name (ad esempio, “prod”) corrispondente al nome della sandbox in cui si svolgeranno le operazioni API. Per ulteriori informazioni, consulta la panoramica delle sandbox.

Nella sezione seguente, è disponibile un elenco ordinato delle chiamate API REST per eseguire il caso d’uso.

Caso d’uso n°1: Creazione e distribuzione di una nuova configurazione di limitazione

  1. list
  2. create
  3. candeploy
  4. deploy

Caso d’uso n° 2: Aggiornare e distribuire una configurazione di limitazione non ancora distribuita

  1. list
  2. get
  3. update
  4. candeploy
  5. deploy

Caso d’uso n° 3: Annullare la distribuzione ed eliminare una configurazione di limitazione distribuita

  1. list
  2. undeploy
  3. delete

Caso d’uso n° 4: Eliminare una configurazione di limitazione distribuita

È possibile annullare la distribuzione ed eliminare la configurazione in una sola chiamata API utilizzando il parametro forceDelete.

  1. list
  2. eliminare, con il parametro forceDelete

Caso d’uso n° 5: Aggiornare una configurazione di limitazione già distribuita

NOTE
Non è richiesto annullare la distribuzione della configurazione prima dell’aggiornamento
  1. list
  2. get
  3. update

Ciclo di vita della configurazione a livello di runtime config

Quando la distribuzione di una configurazione viene annullata, questa viene contrassegnata come inattiva a livello di runtime e gli eventi in sospeso continuano a essere elaborati per 24 ore. Quindi viene eliminata nel servizio di runtime.

Una volta annullata la distribuzione di una configurazione, è possibile aggiornarla e ridistribuirla. In questo modo verrà creata una nuova configurazione di runtime che verrà considerata nell’esecuzione delle azioni successive.

Durante l’aggiornamento di una configurazione già distribuita, i nuovi valori vengono presi in considerazione immediatamente. Le risorse di sistema sottostanti vengono automaticamente adattate. Questa è una soluzione ottimale rispetto alla distribuzione e ridistribuzione della configurazione.

Esempi di risposte responses

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

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

Lettura (dopo l’aggiornamento) - 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
    }
}

Lettura (dopo la distribuzione) - 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
    }
}
recommendation-more-help
4f4a00c1-77c9-4eee-84df-bbe6206c3ab9