Stai visualizzando la documentazione di Apigee Edge.
Vai alla
documentazione di Apigee X. informazioni
InvalidRLPolicy
Codice di errore
policies.resetquota.InvalidRLPolicy
Corpo della risposta all'errore
{ "fault": { "faultstring": "Invalid rate limit policy quota_policy_name", "detail": { "errorcode": "policies.resetquota.InvalidRLPolicy" } } }
Esempio di messaggio di errore
{
"fault": {
"faultstring": "Invalid rate limit policy MyQuotaPolicy",
"detail": {
"errorcode": "policies.resetquota.InvalidRLPolicy"
}
}
}
Causa
Questo errore si verifica se il criterio per le quote specificato nell'elemento <Quota>
del criterio di reimpostazione della quota non è definito nel proxy API. L'elemento <Quota>
è obbligatorio
e identifica il criterio per le quote di destinazione il cui contatore deve essere aggiornato tramite
il criterio di reimpostazione della quota. Questo criterio per le quote di destinazione deve essere creato e definito all'interno dello stesso proxy API e deve essere disponibile durante il flusso.
Ad esempio, supponiamo che l'elemento <Quota>
sia definito come mostrato di seguito, ma se MyQuotaPolicy
non è definito nel proxy API, verrà visualizzato l'errore riportato sopra.
<Quota name="MyQuotaPolicy">
Diagnostica
Identifica il nome del criterio per le quote non valido specificato nel criterio di reimpostazione della quota. Puoi trovare il nome del criterio per le quote nella stringa di errore. Ad esempio, nella stringa di errore seguente, il nome del criterio per le quote è
MyQuotaPolicy:
"faultstring": "Invalid rate limit policy MyQuotaPolicy"
Esamina ciascuno dei criteri di reimpostazione della quota nel proxy API in cui si è verificato l'errore. Identifica il criterio per le quote specifico in cui il criterio per le quote specificato nell'elemento obbligatorio
<Quota>
corrisponde al nome identificato nel passaggio 1 precedente.Ad esempio, il seguente criterio di reimpostazione della quota specifica un criterio per le quote denominato
MyQuotaPolicy
, che corrisponde ai contenuti della stringa di errore:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResetQuota async="false" continueOnError="false" enabled="true" name="Reset_Quota_Demo"> <DisplayName>Reset_Quota_Demo</DisplayName> <Properties/> <Quota name="MyQuotaPolicy"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>
Determina se questo criterio per le quote è stato creato e definito all'interno dello stesso proxy API. Se il criterio per le quote non esiste all'interno dello stesso proxy API, è questa la causa dell'errore.
Nell'esempio mostrato sopra, il criterio per le quote
MyQuotaPolicy
dovrebbe esistere nel flusso prima dell'esecuzione del criterio di reimpostazione della quotaReset_Quota_Demo
.Poiché il criterio per le quote
MyQuotaPolicy
non esiste nel flusso, riceverai il codice di errore:
"errorcode": "policies.resetquota.InvalidRLPolicy"
Risoluzione
Assicurati che il criterio per le quote dichiarato nell'elemento <Quota>
sia definito nel
proxy API. Questo criterio per le quote di destinazione deve essere disponibile quando viene eseguito il criterio di reimpostazione della quota.
FailedToResolveAllowCountRef
Codice di errore
policies.resetquota.FailedToResolveAllowCountRef
Corpo della risposta all'errore
Failed to resolve allow count reference reference_name for identifier identifier_name in ResetQuotaStepDefinition:policy_name;API Proxy:proxy_name;Revision: revision_number;Environment:env_name;Organization:org_name
Esempio di messaggio di errore
Failed to resolve allow count reference request.header.allowcount for identifier
identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota;
Revision:10;Environment:test;Organization:demo
L'errore restituito al client sarà semplicemente: policies.ratelimit.QuotaViolation
.
Causa
Questo errore si verifica se il riferimento alla variabile contenente il conteggio di autorizzazioni nell'elemento <Allow>
del criterio non può essere risolto in un valore. Questo elemento è obbligatorio e specifica la quantità per diminuire il contatore di quota.
Diagnostica
Identifica il criterio di reimpostazione della quota in cui si è verificato l'errore e il nome della variabile di riferimento che non può essere risolto. Puoi trovare entrambi questi elementi nella risposta di errore.
Ad esempio, nella seguente stringa di errore, il nome del criterio è
ResetQuota
e il riferimento èrequest.header.allowcount
:Failed to resolve allow count reference request.header.allowcount for identifier identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota; Revision:10;Environment:test;Organization:demo
Nel file XML del criterio di reimpostazione del criterio per le quote non riuscito, verifica che il nome della variabile di riferimento utilizzata corrisponda al nome del riferimento identificato nella risposta di errore (passaggio 1 sopra).
Ad esempio, il seguente criterio imposta l'elemento con il riferimento denominato
request.header.allowcount
, che corrisponde all'errore:<ResetQuota async="false" continueOnError="false" enabled="true" name="ResetQuota"> <DisplayName>ResetQuota</DisplayName> <Properties/> <Quota name="MyQuotaPolicy"> <Identifier name="identifierName"> <Allow ref="request.header.allowcount"/> </Identifier> </Quota> </ResetQuota>
Determina se la variabile di riferimento è definita e disponibile nel flusso in cui viene eseguito il criterio di reimpostazione della quota.
Se la variabile è:
- fuori ambito (non disponibile nel flusso specifico in cui viene eseguito il criterio) oppure
- non può essere risolto (non è definito)
è questa la causa dell'errore.
Nell'esempio mostrato sopra, il valore del conteggio consentito nell'elemento
<Allow>
dovrebbe essere recuperato dall'intestazione della richiesta denominata allowcount. Tuttavia, Edge non è in grado di risolvere il problema request.header.allowcount. Questo accade se l'intestazione allowcount non viene passata come parte della richiesta API.Ecco una richiesta API di esempio che non passa l'intestazione allowcount come parte della richiesta:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json"
Poiché l'intestazione allowcount non viene passata come parte della richiesta, la variabile request.header.allowcount utilizzata nell'elemento
<Allow>
nel precedente criterio di reimpostazione della quota non è definita e pertanto non può essere risolta. Riceverai quindi la risposta di errore:Failed to resolve allow count reference request.header.allowcount for identifier identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota; Revision:10;Environment:test;Organization:demo
Risoluzione
Assicurati che la variabile a cui viene fatto riferimento nell'elemento <Allow>
esista/sia definita e disponibile nel flusso specifico in cui viene eseguito il criterio di reimpostazione della quota.
Per correggere l'esempio mostrato sopra, puoi modificare la richiesta in modo da includere l'intestazione allowcount come mostrato di seguito:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json" -H "allowcount:30"
FailedToResolveRLPolicy
Codice di errore
policies.resetquota.FailedToResolveRLPolicy
Corpo della risposta all'errore
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
Esempio di messaggio di errore
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
Causa
Questo errore si verifica se la variabile a cui fa riferimento l'attributo ref
nell'elemento <Quota>
non può essere risolta.
Ad esempio, se l'attributo ref
è impostato su request.header.quotapolicy
nell'elemento <Quota>
, ma non è disponibile nel flusso del proxy API, viene visualizzato l'errore riportato sopra.
<Quota ref="request.header.quotapolicy">
Diagnostica
Esamina ciascuno dei criteri di reimpostazione della quota nel proxy API in cui si è verificato l'errore e identifica il criterio di reimpostazione della quota in cui il nome della variabile di riferimento specificata nell'elemento
<Quota>
non può essere risolto correttamente.Determina se la variabile è definita e disponibile nel flusso in cui viene eseguito il criterio di reimpostazione della quota.
Se la variabile è:
- fuori ambito (non disponibile nel flusso specifico in cui viene eseguito il criterio) oppure
- non può essere risolto (non è definito)
è questa la causa dell'errore.
Nell'esempio mostrato di seguito, il nome del criterio per le quote di destinazione dovrebbe essere recuperato dall'intestazione della richiesta denominata quotapolicy. Tuttavia, Edge non è in grado di risolvere request.header.quotapolicy. Questo accade se l'intestazione quotapolicy non viene passata come parte della richiesta API.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResetQuota async="false" continueOnError="false" enabled="true" name="Reset_Quota_Demo"> <DisplayName>Reset_Quota_Demo</DisplayName> <Properties/> <Quota ref="request.header.quotapolicy"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>
Ecco una richiesta API di esempio che non passa l'intestazione quotapolicy come parte della richiesta:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json"
Poiché l'intestazione quotapolicy non viene passata come parte della richiesta, il riferimento request.header.quotapolicy utilizzato nell'elemento
<Quota>
nel criterio di reimpostazione della quota precedente non è definito e non può essere risolto. Di conseguenza, ricevi la risposta di errore:"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
Risoluzione
Assicurati che l'attributo ref
a cui viene fatto riferimento nell'elemento <Quota>
venga risolto in fase di runtime e sia disponibile nel flusso specifico in cui viene eseguito il criterio di reimpostazione della quota.
Per correggere l'esempio mostrato sopra, puoi modificare la richiesta in modo da includere l'intestazione quotapolicy, come mostrato di seguito:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json" -H "quotapolicy:MyQuotaPolicy"