تعذّر ضبط خطأ النشر

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

المشكلة

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

رسالة الخطأ

ستحصل على رسالة خطأ في واجهة مستخدم Edge كما هو موضح أدناه:

The revision is deployed, but traffic cannot flow.
com.apigee.kernel.exceptions.spi.UncheckedException{ code = application.bootstrap.FailedToConfigure, message = Configuration failed, associated contexts = []}

في ما يلي لقطة شاشة لنموذج رسالة خطأ تمت ملاحظتها في واجهة مستخدم Edge:

الأسباب المحتملة

قد يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات بسبب "تعذّر إجراء الإعداد" ويرجع ذلك إلى عدة أسباب مختلفة. يسرد الجدول التالي بعض الأسباب المرصودة بشكل متكرر والتي تؤدي إلى هذا الخطأ :

السبب الوصف تعليمات تحديد المشاكل وحلّها التي تنطبق على
عدم توفّر صف Java في سياسة JavaCallout إحدى فئات Java غير متوفّرة في ملف JAR الذي تشير إليه سياسة JavaCallout. مستخدمو Edge Private Cloud
استخدام معامِلات غير صحيحة في الشروط ضمن تدفق الشروط وتكون الخصائص/التعبيرات المستخدمة على أحد جانبي عوامل التشغيل أو كليهما في الشروط غير صالحة.
اسم مضيف غير صالح في سياسة تسجيل الرسائل لا يمكن حل اسم المضيف المُستخدَم في سياسة MessageLogging أو قد يحتوي على بعض الرموز الخاصة غير المرغوب فيها.
اسم KeyValueMap غير صالح مفتاح KeyValueMap غير صالح أو فارغ في سياسة KeyValueMapOperations في الخادم الوكيل لواجهة برمجة التطبيقات.

