Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Visualizza la documentazione di
Apigee Edge.
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 il criterio di quota 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 Reimposta quota. Questo criterio per le quote di destinazione deve essere creato e definito nello stesso proxy API e deve essere disponibile durante il flusso.
Ad esempio, supponiamo che l'elemento<Quota>
sia definito come mostrato di seguito, ma seMyQuotaPolicy
non è definito nell'API Proxy, viene visualizzato l'errore riportato sopra.
<Quota name="MyQuotaPolicy">
Diagnosi
Identifica il nome del criterio per le quote non valido specificato nel criterio Reimposta quota. Puoi trovare il nome del criterio di quota dal parametro faultstring. Ad esempio, nel seguente faultstring, il nome del criterio di quota è
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 di reimpostazione della quota specifico in cui il criterio di quota specificato all'interno dell'elemento obbligatorio
<Quota>
corrisponde al nome identificato nel passaggio 1 precedente.Ad esempio, il seguente criterio di reimpostazione della quota specifica un criterio di quota denominato
MyQuotaPolicy
, che corrisponde a quanto indicato 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 questo criterio per le quote è creato e definito nello stesso proxy API. Se il criterio di quota non esiste nello stesso proxy API, è la causa dell'errore.
Nell'esempio riportato sopra, la norma Quota
MyQuotaPolicy
dovrebbe essere presente nel flusso prima dell'esecuzione della norma Reimposta quotaReset_Quota_Demo
.Poiché il criterio di quota
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 di quota target 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
Nota: il messaggio di errore riportato sopra non viene inviato come risposta al client. Viene visualizzato solo nello strumento Trace come errore del criterio di reimpostazione della quota. Di seguito è riportato uno screenshot di esempio.
L'errore restituito al client sarà semplicemente: policies.ratelimit.QuotaViolation
.
Causa
Questo errore si verifica se il riferimento alla variabile contenente il conteggio delle autorizzazioni nell'elemento <Allow>
del criterio non può essere risolto in un valore. Questo
elemento è obbligatorio e specifica l'importo per diminuire il contatore della quota.
Diagnosi
Identifica il criterio Reimposta 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 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 della norma di reimpostazione della quota non riuscita, verifica che il nome della variabile di riferimento utilizzata corrisponda al nome di riferimento identificato nella risposta all'errore (passaggio 1 precedente).
Ad esempio, la seguente norma imposta l'elemento con il riferimento
request.header.allowcount
, che corrisponde a quello indicato 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 eseguito il criterio 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 è la causa dell'errore.
Nell'esempio riportato sopra, il valore del conteggio consentito nell'elemento
<Allow>
dovrebbe essere recuperato dall'intestazione della richiesta denominata allowcount. Tuttavia, Apigee non è in grado di risolvere request.header.allowcount. Questo accade se l'header allowcount non viene passato nell'ambito della richiesta API.Ecco una richiesta API di esempio che non passa l'intestazione allowcount come parte della richiesta:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json"
dove your_host_alias è un dominio pubblico utilizzato per accedere alle API, come configurato nella proprietà
virtualhosts.hostAliases
del file delle sostituzioni. Consulta Specificare le sostituzioni della configurazione.Poiché l'intestazione allowcount non viene passata nell'ambito della richiesta, la variabile request.header.allowcount utilizzata nell'elemento
<Allow>
nel criterio di reimpostazione della quota riportato sopra 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 fa riferimento l'elemento <Allow>
esista/sia definita
e disponibile nel flusso specifico in cui viene eseguito il criterio Reimposta 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://your_host_alias/v1/reset_quota -H "Content-Type: application/json" -H "allowcount:30"
dove your_host_alias è un dominio pubblico utilizzato per accedere alle API, come configurato nella proprietà virtualhosts.hostAliases
del file delle sostituzioni.
Consulta Specificare le sostituzioni della configurazione.
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 su request.header.quotapolicy
nell'elemento <Quota>
, ma non è disponibile nel flusso proxy API dell'API, viene visualizzato l'errore riportato sopra.
<Quota ref="request.header.quotapolicy">
Diagnosi
Esamina ciascuno dei criteri di reimpostazione della quota nell'API Proxy 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 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 è la causa dell'errore.
Nell'esempio riportato di seguito, il nome del criterio di quota di destinazione dovrebbe essere recuperato dall'intestazione della richiesta denominata quotapolicy. Tuttavia, Apigee non è in grado di risolvere request.header.quotapolicy. Questo accade se l'intestazione quotapolicy non viene passata 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 passa l'intestazione quotapolicy come parte della richiesta:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json"
dove your_host_alias è un dominio pubblico utilizzato per accedere alle API, come configurato nella proprietà
virtualhosts.hostAliases
del file delle sostituzioni. Consulta Specificare le sostituzioni della configurazione.Poiché l'intestazione quotapolicy non viene passata nell'ambito della richiesta, il riferimento request.header.quotapolicy utilizzato nell'elemento
<Quota>
in Reimposta la norma relativa alle quote sopra riportata 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 si fa riferimento nell'elemento <Quota>
venga risolto in fase di esecuzione e sia disponibile nel flusso specifico in cui viene eseguito il criterio 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://your_host_alias/v1/reset_quota -H "Content-Type: application/json" -H "quotapolicy:MyQuotaPolicy"
dove your_host_alias è un dominio pubblico utilizzato per accedere alle API, come configurato nella proprietà virtualhosts.hostAliases
del file delle sostituzioni.
Consulta Specificare le sostituzioni della configurazione.