Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Отладку расширения можно выполнить, используя сообщения, видимые в двух местах: инструменте трассировки и журналах расширения. Когда расширение не работает, для выявления проблемы иногда требуется информация из обоих источников.
Инструмент Apigee Edge Trace позволяет итеративно тестировать и редактировать код API-прокси по мере его разработки. Сообщения трассировки содержат ошибки из вашего кода API-прокси, включая ошибки конфигурации API-прокси и политик.
Ошибки, связанные с добавочными номерами, которые отображаются в инструменте трассировки, обычно не содержат много подробностей, за исключением указания того, какой именно вызов добавочного номера завершился неудачей, а также кода ошибки HTTP. Если вы не видите здесь ничего полезного, лучше всего обратиться к журналу используемого вами добавочного номера.
Расширения генерируют записи в журнале во время выполнения. (Журналы расширений доступны только администраторам организации.)
В эти журналы входят записи, возвращаемые внешним ресурсом, с которым настроено взаимодействовать расширение. Например, если учетные данные внешнего ресурса неправильно настроены в расширении, ошибка, скорее всего, появится здесь.
В журналах также содержатся записи из внутреннего кода расширения. При просмотре журналов имейте в виду, что некоторые записи не имеют отношения к исправляемой ошибке. Записи в журнале, связанные с расширением, обычно начинаются со слова
details, как, например, в следующей записи из расширения Cloud Pub/Sub :details: 'Invalid resource name given (name=projects/example-test-123456/topic/extension-example). Refer to https://cloud.google.com/pubsub/docs/admin#resource_names for more information.'
Типы и причины ошибок
Процесс обработки запросов на расширение начинается с политики ExtensionCallout в API-прокси, проходит через расширение, достигает внешнего ресурса и возвращается обратно. Поэтому ошибка может возникнуть в любом из этих мест.
Обнаруженные вами ошибки могут относиться к следующим категориям.
Ошибки в конфигурации расширения
Это те настройки, которые выполняет администратор организации при добавлении расширения в среду.
Например, если вы настроите расширение Cloud Logging с некорректным идентификатором проекта Google Cloud, Google Cloud Logging вернет расширению ошибку. Подробная информация об этих ошибках обычно содержится в журнале расширения.
Доказательства в инструменте отслеживания
В редакторе прокси-серверов эти ошибки обычно отображаются как ошибки уровня 4xx или 5xx . Однако редактор прокси-серверов не отображает никаких подробностей о причине ошибки, кроме сообщения о том, что расширение вернуло ошибку.
{
"fault": {
"faultstring":"Execution of ConnectorCallout Logging-Extension failed. Reason: Connector returned error statuscode=500",
"detail": {
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Доказательства в журналах расширения
Если есть подробная информация об этой ошибке, вы увидите ее в записях журнала расширения. Следующее сообщение об ошибке, возвращаемое службой Cloud Pub/Sub , возникает из-за некорректного идентификатора проекта.
details: 'Project does not exist: example-test-12345'
Ошибки в конфигурации политики ExtensionCallout
Эти ошибки возникают, когда политика ExtensionCallout настроена неправильно, либо из-за синтаксической ошибки конфигурации политики, либо из-за некорректных ключей или значений конфигурации. В зависимости от конфигурации политики эти ошибки могут принимать две формы:
Внешним источником были получены некорректные значения.
Это может произойти, когда ошибка конфигурации казалась допустимой для расширения, но была недопустимой для внешнего ресурса. Например, если расширение передает в Cloud Spanner некорректный идентификатор базы данных, Cloud Spanner вернет ошибку, которая будет зарегистрирована в журнале расширения:
details: 'Database not found: projects/example-test-123456/instances/spanner-extension-example-db/databases/my-business-d'Это также может произойти из-за некорректной конфигурации JSON в элементе
<Input>политики. Для некоторых расширений часть JSON обрабатывается расширением, а другая часть передается ресурсу. Например, конфигурация JSON расширения Cloud Logging включает объектmetadata, содержимое которого передается в Cloud Logging . Неправильные имена ключей в этом объекте — например,typвместоtype— могут привести к ошибкам от внешнего ресурса, которые отображаются в виде записей в журнале расширения:details: 'Resource type cannot be empty'Расширение выдало некорректные значения.
К таким ошибкам относятся синтаксические ошибки в частях JSON-элемента
<Input>, оцениваемых политикой, неправильное написание имени действия в элементе<Action>и так далее. Эти ошибки обычно отображаются в инструменте трассировки, но не в журналах расширений.
Доказательства в инструменте отслеживания
В редакторе прокси-серверов эти ошибки обычно отображаются как ошибки уровня 4xx или 5xx . Однако редактор прокси-серверов не отображает никаких подробностей о причине ошибки, кроме сообщения о том, что расширение вернуло ошибку. Следующая ошибка появляется в инструменте трассировки при неправильном написании имени действия в расширении Cloud Firestore .
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404","detail":
{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Доказательства в журналах расширения
Если конфигурация политики приводит к ошибке обработки внешнего ресурса, ошибка обычно отображается в журнале.
Ошибки, связанные с запросом расширения к ресурсу.
Это ошибка, при которой запрос к внешнему ресурсу не был выполнен успешно по причинам, не связанным с расширением.
Например, представьте, что вы используете расширение Cloud Spanner для добавления строки в базу данных, но значение первичного ключа этой строки уже используется в существующей строке. Cloud Spanner вернет расширению ошибку, которая будет добавлена в журнал расширения.
Доказательства в инструменте отслеживания
В редакторе прокси-серверов эти ошибки обычно отображаются как ошибки уровня 4xx или 5xx . Однако редактор прокси-серверов не отображает никаких подробностей о причине ошибки, кроме сообщения о том, что расширение вернуло ошибку.
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404",
"detail":{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Доказательства в журналах расширения
В журнале обычно содержатся записи с сообщениями от самого внешнего ресурса. Следующее сообщение из журнала Cloud Spanner описывает существующую ошибку значения первичного ключа.
details: 'Row [jonesy42] in table user already exists'