Uso de la API de limitación
La API de restricción le ayuda a crear, configurar y supervisar sus configuraciones de restricción para limitar el número de eventos enviados por segundo.
Esta sección proporciona información global sobre cómo trabajar con la API. Hay disponible una descripción detallada de la API en Documentación de las API de Adobe Journey Optimizer.
Lectura obligatoria
-
Una configuración por organización: Actualmente solo se permite una configuración por organización. Se debe definir una configuración en una zona protegida de producción (dada a través de
x-sandbox-name
en los encabezados). -
Aplicación de nivel de organización: Se aplica una configuración en el nivel de organización.
-
Administración de límites de API: Cuando se alcanza el límite establecido en la API, los eventos adicionales se ponen en cola durante un máximo de 6 horas. Este valor no se puede modificar.
-
maxHttpConnections
parámetro: El parámetro "maxHttpConnections" es un parámetro opcional disponible en la API de límite que solo le permite restringir el número de conexiones que Journey Optimizer abrirá en el sistema externo. Aprenda a trabajar con la API de límiteSi desea restringir el número de conexiones pero también limitar esas llamadas externas, puede configurar dos configuraciones, una de limitación y otra de restricción, en el mismo punto de conexión. Ambas configuraciones pueden coexistir para un extremo. Para establecer "maxHttpConnections" para un extremo limitado, utilice la API de limitación para establecer el umbral de limitación y la API de restricción para establecer "maxHttpConnections". Al llamar a la API de límite, puede establecer el umbral de límite en algo más alto que el umbral de restricción, de modo que la regla de límite nunca entre en juego.
Descripción de la API de restricción y colección de Postman description
En la tabla siguiente se enumeran los comandos disponibles para la API de regulación. Encontrará información detallada, incluidos ejemplos de solicitudes, parámetros y formatos de respuesta, en la documentación de API de Adobe Journey Optimizer.
{uid}
/deploy{uid}
/undeploy{uid}
/canDeploy{uid}
{uid}
{uid}
Además, hay disponible una colección de Postman aquí que le ayudará en la configuración de las pruebas.
Esta colección se ha configurado para compartir la colección Variable de Postman generada mediante Integraciones de la consola de Adobe I/O > Probarla > Descargar para Postman, que genera un archivo de entorno de Postman con los valores de integraciones seleccionados.
Una vez descargado y cargado en Postman, debe añadir tres variables: {JO_HOST}
,{BASE_PATH}
y {SANDBOX_NAME}
.
{JO_HOST}
: URL de puerta de enlace Journey Optimizer.{BASE_PATH}
: punto de entrada para la API.{SANDBOX_NAME}
: el encabezado x-sandbox-name (por ejemplo, “prod”) correspondiente al nombre de la zona protegida donde se realizarán las operaciones de API. Consulte la información general sobre las zonas protegidas para obtener más detalles.
Configuración de limitación configuration
Esta es la estructura de una configuración de limitación. Los atributos name y description son opcionales.
{
"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>
}
Por ejemplo:
{
"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
}
Errores
Al crear o actualizar una configuración, el proceso aprueba la dada y devuelve el estado de validación identificado por su ID único, uno de los siguientes:
"ok" or "error"
Al crear, eliminar o implementar la configuración de limitación, pueden producirse los siguientes errores:
- ERR_THROTTLING_CONFIG_100: configuración de limitación:
<mandatory attribute>
obligatorio - ERR_THROTTLING_CONFIG_101: configuración de limitación: maxThroughput es obligatorio y debe ser mayor o igual que 200 y menor o igual que 5000.
- ERR_THROTTLING_CONFIG_104: configuración de limitación: patrón de URL incorrecto
- ERR_THROTTLING_CONFIG_105: configuración de limitación: no se permiten comodines en la parte host del patrón de URL
- ERR_THROTTLING_CONFIG_106: configuración de limitación: carga útil no válida
- THROTTLING_CONFIG_DELETE_FORBIDDEN_ERROR: 1456, “No se puede eliminar una configuración de limitación implementada. Debe desimplementarlo antes de eliminarlo”
- THROTTLING_CONFIG_DELETE_ERROR: 1457, “No se puede eliminar la configuración de limitación: se produce un error inesperado”
- THROTTLING_CONFIG_DEPLOY_ERROR: 1458, “No se puede implementar la configuración de limitación: se produce un error inesperado”
- THROTTLING_CONFIG_UNDEPLOY_ERROR: 1459, “No se puede desimplementar la configuración de limitación: se produce un error inesperado”
- THROTTLING_CONFIG_GET_ERROR: 1460, “No se puede obtener la configuración de limitación: se produce un error inesperado”
- THROTTLING_CONFIG_UPDATE_NOT_ACTIVE_ERROR: 1461, “No se puede actualizar la configuración de limitación: la versión de tiempo de ejecución no está activa”
- THROTTLING_CONFIG_UPDATE_ERROR: 1462, “No se puede actualizar la configuración de limitación: se produce un error inesperado”
- THROTTLING_CONFIG_NON_PROD_SANDBOX_ERROR: 1463, “Operación no permitida en la configuración de limitación: la zona protegida no es de producción”
- THROTTLING_CONFIG_CREATE_ERROR: 1464, “No se puede crear la configuración de limitación: se produce un error inesperado”
- THROTTLING_CONFIG_CREATE_LIMIT_ERROR: 1465, “No se puede crear la configuración de limitación: solo se permite una configuración por organización”
- THROTTLING_CONFIG_ALREADY_DEPLOYED_ERROR: 14466, “No se puede implementar la configuración de limitación: ya implementada”
- THROTTLING_CONFIG_NOT_FOUND_ERROR: 14467, “Configuración de limitación no encontrada”
- THROTTLING_CONFIG_NOT_DEPLOYED_ERROR: 14468, “No se puede anular la implementación de la configuración de limitación: aún no implementada”
Ejemplos de errores
Al intentar crear una configuración en una zona protegida que no es de producción:
{
"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"
}
En caso de que la zona protegida dada no exista:
{
"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"
}
Al intentar crear otra configuración:
{
"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"
}
Ciclo de vida de configuración en nivel de tiempo de ejecución config
Cuando una configuración se desimplementa, se marca como inactiva en el nivel de tiempo de ejecución y los eventos pendientes se siguen procesando durante 24 horas. A continuación, se elimina en el servicio de tiempo de ejecución.
Una vez que se ha desimplementado una configuración, es posible actualizarla y volver a implementarla. Esto creará una nueva configuración de tiempo de ejecución que se tendrá en cuenta en la próxima ejecución de acciones.
Al actualizar una configuración ya implementada, los nuevos valores se tienen en cuenta de inmediato. Los recursos del sistema subyacentes se adaptan automáticamente. Esto es óptimo, comparado con desimplementar y volver a implementar la configuración.
Ejemplos de respuestas responses
Creación: 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"
}
Actualización: 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"
}
}
Leer (después de la actualización): 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
}
}
Leer (después de la implementación): 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
}
}
Casos de uso uc
En esta sección se enumeran los casos de uso clave para administrar las configuraciones de restricción en Journey Optimizer y los comandos de API asociados necesarios para implementar el caso de uso.
Encontrará detalles sobre cada comando de API en Descripción de la API y recopilación de Postman.
Llamadas de API para utilizar:
list
- Recupera configuraciones existentes.create
- Crea una nueva configuración.candeploy
: comprueba si se puede implementar la configuración.deploy
- Implementa la configuración.
Llamadas de API para utilizar:
list
- Recupera configuraciones existentes.get
: obtiene detalles de una configuración específica.update
- Modifica la configuración.candeploy
- Comprueba la idoneidad de la implementación.deploy
- Implementa la configuración.
Llamadas de API para utilizar:
list
- Recupera configuraciones existentes.undeploy
- Anula la implementación de la configuración.delete
- Quita la configuración.
Solo en una llamada de API puede anular la implementación y eliminar la configuración con el parámetro forceDelete
.
Llamadas de API para utilizar:
list
- Recupera configuraciones existentes.delete
(conforceDelete
parámetro) - Fuerza la eliminación de una configuración implementada en un solo paso.
note note |
---|
NOTE |
No es necesario anular la implementación de la configuración antes de actualizar |
Llamadas de API para utilizar:
list
- Recupera configuraciones existentes.get
: obtiene detalles de una configuración específica.update
- Modifica la configuración.