Estás viendo la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.
InvalidRLPolicy
Código de error
policies.resetquota.InvalidRLPolicy
Cuerpo de la respuesta del error
{ "fault": { "faultstring": "Invalid rate limit policy quota_policy_name", "detail": { "errorcode": "policies.resetquota.InvalidRLPolicy" } } }
Ejemplo de mensaje de error
{
"fault": {
"faultstring": "Invalid rate limit policy MyQuotaPolicy",
"detail": {
"errorcode": "policies.resetquota.InvalidRLPolicy"
}
}
}
Causa
Este error se produce si la política de cuota que se especifica en el elemento <Quota>
de la política de restablecimiento de cuotas no se define en el proxy de API. El elemento <Quota>
es obligatorio e identifica la política de cuota de destino cuyo recuento debe actualizarse a través de la política de restablecimiento de cuotas. En esta política de cuotas de destino, se debe crear y definir dentro del mismo proxy de API y debe estar disponible durante el flujo.
Por ejemplo, supongamos que el elemento <Quota>
se define como se muestra a continuación, pero si MyQuotaPolicy
no está definido en el proxy de API, se muestra el error anterior.
<Quota name="MyQuotaPolicy">
Diagnóstico
Identifica el nombre de política de cuota no válido que se especifica en la política de restablecimiento de cuotas. Puedes encontrar el nombre de la política de cuotas en la string con errores. Por ejemplo, en la siguiente string con errores, el nombre de la política de cuotas es
MyQuotaPolicy:
"faultstring": "Invalid rate limit policy MyQuotaPolicy"
Examina cada una de las políticas de restablecimiento de cuotas en el proxy de API en el que se produjo el error. Identifica la política de restablecimiento de cuotas determinada en la que la política de cuotas especificada en el elemento obligatorio
<Quota>
coincide con el nombre identificado en el paso 1 anterior.Por ejemplo, la siguiente política de restablecimiento de cuotas especifica una política de cuotas llamada
MyQuotaPolicy
, que coincide con lo que está en la string con errores:<?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 si se crea y define esta política de cuota en el mismo proxy de API. Si la política de cuotas no existe dentro del mismo proxy de API, entonces esa es la causa del error.
En el ejemplo anterior, la política de cuota
MyQuotaPolicy
debe existir en el flujo antes de que se ejecute la política de restablecimiento de cuotasReset_Quota_Demo
.Debido a que la política de cuotas
MyQuotaPolicy
no existe en el flujo, recibirás el siguiente código de error:
"errorcode": "policies.resetquota.InvalidRLPolicy"
Solución
Asegúrate de que la política de cuotas declarada en el elemento <Quota>
se defina en el proxy de API. Esta política de cuotas de destino debe estar disponible cuando se ejecuta la política de restablecimiento de cuotas.
FailedToResolveAllowCountRef
Código de error
policies.resetquota.FailedToResolveAllowCountRef
Cuerpo de la respuesta del error
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
Ejemplo de mensaje de error
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: El mensaje de error anterior no se envía como una respuesta al cliente. Solo se ve en la herramienta de seguimiento como un error de la política de restablecimiento de cuotas. A continuación, se muestra una captura de pantalla de muestra.
El error que se muestra al cliente será el siguiente: policies.ratelimit.QuotaViolation
.
Causa
Este error se produce si la referencia a la variable que contiene el recuento permitido en el elemento <Allow>
de la política no se puede resolver en un valor. Este elemento es obligatorio y especifica el importe para reducir el recuento de cuotas.
Diagnóstico
Identifica la política de restablecimiento de cuotas en la que se generó el error y el nombre de la variable de referencia que no se puede resolver. Puedes encontrar ambos elementos en la respuesta de error.
Por ejemplo, en la siguiente string con errores, el nombre de la política es
ResetQuota
y la referencia esrequest.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
En el archivo XML de la política de restablecimiento de cuotas, verifica que el nombre de la variable de referencia que se usa coincida con el nombre de referencia identificado en la respuesta de error (paso 1 anterior).
Por ejemplo, con la siguiente política, se establece el elemento con la referencia llamada
request.header.allowcount
, que coincide con lo que hay en el error:<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 si la variable de referencia está definida y disponible en el flujo en el que se ejecuta la política de restablecimiento de cuotas.
Verifica si la variable tiene una de las siguientes características:
- fuera de alcance (no disponible en el flujo específico en el que se ejecuta la política) o
- no se pueden resolver (no está definido)
entonces esa es la causa del error.
En el ejemplo anterior, el valor del recuento permitido en el elemento
<Allow>
se debería recuperar del encabezado de solicitud llamado allowcount. Sin embargo, Apigee no puede resolver request.header.allowcount. Esto sucede si no se pasa el encabezado allowcount como parte de la solicitud a la API.La siguiente es una solicitud a la API de muestra que no pasa el encabezado allowcount como parte de la solicitud:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json"
En el que your_host_alias es un dominio público que se usa para acceder a tus API, como se configura en la propiedad
virtualhosts.hostAliases
en tu archivo de anulaciones. Consulta la página Especifica anulaciones de configuración.Debido a que el encabezado allowcount no se pasa como parte de la solicitud, la variable request.header.allowcount que se usa en el elemento
<Allow>
en la política de restablecimiento de cuotas anterior no está definida y, por lo tanto, no se puede resolver. Por lo tanto, recibirás la respuesta de error: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
Solución
Asegúrate de que la variable a la que se hace referencia en el elemento <Allow>
exista o esté definida y disponible en el flujo específico, en el que se ejecuta la política de restablecimiento de cuotas.
Para corregir el ejemplo anterior, puedes modificar la solicitud a fin de que incluya el encabezado allowcount, como se muestra a continuación:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json" -H "allowcount:30"
En el que your_host_alias es un dominio público que se usa para acceder a tus API, como se configura en la propiedad virtualhosts.hostAliases
en tu archivo de anulaciones.
Consulta la página Especifica anulaciones de configuración.
FailedToResolveRLPolicy
Código de error
policies.resetquota.FailedToResolveRLPolicy
Cuerpo de la respuesta del error
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
Ejemplo de mensaje de error
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
Causa
Este error se produce si no se puede resolver la variable a la que se hace referencia en el atributo ref
del elemento <Quota>
.
Por ejemplo, si el atributo ref
se configura como request.header.quotapolicy
en el elemento <Quota>
, pero no está disponible en el flujo del proxy de API, se mostrará el error anterior.
<Quota ref="request.header.quotapolicy">
Diagnóstico
Examina cada una de las políticas de restablecimiento de cuotas en el proxy de API en el que se produjo el error e identifica la política de restablecimiento de cuotas en el que no se puede resolver el nombre de la variable de referencia especificada en el elemento
<Quota>
de forma correcta.Determina si la variable está definida y disponible en el flujo en el que se ejecuta la política de restablecimiento de cuotas.
Verifica si la variable tiene una de las siguientes características:
- fuera del alcance (no disponible en el flujo específico en el que se ejecuta la política) o
- no se puede resolver (no está definido)
entonces esa es la causa del error.
En el ejemplo que se muestra a continuación, se supone que el nombre de la política de cuota de destino se recupera del encabezado de la solicitud llamado quotapolicy. Sin embargo, Apigee no puede resolver request.header.quotapolicy. Esto sucede si no se pasa el encabezado quotapolicy como parte de la solicitud a la 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>
La siguiente es una solicitud a la API de muestra que no pasa el encabezado quotapolicy como parte de la solicitud:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json"
En el que your_host_alias es un dominio público que se usa para acceder a tus API, como se configura en la propiedad
virtualhosts.hostAliases
en tu archivo de anulaciones. Consulta la página Especifica anulaciones de configuración.Debido a que el encabezado quotapolicy no se pasa como parte de la solicitud, request.header.quotapolicy de referencia que se usa en el elemento
<Quota>
en la política de restablecimiento de cuotas no está definida y no se puede resolver. Como resultado, recibirás la siguiente respuesta de error:"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
Solución
Asegúrate de que el atributo ref
al que se hace referencia en el elemento <Quota>
se resuelva en el entorno de ejecución y que esté disponible en el flujo específico, en el que se ejecuta la política de restablecimiento de cuotas.
Para corregir el ejemplo anterior, puedes modificar la solicitud a fin de incluir el encabezado quotapolicy como se muestra a continuación:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json" -H "quotapolicy:MyQuotaPolicy"
En el que your_host_alias es un dominio público que se usa para acceder a tus API, como se configura en la propiedad virtualhosts.hostAliases
en tu archivo de anulaciones.
Consulta la página Especifica anulaciones de configuración.