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 la norma Quota specificata nell'elemento <Quota> della norma Reset Quota non è definita 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 per il ripristino delle quote. 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, viene visualizzato l'errore riportato sopra.
<Quota name="MyQuotaPolicy">
Diagnosi
Identifica il nome della norma relativa alla quota non valido specificato nella norma di reimpostazione della quota. Puoi trovare il nome della norma relativa alla quota nella stringa di errore. Ad esempio, nella seguente stringa di errore, il nome della policy Quota è
MyQuotaPolicy:"faultstring": "Invalid rate limit policy MyQuotaPolicy"Esamina ogni criterio di reimpostazione delle quote 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.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 questo criterio per le quote viene creato e definito 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 Quota
MyQuotaPolicydeve esistere nel flusso prima dell'esecuzione della norma Reimposta quotaReset_Quota_Demo.Poiché la norma relativa alle quote
MyQuotaPolicynon esiste nel flusso, riceverai il codice di errore:
"errorcode": "policies.resetquota.InvalidRLPolicy"
Risoluzione
Assicurati che il criterio Quota dichiarato nell'elemento <Quota> sia definito 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
Nota: il messaggio di errore riportato sopra non viene inviato come risposta al client. Viene visualizzato solo nello strumento Trace come errore del criterio Reimposta 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 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 policy 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 del criterio Reimposta quota non riuscito, 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 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 eseguita la policy Reimposta quota.
Se la variabile è:
- al di fuori dell'ambito (non disponibile nel flusso specifico in cui viene eseguita la policy) 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, Apigee 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://your_host_alias/v1/reset_quota -H "Content-Type: application/json"
dove your_host_alias è un dominio pubblico utilizzato per accedere alle tue API, come configurato nella proprietà
virtualhosts.hostAliasesnel file di override. Consulta Specificare gli override della configurazione.Poiché l'intestazione allowcount non viene trasmessa come parte della richiesta, la variabile request.header.allowcount utilizzata nell'elemento
<Allow>nella policy Reset 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 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 tue API,
come configurato nella proprietà virtualhosts.hostAliases nel file di override.
Consulta Specificare gli override
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 la variabile a cui fa riferimento l'attributo ref nell'elemento
<Quota> non può essere risolta.
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
precedente.
<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 eseguita la policy) 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, Apigee 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://your_host_alias/v1/reset_quota -H "Content-Type: application/json"
dove your_host_alias è un dominio pubblico utilizzato per accedere alle tue API, come configurato nella proprietà
virtualhosts.hostAliasesnel file di override. Consulta Specificare gli override della configurazione.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 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 tue API,
come configurato nella proprietà virtualhosts.hostAliases nel file di override.
Consulta Specificare gli override
della configurazione.