تحديد المشاكل وحلّها في ما يتعلّق بنشر سياسة الرسائل

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

InvalidIndex

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge مع ظهور رسالة الخطأ التالية:

Error in deployment for environment [environment]
The revision is deployed, but traffic cannot flow.
AssignMessage[policy_name]: index must be greater than zero in [attribute].[index]

مثال على رسالة الخطأ

Error in deployment for environment test.
The revision is deployed, but traffic cannot flow.
AssignMessage[GenerateStudentsRequest]: index must be greater than zero in id.0

مثال للقطة شاشة

السبب

إذا كان الفهرس المحدَّد في العنصرَين <Copy> و/أو <Remove> في سياسة "تخصيص الرسالة" هو 0 أو رقمًا سالبَين، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

على سبيل المثال، إذا مرَّرت معلَمات طلب بحث متعددة بالاسم نفسه، يمكنك الوصول إليها في Edge كمتغيّرات تدفق مفهرسة. لنفترض أنك تريد تمرير معرّفات 3 طلاب كمعلمات طلب بحث، فيمكنك إجراء ذلك على النحو التالي:

https://myorg-test.apigee.net/v1/basepath?school_name=NPS&id=1&id=2&id=3

ثم لنفترض أنك تحاول الوصول إلى معلمات طلب البحث هذه بأرقام الفهرس 0 و1 و2 في سياسة "تعيين رسالة" على النحو التالي:

id.0
id.1 and
id.2

في هذه الحالة، يفشل نشر الخادم الوكيل لأنه يجب أن يبدأ الفهرس بـ 1. وهذا يعني أنه يمكنك الوصول إلى معلمة طلب البحث الأولى "id=1" بصفتها "id.1". للوصول إلى مَعلمة طلب البحث الثانية "id=2"، عليك استخدام الفهرس 2، أي "id.2". وبالمثل، للوصول إلى معلمة طلب البحث الثالثة "id=3"، يمكنك استخدام "id.3".

ويمكنك العثور على المزيد من المعلومات هنا.

التشخيص

  1. حدِّد سياسة تعيين الرسالة حيث حدث الخطأ واسم السمة والفهرس غير الصالح. يمكنك العثور على جميع هذه العناصر في رسالة الخطأ. على سبيل المثال، في الخطأ التالي، يكون اسم السياسة هو GeneratingGeocodingRequest واسم السمة id والفهرس 0:

    AssignMessage[GenerateStudentsRequest]: index must be greater than zero in id.0
    
  2. تحقق من أن اسم السمة والفهرس المستخدم في XML لسياسة تعيين الرسالة التي تعذّر تعيينها يتطابق مع اسم السمة والفهرس المحدد في رسالة الخطأ (الخطوة رقم 1 أعلاه). على سبيل المثال، تحدِّد السياسة التالية السمة id والفهرس 0، والتي تتطابق مع ما ورد في رسالة الخطأ:

    <AssignMessage name="GenerateStudentsRequest">
      <AssignTo createNew="true" type="request">StudentsInfoRequest</AssignTo>
      <Copy source="request">
          <QueryParams>
              <QueryParam name="school_name"/>
              <QueryParam name="id.0"/>
              <QueryParam name="id.1"/>
              <QueryParam name="id.2"/>
          </QueryParams>
      </Copy>
    </AssignMessage>
    
  3. إذا كان الفهرس المحدد هو 0 أو رقم سالب، يكون هذا هو سبب الخطأ.

    في المثال "تعيين سياسة الرسالة" أعلاه، أنت تحاول الوصول إلى القيمة الأولى لمعلمة طلب البحث "id" باستخدام الفهرس 0. ومن ثمَّ، يتعذر نشر الخادم الوكيل لواجهة برمجة التطبيقات مع ظهور الخطأ:

    AssignMessage[GenerateStudentsRequest]: index must be greater than zero in id.0
    

درجة الدقّة

في "تخصيص الرسالة"، عند الوصول إلى عدة عناوين أو معلَمات طلب بحث أو معلَمات أخرى تحمل الاسم نفسه، تأكَّد من أنّ الفهرس أكبر من صفر دائمًا. مثال:

<AssignMessage name="GenerateStudentsRequest">
    <AssignTo createNew="true" type="request">StudentsInfoRequest</AssignTo>
    <Copy source="request">
        <QueryParams>
            <QueryParam name="school_name"/>
            <QueryParam name="id.1"/>
            <QueryParam name="id.2"/>
            <QueryParam name="id.3"/>
        </QueryParams>
    </Copy>
</AssignMessage>

InvalidVariableName

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge مع ظهور رسالة الخطأ التالية:

Error Saving Revision [revision_number]
The revision is deployed, but traffic cannot flow. AssignMessage schema validation failed: invalid variable name - null - in assign variable.

مثال على رسالة الخطأ

Error Saving Revision 3
AssignMessage schema validation failed: invalid variable name - null - in assign variable.

مثال للقطة شاشة

السبب

إذا كان العنصر الفرعي <Name> فارغًا أو لم يتم تحديده في العنصر <AssignVariable>، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات بسبب عدم توفّر اسم متغيّر صالح يتم تخصيص قيمة له. يجب إدخال اسم متغيّر صالح.

التشخيص

افحص جميع سياسات "تعيين الرسائل" في الخادم الوكيل لواجهة برمجة التطبيقات المحدَّد الذي حدث به الخطأ. إذا كانت هناك أي سياسة لإسناد الرسالة يكون فيها العنصر الفرعي <Name> فارغًا أو لم يتم تحديده في العنصر <AssignVariable>، يكون سبب الخطأ هو سبب الخطأ.

مثال 1: لم يتم تحديد عنصر <Name> لسياسة "تعيين الرسالة" التالية.

<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1">
    <DisplayName>Assign Message-1</DisplayName>
    <Properties/>
    <AssignVariable>
        <Value>abcd1234</Value>
    </AssignVariable>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <AssignTo createNew="true" transport="http" type="request">googleBookReq</AssignTo>
</AssignMessage>

المثال 2: تحتوي سياسة "تخصيص الرسالة" التالية على عنصر <Name> فارغ .

<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1">
    <DisplayName>Assign Message-1</DisplayName>
    <Properties/>
    <AssignVariable>
        <Name></Name>
        <Value>abcd1234</Value>
    </AssignVariable>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <AssignTo createNew="true" transport="http" type="request">googleBookReq</AssignTo>
</AssignMessage>

درجة الدقّة

تأكَّد من أن العنصر الفرعي <Name> محدد دائمًا وغير فارغ داخل العنصر <AssignVariable> في سياسة "تعيين الرسالة". مثال:

<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1">
    <DisplayName>Assign Message-1</DisplayName>
    <Properties/>
        <AssignVariable>
        <Name>appSecret</Name>
        <Value>abcd1234</Value>
    </AssignVariable>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <AssignTo createNew="true" transport="http" type="request">googleBookReq</AssignTo>
</AssignMessage>