Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. info
InvalidRLPolicy
Hata kodu
policies.resetquota.InvalidRLPolicy
Hata yanıtı gövdesi
{ "fault": { "faultstring": "Invalid rate limit policyquota_policy_name ", "detail": { "errorcode": "policies.resetquota.InvalidRLPolicy" } } }
Örnek hata mesajı
{
"fault": {
"faultstring": "Invalid rate limit policy MyQuotaPolicy",
"detail": {
"errorcode": "policies.resetquota.InvalidRLPolicy"
}
}
}
Neden
Bu hata, Kota politikası<Quota>
Kota politikası sıfırlama, API proxy'sinde tanımlı değil. <Quota>
öğesi zorunludur
ve sayacının
Kota Sıfırlama politikasını. Bu hedef Kota politikası içinde oluşturulmalı ve tanımlanmalıdır.
ve akış sırasında kullanılabilir olması gerekir.
Örneğin, <Quota>
öğesinin aşağıda görüldüğü gibi tanımlandığını varsayalım, ancak
API Proxy'sinde MyQuotaPolicy
tanımlı değilse yukarıdaki hatayı alırsınız.
<Quota name="MyQuotaPolicy">
Teşhis
Kota Sıfırlama politikasında belirtilen geçersiz Kota politikası adını tanımlayın. Kota politikasının adını hata dizesinde bulabilirsiniz. Örneğin, aşağıdaki hata dizesi: Kota politikasının adı
MyQuotaPolicy:
"faultstring": "Invalid rate limit policy MyQuotaPolicy"
Hatanın mevcut olduğu API Proxy'sinde Kota Sıfırlama politikalarının her birini inceleyin. olmuştur. Kota politikasının geçerli olduğu Kotayı Sıfırlama politikasını zorunlu
<Quota>
öğesinde belirtilen adla eşleşiyor başlıklı makaleyi inceleyin.Örneğin aşağıdaki Kotayı Sıfırla politikası,
MyQuotaPolicy
, hata dizesindeki değerle eşleşir:<?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>
Bu Kota politikasının aynı API proxy'si içinde oluşturulup oluşturulmadığını ve tanımlanıp tanımlanmadığını belirleyin. Kota politikası aynı API proxy'sinde bulunmuyorsa bunun nedeni budur anlamına gelir.
Yukarıda gösterilen örnekte, Kotayı Sıfırla politikası
Reset_Quota_Demo
yürütülmeden önce Kota politikasıMyQuotaPolicy
'ün akışta bulunması gerekir.Akışta
MyQuotaPolicy
Kota Politikası bulunmadığından şu hata kodunu alın:
"errorcode": "policies.resetquota.InvalidRLPolicy"
Çözünürlük
<Quota>
öğesinde belirtilen Kota Politikasının
API proxy'si. Bu hedef Kota politikasının, Kota Sıfırlama politikası
yürütülür.
FailedToResolveAllowCountRef
Hata kodu
policies.resetquota.FailedToResolveAllowCountRef
Hata yanıtı gövdesi
Failed to resolve allow count referencereference_name for identifieridentifier_name in ResetQuotaStepDefinition:policy_name ;API Proxy:proxy_name ;Revision:revision_number ;Environment:env_name ;Organization:org_name
Örnek hata mesajı
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
İstemciye döndürülen hata şöyle olur: policies.ratelimit.QuotaViolation
.
Neden
Bu hata, politikanın <Allow>
öğesinde izin sayısını içeren değişkene yapılan referans bir değere çözülemiyorsa ortaya çıkar. Bu öğe zorunludur ve kota sayacını azaltacak tutarı belirtir.
Teşhis
Hatanın meydana geldiği yerde Kota Sıfırlama politikasını ve çözümlenemeyen referans değişkenine eklenir. Bu öğelerin her ikisini de yazın.
Örneğin, aşağıdaki hata dizesinde politika adı
ResetQuota
ve referansrequest.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
Başarısız Kota Sıfırlama politikası XML'inde referans adının kullanılan değişken, hata yanıtında tanımlanan referans adıyla eşleşiyor (yukarıdaki 1. Adım).
Örneğin, aşağıdaki politika, öğeyi
request.header.allowcount
(hatadaki değerle eşleşir):<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>
Referans değişkeninin tanımlanıp tanımlanmadığını ve akışta kullanılabilir olup olmadığını (Kota Sıfırlama politikasının yürütüleceği)
Değişken şunlardan biriyse:
- kapsam dışında (politikanın yürütüldüğü belirli akışta kullanılamaz) veya
- çözülemiyor (tanımlanmamış)
Bu durumda, hatanın nedeni budur.
Yukarıdaki örnekte,
<Allow>
öğesinde izin verilen sayının değeri parametresinin allowcount adlı istek başlığından alınması gerekir. Ancak Edge, request.header.allowcount parametresini çözemiyor. Bu durum, allowcount başlığı, API isteğinin bir parçası olarak iletilmez.Aşağıda, parça olarak allowcount başlığını geçirmeyen örnek bir API isteği verilmiştir hakkında daha fazla bilgi edinin:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json"
allowcount başlığı isteğin bir parçası olarak iletilmediğinden, değişken Yukarıdaki Sıfırlama bölümünde
<Allow>
öğesinde kullanılan request.header.allowcount Kota politikası tanımsız ve bu nedenle çözümlenemiyor. Böylece size hata yanıtı: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
Çözünürlük
<Allow>
öğesinde atıfta bulunulan değişkenin mevcut olduğundan/tanımlandığından ve kota sıfırlama politikasının yürütüldüğü belirli akışta kullanılabildiğinden emin olun.
Yukarıda gösterilen örneği düzeltmek için isteği, aşağıda gösterildiği gibi allowcount başlığını içerecek şekilde değiştirebilirsiniz:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json" -H "allowcount:30"
FailedToResolveRLPolicy
Hata kodu
policies.resetquota.FailedToResolveRLPolicy
Hata yanıtı gövdesi
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
Örnek hata mesajı
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
Neden
Bu hata,ref
<Quota>
öğesi çözümlenemiyor.
Örneğin, ref
özelliği <Quota>
öğesinde request.header.quotapolicy
olarak ayarlanmışsa ancak API proxy akışında kullanılamıyorsa yukarıdaki hatayı alırsınız.
<Quota ref="request.header.quotapolicy">
Teşhis
Hatanın mevcut olduğu API Proxy'sinde Kota Sıfırlama politikalarının her birini inceleyin. hatasını vermelidir ve referans adı tam olarak doğru yerdedir.
<Quota>
öğesinde belirtilen değişken doğru şekilde çözümlenemiyor.Değişkenin, tanımlı olup olmadığını ve değişkenin Kota Sıfırlama politikası yürütülür.
Değişken şunlardan biriyse:
- Kapsam dışında (politikanın yürütüldüğü belirli akışta kullanılamaz) veya
- çözülemiyor (tanımlanmamış)
Bu durumda, hatanın nedeni budur.
Aşağıdaki örnekte gösterilen örnekte, hedef Kota politikasının adının quotapolicy adlı istek başlığından alınır. Ancak Edge request.header.quotapolicy bölümünü içermelidir. Bu durum, başlığın quotapolicy API isteğinin bir parçası olarak iletilmez.
<?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>
İsteğin bir parçası olarak quotapolicy üst bilgisini iletmeyen örnek bir API isteği aşağıda verilmiştir:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json"
quotapolicy başlığı, isteğin bir parçası olarak iletilmediğinden referans Yukarıdaki Sıfırlama bölümünde
<Quota>
öğesinde kullanılan request.header.quotapolicy Kota politikası tanımsız ve çözümlenemiyor. Bunun sonucunda, hata yanıtı:"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
Çözünürlük
<Quota>
öğesinde referans verilen ref
özelliğinin şunda çözümlendiğinden emin olun:
ve Kota Sıfırlama politikasının yürütüldüğü belirli akışta kullanılabilir.
Yukarıda gösterilen örneği düzeltmek için isteği aşağıda gösterildiği gibi quotapolicy başlığını içerecek şekilde değiştirebilirsiniz:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json" -H "quotapolicy:MyQuotaPolicy"