Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
InvalidRLPolicy
Codice di errore
policies.resetquota.InvalidRLPolicy
Corpo della risposta di 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 la policy Quota specificata nell'elemento <Quota> della
policy Reset Quota non è definita nel proxy API. L'elemento <Quota> è obbligatorio
e identifica la norma relativa alla quota di destinazione il cui contatore deve essere aggiornato tramite
la norma di reimpostazione della quota. Questa norma relativa alla quota di destinazione deve essere creata e definita 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, viene visualizzato l'errore riportato sopra.
<Quota name="MyQuotaPolicy">
Diagnosi
Identifica il nome della policy di quota non valido specificato nella policy di reimpostazione della quota. Puoi trovare il nome della norma relativa alla quota dalla stringa di errore. Ad esempio, nella seguente stringa di errore, il nome della policy Quota è
MyQuotaPolicy:"faultstring": "Invalid rate limit policy MyQuotaPolicy"Esamina ogni policy di reimpostazione della quota nel proxy API in cui si è verificato l'errore. Identifica la policy di reimpostazione della quota specifica in cui la policy di quota specificata nell'elemento obbligatorio
<Quota>corrisponde al nome identificato nel passaggio 1 sopra.Ad esempio, la seguente policy Reset Quota specifica una policy Quota denominata
MyQuotaPolicy, che corrisponde a quanto riportato in faultstring:<?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 questa policy di quota è creata e definita all'interno dello stesso proxy API. Se la norma Quota non esiste nello stesso proxy API, questo è il motivo dell'errore.
Nell'esempio mostrato sopra, la norma relativa alla quota
MyQuotaPolicydeve esistere nel flusso prima dell'esecuzione della norma relativa al ripristino della quotaReset_Quota_Demo.Poiché il criterio relativo alle quote
MyQuotaPolicynon esiste nel flusso, riceverai il codice di errore:
"errorcode": "policies.resetquota.InvalidRLPolicy"
Risoluzione
Assicurati che la norma relativa alla quota dichiarata nell'elemento <Quota> sia definita nel proxy API. Questo criterio di quota di destinazione deve essere disponibile quando viene eseguito il criterio di reimpostazione della quota.
FailedToResolveAllowCountRef
Codice di errore
policies.resetquota.FailedToResolveAllowCountRef
Corpo della risposta di 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 consentito nell'elemento <Allow> del criterio non può essere risolto in un valore. Questo
elemento è obbligatorio e specifica l'importo di cui diminuire il contatore della quota.
Diagnosi
Identifica la norma Reset Quota in cui si è verificato l'errore e il nome della variabile di riferimento che non può essere risolta. Puoi trovare entrambi questi elementi nella risposta all'errore.
Ad esempio, nella seguente stringa di errore, il nome della policy è
ResetQuotae 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:demoNel file XML della policy di reimpostazione della quota non riuscita, verifica che il nome della variabile di riferimento utilizzata corrisponda al nome di riferimento identificato nella risposta di errore (passaggio 1 sopra).
Ad esempio, la seguente policy imposta l'elemento con il riferimento denominato
request.header.allowcount, che corrisponde a quanto riportato nell'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 eseguita la policy Reimposta quota.
Se la variabile è:
- fuori ambito (non disponibile nel flusso specifico in cui viene eseguito il criterio) o
- non può essere risolto (non è definito)
allora è questa la causa dell'errore.
Nell'esempio mostrato sopra, il valore del conteggio consentito nell'elemento
<Allow>deve essere recuperato dall'intestazione della richiesta denominata allowcount. Tuttavia, Edge non è in grado di risolvere request.header.allowcount. Ciò si verifica se l'intestazione allowcount non viene trasmessa 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 trasmessa come parte della richiesta, la variabile request.header.allowcount utilizzata nell'elemento
<Allow>nel criterio di reimpostazione della quota precedente non è definita e pertanto non può essere risolta. Pertanto, riceverai 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 eseguita la policy Reset 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 di 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 non è possibile risolvere la variabile a cui fa riferimento l'attributo ref nell'elemento
<Quota>.
Ad esempio, se l'attributo ref è impostato come 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">
Diagnosi
Esamina ogni criterio Reset Quota nel proxy API in cui si è verificato l'errore e identifica il criterio Reset 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 eseguita la policy Reimposta quota.
Se la variabile è:
- fuori ambito (non disponibile nel flusso specifico in cui viene eseguito il criterio) o
- non può essere risolto (non è definito)
allora è questa la causa dell'errore.
Nell'esempio mostrato di seguito, il nome della policy di quota di destinazione deve essere recuperato dall'intestazione della richiesta denominata quotapolicy. Tuttavia, Edge non è in grado di risolvere request.header.quotapolicy. Ciò si verifica se l'intestazione quotapolicy non viene trasmessa nell'ambito 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 supera 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 trasmessa 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 eseguita la norma Reimposta 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"