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

يتم الآن عرض مستندات 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 الخاص على السحابة الإلكترونية
معاملات غير صحيحة مستخدَمة في شروط "مسار الشرط" إنّ التعبيرات/التعبيرات المستخدمة على أحد جانبَي عامل التشغيل أو كليهما في الشروط غير صالحة.
اسم مضيف غير صالح في سياسة تسجيل الرسائل لا يمكن حل اسم المضيف المستخدَم في سياسة 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" أثناء نشر خادم وكيل لواجهة برمجة التطبيقات (PublishEvent) كما هو موضّح أدناه، تابِع إلى الخطوة رقم 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. لنلقِ نظرة على مثال لفهم كيفية تشخيص هذه المشكلة.

    مثال : يجب أن تكون السمات الخاصة للتعبير <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" ثم الشرط التالي. لذلك عند تحليل الشرط الثاني، يتم استخدام التعبير الأول على أنّه "or(error.name" لعامل التشغيل EQUALS. هذا ليس اسم متغيّر صالحًا، وبالتالي لا يتم التعامل معه كتعبير بيانات صالح. ونتيجةً لذلك، تحصل على هذا الاستثناء:

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

درجة الدقّة

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

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

اسم المضيف غير صالح في سياسة MessageLogging

التشخيص

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

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

مثال 1: وجود رمز خاص غير مرغوب فيه في HostName

  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>' لمعالِج سجلّ النظام". يشير هذا إلى أن HostName المستخدم في سياسة MessageLogging هو اسم مضيف غير صالح.

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

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

درجة الدقّة

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

مثال 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

        <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 غير صالح" أثناء نشر الخادم الوكيل لواجهة برمجة التطبيقات أو التدفق المشترك كما هو موضح أدناه، تابع بعد ذلك إلى الخطوة رقم 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): CustomerAPI، النسخة: 1.

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

  6. بعد الاطّلاع على حزمة الخادم الوكيل لواجهة برمجة التطبيقات، يتبيّن لك أنّ هناك سياسة 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 وتزويده بالمعلومات التي تم جمعها.

  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. تتوفّر تفاصيل حول الأقسام التي تمت تجربتها في هذا "الدليل الإرشادي" وأي إحصاءات أخرى ستساعدنا في حلّ هذه المشكلة بسرعة.