خطوات التشخيص الشائعة

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

    curl -v <management-server-host>:<port#>/v1/runtime/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/deployments -u <user>
    
  2. في ما يلي مثال على الناتج من واجهة برمجة التطبيقات أعلاه:

    "server" : [ { 
    "error" : "com.apigee.kernel.exceptions.spi.UncheckedException{ code = application.bootstrap.FailedToConfigure, message = Configuration failed, associated contexts = []}", 
    "status" : "error", 
    "type" : [ "message-processor" ], 
    "uUID" : "0a20926c-f4bf-401b-af84-05fd84b9f492" 
    }, { 
    "error" : "com.apigee.kernel.exceptions.spi.UncheckedException{ code = application.bootstrap.FailedToConfigure, message = Configuration failed, associated contexts = []}", 
    "status" : "error", 
    "type" : [ "message-processor" ], 
    "uUID" : "f2ee6ab4-a108-4465-a7ba-b56530d8e3fc" 
    }, { 
    "error" : "com.apigee.kernel.exceptions.spi.UncheckedException{ code = application.bootstrap.FailedToConfigure, message = Configuration failed, associated contexts = []}", 
    "status" : "error", 
    "type" : [ "message-processor" ], 
    "uUID" : "0f41991e-b310-4e77-aac5-5fdb150ef9f6" 
    },
    
  3. وستظهر لك رسالة الخطأ "تعذّر الضبط" في كل معالج من معالِجات الرسائل في نتائج حالة النشر.

  4. سجّل الدخول إلى أحد معالجات الرسائل وراجع السجل /opt/apigee/var/log/edge-message-processor/logs/system.log. تحقَّق مما إذا كانت هناك أي أخطاء أثناء نشر الخادم الوكيل لواجهة برمجة التطبيقات.

  5. بناءً على الخطأ/الاستثناء الذي يظهر في سجل معالج الرسائل، يلزمك اتباع الخطوات المناسبة لاستكشاف الأخطاء وإصلاحها والحل للمشكلة.

  6. تعرض الأقسام التالية بعض الاستثناءات الأكثر شيوعًا التي تؤدي إلى ظهور خطأ النشر "تعذّر الإعداد" وتقدِّم خطوات لتحديد المشاكل وحلّها.

السبب: عدم توفّر فئة Java في سياسة JavaCallout

التشخيص

  1. في سجلات معالج الرسائل، إذا رأيت أي استثناء بالرسالة "تعذّر إنشاء مثيل فئة JavaCallout " أثناء نشر خادم وكيل لواجهة برمجة التطبيقات (DeployEvent) كما هو موضح أدناه، انتقِل إلى الخطوة رقم 2. وإذا لم يكن الأمر كذلك، انتقِل إلى العوامل غير الصحيحة المستخدَمة في الشروط ضمن تدفق الشروط.
  2. يعرض معالج الرسائل الاستثناء التالي أثناء نشر خادم وكيل واجهة برمجة التطبيقات:

    2017-10-10 05:02:42,330 Apigee-Main-5 ERROR MESSAGING.CONFIGURATION - MessageProcessorServiceImpl.configure() : error configuring config events [DeployEvent{organization='myorg', application='oauth2', applicationRevision='14', deploymentSpec=basepath=/;env=dev;, deploymentID=null}] 
    com.apigee.kernel.exceptions.spi.UncheckedException: Failed to instantiate the JavaCallout Class com.something.apigee.callout.crypto.main.SecretCallout 
    at com.apigee.steps.javacallout.JavaCalloutStepDefinition.newInstance(JavaCalloutStepDefinition.java:89) ~[javacallout-1.0.0.jar:na] 
    at com.apigee.messaging.runtime.StepDefinition.getStepDefinitionExecution(StepDefinition.java:230) ~[message-processor-1.0.0.jar:na] 
    
    <snipped>
    
  3. تشير رسالة الخطأ في الاستثناء أعلاه إلى أنّه تعذّر إنشاء مثيل لفئة JavaCallout com.something.apigee.callout.crypto.main.SecretCallout. يحدث هذا الخطأ بشكل عام عندما لا تكون الفئة المحدّدة متاحة في ملف JAR المحدّد في سياسة JavaCallout أو في أي من ملفات JAR التابعة.

  4. تحقَّق من ملف JAR الذي يحتوي على جميع الفئات المتعلّقة بالحزمة com.something.apigee.callout.crypto.main وتأكّد من عدم توفّر الفئة com.something.apigee.callout.crypto.main.SecretCallout المحدّدة.

الدقة

  1. أضِف الفئة الناقصة إلى ملف JAR المحدّد وحمِّل ملف JAR.
  2. أعِد نشر خادم وكيل واجهة برمجة التطبيقات.
  3. في المثال أعلاه، حللنا المشكلة من خلال:
    1. جارٍ إضافة الفئة com.something.apigee.callout.crypto.main.SecretCallout غير المتوفّرة إلى ملف JAR.
    2. تحميل ملف JAR المحدّث وإعادة نشر خادم وكيل واجهة برمجة التطبيقات

السبب: عوامل تشغيل غير صحيحة تُستخدم مع عوامل التشغيل في مسار الشرط

التشخيص

  1. في سجلّات "معالج الرسائل"، إذا ظهر لك com.apigee.expressions.parser.ParseException أثناء نشر الخادم الوكيل لواجهة برمجة التطبيقات أو التدفق المشترك كما هو موضّح في نماذج الرسائل أدناه، انتقِل بعد ذلك إلى الخطوة رقم 2. إذا لم يكن الأمر كذلك، فانتقل إلى السبب التالي وراء اسم مضيف غير صالح في سياسة تسجيل الرسائل.

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

    com.apigee.expressions.parser.ParseException: Both the operands for EQUALS expression should be data expressions
    
    
  2. لنلقِ نظرة على مثال لفهم كيفية تشخيص هذه المشكلة.

    مثال : Operands لـ <Operator> يجب أن يكون التعبير عبارة عن تعبيرات بيانات

  3. يعرض معالج الرسائل الاستثناء التالي أثناء نشر التدفق المشترك:

    2017-11-23 09:11:04,498  Apigee-Main-6 ERROR MESSAGING.RUNTIME - AbstractConfigurator.loadXMLConfigurations() : Unable to Load default for path /organizations/myorg/apiproxies/Introspection/revisions/12/sharedflows/default
    2017-11-23 09:11:04,499  Apigee-Main-6 ERROR MESSAGING.RUNTIME - Application.sync() :  sync error for Introspection and revision 12
    2017-11-23 09:11:04,499  Apigee-Main-6 ERROR MESSAGING.RUNTIME - Application.sync() :  Actual Error
    com.apigee.expressions.parser.ParseException: Both the operands for EQUALS expression should be data expressions
        at com.apigee.expressions.parser.ExpressionParser.buildExpressionTree(ExpressionParser.java:337) ~[expressions-1.0.0.jar:na]
        at com.apigee.expressions.parser.ExpressionParser.parse(ExpressionParser.java:24) ~[expressions-1.0.0.jar:na]
        at com.apigee.expressions.parser.ExpressionParser.parseLogicExpression(ExpressionParser.java:28) ~[expressions-1.0.0.jar:na]
        at com.apigee.messaging.runtime.Step.getExpression(Step.java:67) ~[message-processor-1.0.0.jar:na]
        at com.apigee.messaging.runtime.Step.handleAdd(Step.java:58) ~[message-processor-1.0.0.jar:na]
        at com.apigee.messaging.runtime.SharedFlowRuntime.addStep(SharedFlowRuntime.java:81) ~[message-processor-1.0.0.jar:na]  <snipped>
    
  4. رسالة الخطأ في ParseException - "Both the operands for EQUALS expression should be data expressions" يشير إلى أن هناك شرطًا يتضمن قيمة يساوي (=) أو لا يساوي (!=) أو الإحصائيات مع عامل التشغيل (=|).

  5. راجِع الشروط في جميع "تدفقات الشروط" التي تتضمّن عامل التشغيل المعيّن المذكور في رسالة الخطأ وتحقَّق مما إذا كانت هناك أي من المشاكل التالية:

    1. وتكون التعبيرات على أي من جانبي عامل التشغيل من نفس النوع. على سبيل المثال، إذا كان لديك متغير سلسلة على الجانب الأيسر من عامل التشغيل، فأنت بحاجة إلى متغير سلسلة أو قيمة سلسلة أخرى على الجانب الأيمن.
    2. يتم استخدام المتغيرات الصالحة بين عوامل التشغيل.
    3. هناك مسافة بين عامل التشغيل وكل التعبيرات.

  6. إذا لم يتم استيفاء أي من المعايير المذكورة أعلاه، فستحصل على استثناء ParseException - "Both the operands for EQUALS expression should be data expressions".

  7. لنلقِ نظرة على مثال لفهم هذه المشكلة. إليك نموذج حالة خطأ

    <Condition>
               (fault.name = "invalid_access_token") or(fault.name = "ApiKeyNotApproved")
    </Condition>
    
  8. في هذا المثال، يمكنك ملاحظة عدم وجود مسافة بين "أو" المشغل ثم الشرط التالي. لذلك عند تحليل الشرط الثاني، يتم استخدام التعبير الأول كـ "or(error.name" لعامل التشغيل EQUALS. هذا ليس اسم متغير صالحًا، ولذلك لا يتم التعامل معه كتعبير بيانات صالح. نتيجةً لذلك، تحصل على الاستثناء:

    com.apigee.expressions.parser.ParseException: Both the operands for EQUALS expression should be data expressions
    
    

الدقة

  1. تأكد من أن لديك دائمًا تعبيرات بيانات مناسبة على كلا جانبي العوامل.
  2. في المثال الذي تمت مناقشته أعلاه، كان الحل هو التأكد من وجود مساحة بعد حرف "أو" كما هو موضح في مقتطف الرمز:

    <Condition>
               (fault.name = "invalid_access_token") or (fault.name = "ApiKeyNotApproved")
    </Condition>
    
    

اسم مضيف غير صالح في سياسة تسجيل الرسائل

التشخيص

  1. في سجلّات "معالج الرسائل"، إذا ظهر لك أي استثناء بالرسالة "HostName" (اسم المضيف غير صالح) أثناء نشر الخادم الوكيل لواجهة برمجة التطبيقات أو التدفق المشترك كما هو موضَّح أدناه، تابِع إلى الخطوة رقم 2. إذا لم يكن الأمر كذلك، انتقِل إلى السبب التالي الذي يؤدي إلى اسم KeyValueMap غير صالح.

    com.apigee.rest.framework.ValidationException: Invalid syslog config: Invalid HostName 'splunkprod.myorg.com/' for Syslog handler
    
  2. لنلقِ نظرة أدناه على مثالَين لفهم كيفية تحديد هذه المشكلة وحلّها.

مثال 1: اسم المضيف الذي يتضمن رمزًا خاصًا غير مرغوب فيه

  1. يعرض معالج الرسائل الاستثناء التالي أثناء نشر خادم وكيل واجهة برمجة التطبيقات:

      2018-01-20 02:12:13,535 Apigee-Main-3 ERROR MESSAGING.CONFIGURATION - MessageProcessorServiceImpl.configure() : error configuring config events [DeployEvent{organization='myorg', application='providersearch', applicationRevision='4', deploymentSpec=basepath=/;env=prod;, deploymentID=null}] 
      com.apigee.rest.framework.ValidationException: Invalid syslog config: Invalid HostName 'splunkprod.myorg.com/' for Syslog handler 
      at com.apigee.messaging.runtime.destinations.SyslogDestination.<init>(SyslogDestination.java:44) ~[message-processor-1.0.0.jar:na] 
      at com.apigee.messaging.runtime.destinations.SysLoggerFactory.getInstance(SysLoggerFactory.java:39) ~[message-processor-1.0.0.jar:na]
      at com.apigee.messaging.runtime.destinations.DestinationRegistry.newDestination(DestinationRegistry.java:44) ~[message-processor-1.0.0.jar:na] 
      ...<snipped>
    
  2. يوضِّح الاستثناء أعلاه أنّ عملية النشر تخفق بسبب "اسم مضيف غير صالح '<hostname>' لمعالِج سجلّ النظام". ويشير ذلك إلى أنّ اسم المضيف المُستخدَم في سياسة MessageLogging هو اسم مضيف غير صالح.

  3. يُظهر فحص الاستثناء في سجل معالج الرسائل بعناية وجود رمز خاص "/" غير مرغوب فيه في نهاية اسم المضيف 'splunkprod.myorg.com/'.

  4. كان هذا الرمز الخاص غير المرغوب فيه هو سبب خطأ النشر.

الدقة

  1. ويمكنك تعديل سياسة MessageLogging لإزالة أي رموز خاصة غير مرغوب فيها لحل المشكلة.
  2. في المثال أعلاه، الرمز الخاص "/" تمت إزالة رسالة من سياسة تسجيل الرسائل. وقد ساعد ذلك في حلّ المشكلة.

مثال 2: اسم مضيف غير قابل للتحليل

  1. يحتوي سجل معالج الرسائل على بضعة أسطر تعرض حدث النشر لخادم وكيل واجهة برمجة التطبيقات متبوعًا باستثناء يحدث أثناء نشر خادم وكيل واجهة برمجة التطبيقات:

    2017-12-22 00:13:49,057 Apigee-Main-87446 INFO MESSAGING.CONFIGURATION - MessageProcessorServiceImpl.configure() : configuring [DeployEvent{organization='myorg', application='myapi', applicationRevision='42', deploymentSpec=basepath=/;env=dev;, deploymentID=null}] 
    
    2017-12-22 00:13:49,318 Apigee-Main-87446 ERROR c.a.p.h.d.DNSCachedAddress - DNSCachedAddress.refresh() : Unable to resolve host : input-prd.cloud.splunk.com: Name or service not known 
    
    2017-12-22 00:13:49,323 Apigee-Main-87446 ERROR MESSAGING.RUNTIME - AbstractConfigurator.handleUpdate() : Fatal error deploying proxy: {} 
    com.apigee.rest.framework.ValidationException: Invalid syslog config: Invalid HostName 'input-prd.cloud.splunk.com' for Syslog handler 
    at com.apigee.messaging.runtime.destinations.SyslogDestination.<init>(SyslogDestination.java:44) ~[message-processor-1.0.0.jar:na] 
    at com.apigee.messaging.runtime.destinations.SysLoggerFactory.getInstance(SysLoggerFactory.java:39) ~[message-processor-1.0.0.jar:na] 
    at com.apigee.messaging.runtime.destinations.DestinationRegistry.newDestination(DestinationRegistry.java:44) ~[message-processor-1.0.0.jar:na] 
    at com.apigee.steps.messagelogging.MessageLoggingStepDefinition.populateDestinations(MessageLoggingStepDefinition.java:118) ~[message-logging-1.0.0.jar:na] 
    at com.apigee.steps.messagelogging.MessageLoggingStepDefinition.handleAdd(MessageLoggingStepDefinition.java:99) ~[message-logging-1.0.0.jar:na] 
    
    <snipped> 
    
  2. يوضِّح الاستثناء أعلاه أنّ عملية النشر تخفق بسبب "اسم مضيف غير صالح '<hostname>' لمعالِج سجلّ النظام".

  3. إذا اطلعت على السطر أعلى الاستثناء، يمكنك ملاحظة أن معالج الرسائل غير قادر على حل اسم المضيف 'input-prd.cloud.splunk.com' المتوفر في سياسة MessageLogging.

  4. لتأكيد ذلك، يمكنك تجربة telnet إلى اسم المضيف والمنفذ # المستخدم في سياسة تسجيل الرسائل.

    1. راجِع سياسة MessageLogging في المراجعة المحددة للخادم الوكيل لواجهة برمجة التطبيقات وتحقَّق من اسم المضيف والمنفذ # المستخدَم. في المثال أعلاه، اسم خادم وكيل واجهة برمجة التطبيقات: myapi، النسخة: 42.

      سياسة تسجيل الرسائل النصية

        <MessageLogging async="false" continueOnError="false" enabled="true" name="Log-To-Splunk">
            <DisplayName>Log-To-Splunk</DisplayName>
            <Syslog>
                <Message>Message.id = {request.header.id}</Message>
                <Host>input-prd.cloud.splunk.com</Host>
                <Port>2900</Port>
                <Protocol>TCP</Protocol>
                <SSLInfo>
                    <Enabled>true</Enabled>
                </SSLInfo>
            </Syslog>
        </MessageLogging>
      
    2. Telnet إلى المضيف باستخدام منفذ معيّن. في هذا المثال، جربنا telnet وحصلنا على نفس الخطأ كما هو موضح في سجل معالج الرسائل:

      telnet input-prd.cloud.splunk.com 2900 
      telnet: input-prd.cloud.splunk.com: Name or service not known 
      input-prd.cloud.splunk.com: Host name lookup failure
      
  5. وأثبت ذلك بوضوح أنّه لا يمكن حلّ اسم المضيف.

الدقة

  1. عدِّل سياسة MessageLogging لاستخدام اسم المضيف الصالح.

في حال استمرار المشكلة، انتقِل إلى ضرورة جمع معلومات التشخيص.

السبب: اسم KeyValueMap غير صالح

التشخيص

  1. في سجلّات "معالج الرسائل"، إذا رأيت استثناءً في الرسالة "KeyValueMap name is invalid" أثناء نشر خادم وكيل لواجهة برمجة التطبيقات أو التدفق المشترك كما هو موضّح أدناه، تابِع إلى الخطوة رقم 2. وإذا لم يكن الأمر كذلك، يُرجى الانتقال إلى ضرورة جمع معلومات التشخيص.

    com.apigee.rest.framework.ValidationException: Invalid syslog config: Invalid HostName 'splunkprod.myorg.com/' for Syslog handler
    
  2. دعونا نلقي نظرة على مثال لفهم كيفية تحديد المشاكل وحلّها وحل هذه المشكلة.

  3. مثال على سجلّ معالج الرسائل الذي يُظهر الاستثناء مع الرسالة "اسم KeyValueMap غير صالح" يؤدي إلى حدوث خطأ أثناء نشر الخادم الوكيل لواجهة برمجة التطبيقات

    2018-02-27 14:14:50,318  Apigee-Main-6 ERROR MESSAGING.RUNTIME - AbstractConfigurator.handleUpdate() : Fatal error deploying proxy: {}
    com.apigee.keyvaluemap.KeyValueMapApiException: KeyValueMap name  is invalid
            at com.apigee.keyvaluemap.service.legacy.KeyValueMapServiceImpl.validateMapName(KeyValueMapServiceImpl.java:125) ~[keyvaluemap-1.0.0.jar:na]
            at com.apigee.keyvaluemap.service.legacy.KeyValueMapServiceImpl.createOrUpdateKeyValueMap(KeyValueMapServiceImpl.java:185) ~[keyvaluemap-1.0.0.jar:na]
            at com.apigee.steps.keyvaluemapoperations.KeyValueMapOperationsStepDefinition.digest(KeyValueMapOperationsStepDefinition.java:180) ~[keyvaluemap-operations-1.0.0.jar:na]
            at com.apigee.steps.keyvaluemapoperations.KeyValueMapOperationsStepDefinition.handleAdd(KeyValueMapOperationsStepDefinition.java:197) ~[keyvaluemap-operations-1.0.0.jar:na]
            at com.apigee.entities.AbstractConfigurator.handleUpdate(AbstractConfigurator.java:130) [config-entities-1.0.0.jar:na]
            at com.apigee.messaging.runtime.Application.handleUpdate(Application.java:229) [message-processor-1.0.0.jar:na]
    
    2018-02-27 14:14:50,344  Apigee-Main-6 ERROR BOOTSTRAP - RuntimeConfigurationServiceImpl.dispatchToListeners() : RuntimeConfigurationServiceImpl.dispatchToListeners : Error occurred while dispatching the request DeployEvent{organization='myorg', application='CustomerAPI', applicationRevision='1', deploymentSpec=basepath=/;env=test;, deploymentID=null} to com.apigee.application.bootstrap.listeners.MessageProcessorBootstrapListener@5009d06e
    com.apigee.keyvaluemap.KeyValueMapApiException: KeyValueMap name  is invalid
            at com.apigee.keyvaluemap.service.legacy.KeyValueMapServiceImpl.validateMapName(KeyValueMapServiceImpl.java:125) ~[keyvaluemap-1.0.0.jar:na]
            at com.apigee.keyvaluemap.service.legacy.KeyValueMapServiceImpl.createOrUpdateKeyValueMap(KeyValueMapServiceImpl.java:185) ~[keyvaluemap-1.0.0.jar:na]
            at com.apigee.steps.keyvaluemapoperations.KeyValueMapOperationsStepDefinition.digest(KeyValueMapOperationsStepDefinition.java:180) ~[keyvaluemap-operations-1.0.0.jar:na]
            at com.apigee.steps.keyvaluemapoperations.KeyValueMapOperationsStepDefinition.handleAdd(KeyValueMapOperationsStepDefinition.java:197) ~[keyvaluemap-operations-1.0.0.jar:na]
            at com.apigee.entities.AbstractConfigurator.handleUpdate(AbstractConfigurator.java:130) ~[config-entities-1.0.0.jar:na]
            at com.apigee.messaging.runtime.Application.handleUpdate(Application.java:229) ~[message-processor-1.0.0.jar:na]
    
  4. يشير الاستثناء الثاني أعلاه إلى حدوث خطأ في النشر لـ API Proxy: CustomerAPI، المراجعة: 1.

  5. عند التحقّق من تتبُّع تسلسل استدعاء الدوال البرمجية، يمكنك ملاحظة حدوث خطأ أثناء تنفيذ سياسة KeyValuMapOperations.

  6. بالنظر إلى حزمة API Proxy، وجدتَ أن هناك سياسة KeyValuMapOperations واحدة تحتوي على الرمز كما هو موضح أدناه:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Pulling-Keys" mapIdentifier="">
     <DisplayName>Pulling Keys</DisplayName>
     <Properties/>
     <ExclusiveCache>false</ExclusiveCache>
    
    
  7. كما هو موضّح أعلاه، يتضمّن mapIdentifier، الذي يشير إلى اسم KeyValueMap، سلسلة فارغة. لا يمكن أن يكون اسم KeyValueMap هو سلسلة فارغة. كان هذا هو سبب خطأ النشر.

الدقة

  1. عدِّل سياسة KeyValueMapOperations للحصول على اسم صالح صالح لـ KeyValueMap.
  2. في المثال أعلاه، حللنا المشكلة من خلال تعديل KeyValueMapOperations ليصبح اسم KeyValueMap هو "MyKeyValueMap" كما هو موضح أدناه:

      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Pulling-Keys" mapIdentifier="MyKeyValueMap">
        <DisplayName>Pulling Keys</DisplayName>
        <Properties/>
        <ExclusiveCache>false</ExclusiveCache>
    

يجب جمع معلومات التشخيص

في حال استمرار المشكلة حتى بعد اتباع التعليمات أعلاه، يُرجى جمع معلومات التشخيص التالية. يُرجى التواصل مع فريق Apigee Edge Support وتزويده بالمعلومات التي تم جمعها.

  1. ناتج الأمر

    curl -v <management-server-host>:<port #>/v1/runtime/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/deployments -u <user>
    
  2. سجلات معالج الرسائل

    /opt/apigee/var/log/edge-message-processor/logs/system.log
    
  3. تفاصيل حول الأقسام التي تمت تجربتها في هذا الدليل وأيّ معلومات أخرى ستساعدنا في إيجاد حل سريع لهذه المشكلة