خطای استقرار پیکربندی ناموفق

درحال مشاهده اسناد 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» آمده است:

علل احتمالی

استقرار «پراکسی API» می‌تواند به‌دلایل مختلفی با خطای «پیکربندی ناموفق بود» ناموفق باشد. جدول زیر چند دلیل رایج مشاهده‌شده را که منجر به این خطا می‌شود فهرست می‌کند :

علت شرح دستورالعمل‌های عیب‌یابی برای
«کلاس جاوا» در «خط‌مشی JavaCallout» وجود ندارد کلاس Java در فایل JAR که خط‌مشی JavaCallout به آن ارجاع می‌دهد وجود ندارد. کاربران Edge Private Cloud
عملوندهای نادرست در شرایط «جریان شرط» استفاده شده است عملوندها/عبارت‌های استفاده‌شده در یک یا هر دو طرف عملگرها در شرایط معتبر نیستند.
نام میزبان نامعتبر در خط‌مشی «گزارش‌گیری پیام» نام میزبان استفاده‌شده در خط‌مشی MessageLogging قابل‌حل نیست یا ممکن است نویسه‌های خاص ناخواسته داشته باشد.
نام نقشه مقدار کلید نامعتبر است ‫KeyValueMap در خط‌مشی KeyValueMapOperations در «پراکسی API» نامعتبر یا خالی است.

مراحل تشخیص خرابی رایج

  1. بااستفاده از میانای برنامه‌سازی کاربردی زیر، وضعیت استقرارها را برای نسخه اصلاح‌شده خاص «پراکسی API» که خطای استقرار آن را مشاهده می‌کنید دریافت کنید:

    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 را بررسی کنید. ببینید آیا درطول استقرار «پراکسی API» خطایی رخ داده است یا نه.

  5. بسته به خطا/استثنایی که در گزارش «پردازشگر پیام» مشاهده می‌شود، باید مراحل عیب‌یابی و حل‌وفصل مناسب را برای مشکل دنبال کنید.

  6. بخش‌های زیر برخی‌از استثناهای رایج را که منجر به خطای استقرار «پیکربندی ناموفق بود» می‌شود ارائه می‌دهد و مراحلی را برای عیب‌یابی و حل‌وفصل کردن آن‌ها ارائه می‌دهد.

علت: کلاس جاوا در خط‌مشی JavaCallout وجود ندارد

تشخیص

  1. در گزارش‌های «پردازشگر پیام»، اگر درطول استقرار «پراکسی API» (DeployEvent) استثنایی با پیام «Failed to instantiate the JavaCallout Class» (کلاس JavaCallout نمونه‌سازی نشد) مشاهده کردید، همان‌طور که در زیر نشان داده شده است، به «مرحله ۲» بروید. اگر نه، به عملوندهای نادرست استفاده‌شده در شرایط در «جریان شرط» بروید.
  2. «پردازشگر پیام» استثنای زیر را درطول پیاده‌سازی «پراکسی API» نشان می‌دهد:

    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 به‌روزشده و استقرار مجدد «پراکسی API».

علت: عملوندهای نادرست با عملگرها در «جریان شرط» استفاده شده است

