Estás consultando 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 respuesta de 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 especificada en el elemento <Quota>
de la política de cuota de restablecimiento no se define en el proxy de API. El elemento <Quota>
es obligatorio e identifica la política de cuotas de destino cuyo contador se debe actualizar mediante la política de cuotas de restablecimiento. Esta política de cuota de destino debe crearse y definirse en el 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 se define en el proxy de la API, se produce el error anterior.
<Quota name="MyQuotaPolicy">
Diagnóstico
Identifica el nombre de la política de cuotas no válida especificado en la política de restablecimiento de cuotas. Puedes encontrar el nombre de la política de cuota en el faultstring. Por ejemplo, en la siguiente cadena de error, el nombre de la política de cuota es
MyQuotaPolicy:
"faultstring": "Invalid rate limit policy MyQuotaPolicy"
Examina cada una de las políticas de cuota de restablecimiento del proxy de API en el que se ha producido el error. Identifica la política Reset Quota específica en la que la política Quota especificada en el elemento obligatorio
<Quota>
coincida con el nombre identificado en el paso 1 anterior.Por ejemplo, la siguiente política Reset Quota especifica una política Quota llamada
MyQuotaPolicy
, que coincide con lo que hay en 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 si esta política de cuota se ha creado y definido en el mismo proxy de API. Si la política Quota no existe en el mismo proxy de API, esa es la causa del error.
En el ejemplo anterior, la política de cuota
MyQuotaPolicy
debe estar en el flujo antes de que se ejecute la política de cuota de restablecimientoReset_Quota_Demo
.Como la política de cuota
MyQuotaPolicy
no existe en el flujo, recibirás el código de error:
"errorcode": "policies.resetquota.InvalidRLPolicy"
Resolución
Asegúrate de que la política de cuotas declarada en el elemento <Quota>
se haya definido en el proxy de API. Esta política de cuota de destino debe estar disponible cuando se ejecute la política de cuota de restablecimiento.
FailedToResolveAllowCountRef
Código de error
policies.resetquota.FailedToResolveAllowCountRef
Cuerpo de respuesta de 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 respuesta al cliente. Solo se ve en la herramienta Trace como un error de la política Reset Quota. A continuación, se muestra una captura de pantalla de ejemplo.
El error que se devuelve al cliente será simplemente policies.ratelimit.QuotaViolation
.
Causa
Este error se produce si no se puede resolver el valor de la referencia a la variable que contiene el recuento permitido en el elemento <Allow>
de la política. Este elemento es obligatorio y especifica el importe en el que se debe reducir el contador de cuota.
Diagnóstico
Identifica la política Reset Quota en la que se ha producido 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 el siguiente faultstring, 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 XML de la política Reset Quota que ha fallado, comprueba que el nombre de la variable de referencia utilizada coincide con el nombre de referencia identificado en la respuesta de error (paso 1 anterior).
Por ejemplo, la siguiente política define el elemento con la referencia llamada
request.header.allowcount
, que coincide con lo que aparece 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 Reset Quota.
Si la variable es:
- Fuera del ámbito (no disponible en el flujo específico en el que se está ejecutando la política) o
- no se puede 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 debe obtener del encabezado de la solicitud llamado allowcount. Sin embargo, Apigee no puede resolver request.header.allowcount. Esto ocurre si el encabezado allowcount no se incluye en la solicitud a la API.A continuación, se muestra un ejemplo de solicitud de API que no incluye el encabezado allowcount como parte de la solicitud:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json"
Donde your_host_alias es un dominio público que se usa para acceder a tus APIs, tal como se ha configurado en la propiedad
virtualhosts.hostAliases
de tu archivo de anulaciones. Consulta Especificar anulaciones de configuración.Como el encabezado allowcount no se incluye en la solicitud, la variable request.header.allowcount que se usa en el elemento
<Allow>
de la política ResetQuota 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
Resolució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 Reset Quota.
Para corregir el ejemplo anterior, puede modificar la solicitud para incluir el encabezado allowcount, tal como se muestra a continuación:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json" -H "allowcount:30"
Donde your_host_alias es un dominio público que se usa para acceder a tus APIs, tal como se ha configurado en la propiedad virtualhosts.hostAliases
de tu archivo de anulaciones.
Consulta Especificar anulaciones de configuración.
FailedToResolveRLPolicy
Código de error
policies.resetquota.FailedToResolveRLPolicy
Cuerpo de respuesta de 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 hace referencia el atributo ref
del elemento <Quota>
.
Por ejemplo, si el atributo ref
se define como request.header.quotapolicy
en el elemento <Quota>
, pero no está disponible en el flujo del proxy de API, se produce el error anterior.
<Quota ref="request.header.quotapolicy">
Diagnóstico
Examina cada una de las políticas Reset Quota del proxy de API en el que se ha producido el error e identifica la política Reset Quota en la que no se puede resolver correctamente el nombre de la variable de referencia especificada en el elemento
<Quota>
.Determina si la variable está definida y disponible en el flujo en el que se ejecuta la política Reset Quota.
Si la variable es:
- Fuera del ámbito (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 obtiene del encabezado de la solicitud llamado quotapolicy. Sin embargo, Apigee no puede resolver request.header.quotapolicy. Esto ocurre si el encabezado quotapolicy no se incluye en 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>
A continuación, se muestra una solicitud de API de ejemplo que no incluye el encabezado quotapolicy como parte de la solicitud:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json"
Donde your_host_alias es un dominio público que se usa para acceder a tus APIs, tal como se ha configurado en la propiedad
virtualhosts.hostAliases
de tu archivo de anulaciones. Consulta Especificar anulaciones de configuración.Como el encabezado quotapolicy no se transfiere como parte de la solicitud, la referencia request.header.quotapolicy que se usa en el elemento
<Quota>
de la política ResetQuota anterior no está definida y no se puede resolver. Como resultado, recibirás la respuesta de error:"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
Resolución
Asegúrate de que el atributo ref
al que se hace referencia en el elemento <Quota>
se resuelva en tiempo de ejecución y esté disponible en el flujo específico en el que se ejecuta la política Reset Quota.
Para corregir el ejemplo anterior, puede modificar la solicitud para incluir el encabezado quotapolicy, tal como se muestra a continuación:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json" -H "quotapolicy:MyQuotaPolicy"
Donde your_host_alias es un dominio público que se usa para acceder a tus APIs, tal como se ha configurado en la propiedad virtualhosts.hostAliases
de tu archivo de anulaciones.
Consulta Especificar anulaciones de configuración.