Arbeiten mit der Einschränkungs-API
- Themen:
- API
Erstellt für:
- Einsteiger
- Benutzende
Mit der Drosselungs-API können Sie Ihre Drosselungskonfigurationen erstellen, konfigurieren und überwachen, um die Anzahl der pro Sekunde gesendeten Ereignisse zu begrenzen.
In diesem Abschnitt finden Sie allgemeine Informationen zur Verwendung der API. Eine detaillierte API-Beschreibung finden Sie in der Dokumentation zu Adobe Journey Optimizer-APIs.
Wichtige Informationen
-
Eine Konfiguration pro Organisation: Pro Organisation ist derzeit nur eine Konfiguration zulässig. Eine Konfiguration muss in einer Produktions-Sandbox definiert werden (gegeben durch
x-sandbox-name
in den Kopfzeilen). -
Anwendung auf Organisationsebene: Eine Konfiguration wird auf Organisationsebene angewendet.
-
API-Limitverarbeitung: Wenn das in der API festgelegte Limit erreicht ist, werden weitere Ereignisse für bis zu 6 Stunden in die Warteschlange gestellt. Dieser Wert kann nicht geändert werden.
-
maxHttpConnections
: Der Parameter „maxHttpConnections“ ist ein optionaler Parameter, der in der Begrenzungs-API nur verfügbar ist und mit dem Sie die Anzahl der Verbindungen einschränken können, die Journey Optimizer für das externe System öffnen wird. Erfahren Sie, wie Sie mit der Begrenzungs-API arbeitenWenn Sie die Anzahl der Verbindungen beschränken, aber auch diese externen Aufrufe drosseln möchten, können Sie zwei Konfigurationen, eine Drosselung und eine Begrenzung, für denselben Endpunkt konfigurieren. Beide Konfigurationen können für einen Endpunkt nebeneinander bestehen. Um „maxHttpConnections“ für einen gedrosselten Endpunkt festzulegen, verwenden Sie die Drosselungs-API, um den Drosselungsschwellenwert festzulegen, und die Begrenzungs-API, um „maxHttpConnections“ festzulegen. Beim Aufrufen der Begrenzungs-API können Sie den Begrenzungsschwellenwert auf einen Wert festlegen, der höher ist als der Drosselungsschwellenwert, sodass die Begrenzungsregel effektiv nie ins Spiel kommt.
Beschreibung des Drosselungs-APIs und Postman-Sammlung
In der folgenden Tabelle sind die verfügbaren Befehle für das Drosselungs-API aufgeführt. Ausführliche Informationen, einschließlich Anfragebeispielen, Parametern und Antwortformaten, finden Sie in der Dokumentation zu den Adobe Journey Optimizer-APIs.
{uid}
/deploy{uid}
/undeploy{uid}
/canDeploy{uid}
{uid}
{uid}
Darüber hinaus steht Ihnen hier – zur Unterstützung bei Ihrer Testkonfiguration – eine Postman-Sammlung zur Verfügung.
Diese Sammlung wurde eingerichtet, um die Postman-Variablensammlung freizugeben, die über Integrationen der Adobe I/O-Konsole > Testen > Für Postman herunterladen generiert wurde. Dadurch wird eine Postman-Umgebungsdatei mit den ausgewählten Integrationswerten erzeugt.
Nach dem Herunterladen und Hochladen in Postman müssen Sie drei Variablen hinzufügen: {JO_HOST}
, {BASE_PATH}
und {SANDBOX_NAME}
.
{JO_HOST}
: Journey Optimizer-Gateway-URL.{BASE_PATH}
: Einstiegspunkt für die API.{SANDBOX_NAME}
: der Header x-sandbox-name (z. B. „prod“), der dem Sandbox-Namen entspricht, in dem die API-Vorgänge stattfinden. Weiterführende Informationen dazu finden Sie unter Sandbox-Übersicht.
Drosselungskonfiguration
Hier finden Sie die Struktur einer Drosselungskonfiguration. Die Attribute name und description sind optional.
{
"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>
}
Beispiel:
{
"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
}
Fehler
Beim Erstellen oder Aktualisieren einer Konfiguration validiert der Prozess die angegebene Konfiguration und gibt den Validierungsstatus zurück, der durch seine eindeutige ID identifiziert wird, entweder:
"ok" or "error"
Beim Erstellen, Löschen oder Bereitstellen einer Drosselungskonfiguration können die folgenden Fehler auftreten:
- ERR_THROTTLING_CONFIG_100: Drosselungskonfiguration:
<mandatory attribute>
erforderlich - ERR_THROTTLING_CONFIG_101: Drosselungskonfiguration: maxThroughput ist erforderlich und muss größer oder gleich 200 und kleiner oder gleich 5.000 sein.
- ERR_THROTTLING_CONFIG_104: Drosselungskonfiguration: fehlerhaftes URL-Muster
- ERR_THROTTLING_CONFIG_105: Drosselungskonfiguration: Platzhalter sind im Host-Teil des URL-Musters nicht zulässig
- ERR_THROTTLING_CONFIG_106: Drosselungskonfiguration: ungültige Payload
- THROTTLING_CONFIG_DELETE_FORBIDDEN_ERROR: 1456, „Eine bereitgestellte Drosselungskonfiguration kann nicht gelöscht werden. Bitte die Bereitstellung vor dem Löschen aufheben“
- THROTTLING_CONFIG_DELETE_ERROR: 1457, „Die Drosselungskonfiguration kann nicht gelöscht werden: unerwarteter Fehler“
- THROTTLING_CONFIG_DEPLOY_ERROR: 1458, „Die Drosselungskonfiguration kann nicht bereitgestellt werden: unerwarteter Fehler“
- THROTTLING_CONFIG_UNDEPLOY_ERROR: 1459, „Die Bereitstellung der Drosselungskonfiguration kann nicht aufgehoben werden: unerwarteter Fehler“
- THROTTLING_CONFIG_GET_ERROR: 1460, „Drosselungskonfiguration kann nicht abgerufen werden: unerwarteter Fehler“
- THROTTLING_CONFIG_UPDATE_NOT_ACTIVE_ERROR: 1461, „Drosselungskonfiguration kann nicht aktualisiert werden: Laufzeitversion ist nicht aktiv“
- THROTTLING_CONFIG_UPDATE_ERROR: 1462, „Drosselungskonfiguration kann nicht aktualisiert werden: unerwarteter Fehler“
- THROTTLING_CONFIG_NON_PROD_SANDBOX_ERROR: 1463, „Vorgang bei Drosselungskonfiguration nicht zulässig: Nicht-Produktions-Sandbox“
- THROTTLING_CONFIG_CREATE_ERROR: 1464, „Drosselungskonfiguration kann nicht erstellt werden: unerwarteter Fehler“
- THROTTLING_CONFIG_CREATE_LIMIT_ERROR: 1465, „Drosselungskonfiguration kann nicht erstellt werden: nur eine Konfiguration pro Organisation zulässig“
- THROTTLING_CONFIG_ALREADY_DEPLOYED_ERROR: 14466, „Drosselungskonfiguration kann nicht bereitgestellt werden: bereits bereitgestellt“
- THROTTLING_CONFIG_NOT_FOUND_ERROR: 14467, „Drosselungskonfiguration nicht gefunden“
- THROTTLING_CONFIG_NOT_DEPLOYED_ERROR: 14468, „Bereitstellung der Drosselungskonfiguration kann nicht aufgehoben werden: noch nicht bereitgestellt“
Fehlerbeispiele
Beim Versuch, eine Konfiguration für Nicht-Produktions-Sandboxes zu erstellen:
{
"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"
}
Falls eine angegebene Sandbox nicht vorhanden ist:
{
"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"
}
Beim Versuch, eine weitere Konfiguration zu erstellen:
{
"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"
}
Lebenszyklus der Konfiguration auf Laufzeitebene
Wenn die Bereitstellung einer Konfiguration aufgehoben wird, wird sie auf Laufzeitebene als inaktiv markiert und ausstehende Ereignisse werden 24 Stunden lang weiter verarbeitet. Sie wird dann im Laufzeit-Service gelöscht.
Nachdem die Bereitstellung einer Konfiguration aufgehoben wurde, ist es möglich, die Konfiguration zu aktualisieren und erneut bereitzustellen. Dadurch wird eine neue Laufzeitkonfiguration erstellt, die bei der bevorstehenden Aktionsausführung berücksichtigt wird.
Beim Aktualisieren einer bereits bereitgestellten Konfiguration werden die neuen Werte sofort berücksichtigt. Die zugrunde liegenden Systemressourcen werden automatisch angepasst. Dies ist im Vergleich zum Aufheben der Bereitstellung und dem erneuten Bereitstellen der Konfiguration optimal.
Beispiele für Antworten
Erstellung – 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"
}
Aktualisieren – 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"
}
}
Lesen (nach Aktualisierung) – 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
}
}
Lesen (nach Bereitstellung) – 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
}
}
Anwendungsfälle
In diesem Abschnitt werden wichtige Anwendungsfälle für die Verwaltung von Drosselungskonfigurationen in Journey Optimizer und die zugehörigen API-Befehle aufgelistet, die zur Implementierung des jeweiligen Anwendungsfalls erforderlich sind.
Details zu den einzelnen API-Befehlen finden Sie unter API-Beschreibung und Postman-Sammlung.
Zu verwendende API-Aufrufe:
list
: Ruft vorhandene Konfigurationen ab.create
: Erstellt eine neue Konfiguration.candeploy
: Prüft, ob die Konfiguration bereitgestellt werden kann.deploy
: Stellt die Konfiguration bereit.
Zu verwendende API-Aufrufe:
list
: Ruft vorhandene Konfigurationen ab.get
: Ruft Details zu einer bestimmten Konfiguration ab.update
: Ändert die Konfiguration.candeploy
: Prüft die Eignung der Bereitstellung.deploy
: Stellt die Konfiguration bereit.
Zu verwendende API-Aufrufe:
list
: Ruft vorhandene Konfigurationen ab.undeploy
: Hebt die Bereitstellung der Konfiguration auf.delete
: Entfernt die Konfiguration.
In nur einem API-Aufruf können Sie mithilfe des Parameters forceDelete
die Bereitstellung aufheben und die Konfiguration löschen.
Zu verwendende API-Aufrufe:
list
: Ruft vorhandene Konfigurationen ab.delete
(mit dem ParameterforceDelete
): Erzwingt die Löschung einer bereitgestellten Konfiguration in einem einzigen Schritt.
Zu verwendende API-Aufrufe:
list
: Ruft vorhandene Konfigurationen ab.get
: Ruft Details zu einer bestimmten Konfiguration ab.update
: Ändert die Konfiguration.