Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Вы можете отладить расширение, используя сообщения, видимые в двух местах: инструменте трассировки и журналах расширения. Когда расширение не работает, для выявления проблемы иногда может потребоваться информация из обоих мест.
Инструмент 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'