تشخیص

  1. در گزارش‌های «پردازشگر پیام»، اگر درطول استقرار «پراکسی API» یا «جریان مشترک» com.apigee.expressions.parser.ParseException را مشاهده کردید، همان‌طور که در پیام‌های نمونه زیر نشان داده شده است، به «مرحله ۲» بروید. اگر حل‌وفصل نشد، به دلیل بعدی نام میزبان نامعتبر در خط‌مشی ثبت پیام بروید.

    پیام خطای نمونه

    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. در این مثال، می‌توانید مشاهده کنید که بین عملگر «یا» و شرط بعدی فاصله‌ای وجود ندارد. بنابراین وقتی شرط دوم تجزیه می‌شود، عبارت اول به‌عنوان «یا(fault.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>
    
    

نام میزبان نامعتبر در خط‌مشی MessageLogging

تشخیص

  1. در گزارش‌های «پردازشگر پیام»، اگر درطول استقرار «پراکسی API» یا «جریان مشترک» استثنایی با پیام «Invalid HostName» (نام میزبان نامعتبر) مشاهده کردید، همان‌طور که در زیر نشان داده شده است، به «مرحله ۲» بروید. اگر حل‌وفصل نشد، به دلیل بعدی نام نامعتبر KeyValueMap بروید.

    com.apigee.rest.framework.ValidationException: Invalid syslog config: Invalid HostName 'splunkprod.myorg.com/' for Syslog handler
    
  2. بیایید به دو مثال زیر نگاه کنیم تا بفهمیم چگونه این مشکل را عیب‌یابی و حل کنیم.

مثال ۱: HostName دارای نویسه خاص ناخواسته

  1. «پردازشگر پیام» استثنای زیر را درطول پیاده‌سازی «پراکسی API» نشان می‌دهد:

      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>' برای مدیریت‌کننده Syslog» ناموفق بوده است. این نشان می‌دهد که «نام میزبان» استفاده‌شده در خط‌مشی MessageLogging نام میزبان نامعتبری است.

  3. بررسی دقیق استثنا در گزارش «پردازشگر پیام» نشان می‌دهد که نویسه خاص ناخواسته‌ای «/» در انتهای «نام میزبان» 'splunkprod.myorg.com/'. وجود دارد

  4. این نویسه ویژه ناخواسته دلیل خطای استقرار بود.

وضوح

  1. برای حل کردن مشکل، خط‌مشی MessageLogging را اصلاح کنید تا نویسه‌های ویژه ناخواسته را بردارید.
  2. در مثال بالا، نویسه خاص «/» از «خط‌مشی ثبت گزارش پیام» برداشته شد. این کار مشکل را حل کرد.

مثال ۲: نام میزبان غیرقابل‌حل

  1. گزارش «پردازشگر پیام» چند خط دارد که نشان می‌دهد رویداد استقرار برای «پراکسی API» راه‌اندازی شده است و پس‌از آن استثنایی رخ می‌دهد که درطول استقرار «پراکسی API» اتفاق می‌افتد:

    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>' برای مدیریت‌کننده Syslog» ناموفق بوده است.

  3. اگر خط بالای استثنا را بخوانید، متوجه می‌شوید که «پردازشگر پیام» نمی‌تواند نام میزبان 'input-prd.cloud.splunk.com' ارائه‌شده در خط‌مشی MessageLogging را حل کند.

  4. برای تأیید این موضوع، می‌توانید بااستفاده از نام میزبان و شماره درگاه استفاده‌شده در خط‌مشی «گزارش‌گیری پیام»، به telnet متصل شوید.

    1. خط‌مشی MessageLogging را در نسخه اصلاح‌شده خاص «پراکسی میانای برنامه‌سازی کاربردی» بررسی کنید و نام میزبان و شماره درگاه استفاده‌شده را درستی‌سنجی کنید. در مثال بالا، نام «پراکسی API»: myapi، بازبینی: ۴۲.

      خط‌مشی ثبت گزارش پیام

        <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. در گزارش‌های «پردازشگر پیام»، اگر هنگام استقرار «پراکسی API» یا «جریان مشترک» استثنایی با پیام «نام KeyValueMap نامعتبر است» مشاهده کردید، همان‌طور که در زیر نشان داده شده است، به «مرحله ۲» بروید. اگر نه، به باید اطلاعات تشخیص خرابی را جمع‌آوری کنید بروید.

    com.apigee.rest.framework.ValidationException: Invalid syslog config: Invalid HostName 'splunkprod.myorg.com/' for Syslog handler
    
  2. بیایید به مثالی نگاه کنیم تا بفهمیم چگونه این مشکل را عیب‌یابی و حل کنیم.

  3. گزارش «پردازشگر پیام» نمونه که استثنا را با پیام «نام KeyValueMap نامعتبر است» نشان می‌دهد و منجر به خطا درطول استقرار «پراکسی API» می‌شود

    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، نسخه: ۱ رخ داده است.

  5. با بررسی پشته ردیابی، می‌توانید متوجه شوید که خطا هنگام اجرای خط‌مشی KeyValuMapOperations ایجاد شده است.

  6. با بررسی بسته «پراکسی API» متوجه می‌شوید که یک خط‌مشی 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. جزئیاتی درباره اینکه کدام بخش‌های این «کتابچه راهنما» امتحان شده است و هرگونه اطلاعات آماری دیگری که به ما کمک می‌کند حل این مشکل را تسریع کنیم.