Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. info
Bir uzantıda hata ayıklama işlemini, iki yerde görünen mesajları kullanarak yapabilirsiniz: Trace aracı ve uzantı günlükleri. Bir uzantı çalışmadığında sorunun tespiti için bazen her iki yerden de bilgi alınması gerekebilir.
Apigee Edge İzleme aracı, API proxy kodunu geliştirirken iteratif olarak test edip düzenlediğiniz yerdir. İzleme mesajları, API proxy ve politika yapılandırması dahil olmak üzere API proxy kodunuzdaki hataları içerir.
İzleme aracında görünen uzantılarla ilgili hatalar genellikle çok fazla ayrıntı içermez. HTTP hata koduyla birlikte hangi uzantı açıklama metninin başarısız olduğunu belirtmek dışında bir bilgi verilmez. Burada yararlı bir şey göremezseniz en iyi ikinci seçenek, kullandığınız uzantının günlüküdür.
Uzantılar, çalışma zamanında günlük girişleri oluşturur. (Uzantı günlükleri yalnızca kuruluş yöneticileri tarafından kullanılabilir.)
Bu günlükler, uzantının etkileşim kurması için yapılandırılmış harici kaynak tarafından döndürülen girişleri içerir. Örneğin, uzantıda harici kaynak kimlik bilgileri yanlış yapılandırılmışsa hata büyük olasılıkla burada gösterilir.
Günlükler, dahili uzantı kodundan gelen girişleri de içerir. Günlükleri incelerken girişlerden bazılarının düzelttiğiniz hatayla alakalı olmadığını unutmayın. Uzantılarla ilgili günlük girişleri genellikle
details
kelimesiyle başlar. Cloud Pub/Sub uzantısındaki aşağıdaki günlük girişinde olduğu gibi: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.'
Hata türleri ve nedenleri
Uzatma isteği işleme, API proxy'sindeki bir ExtensionCallout politikasından uzantı üzerinden harici kaynağa ve ardından tekrar geriye doğru akar. Bu nedenle, bu yerlerden herhangi birinde hata oluşabilir.
Gördüğünüz hatalar aşağıdaki kategorilere ayrılabilir.
Uzantı yapılandırmasında hatalar
Bu, bir uzantıyı bir ortama eklerken kuruluş yöneticisinin yaptığı yapılandırmadır.
Örneğin, Cloud Logging uzantısını yanlış bir Google Cloud projesi kimliğiyle yapılandırırsanız Google Cloud Logging, uzantıya bir hata döndürür. Bu hatalarla ilgili ayrıntılar genellikle uzantı günlüğünde bulunur.
Trace aracındaki kanıtlar
Proxy düzenleyicide bu hatalar genellikle 4xx
veya 5xx
düzeyinde hata olarak görünür. Ancak proxy düzenleyici, uzantının hata döndürdüğünü belirtmek dışında hatanın nedeni hakkında herhangi bir ayrıntı göstermez.
{
"fault": {
"faultstring":"Execution of ConnectorCallout Logging-Extension failed. Reason: Connector returned error statuscode=500",
"detail": {
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Uzatma günlüklerindeki kanıtlar
Bu tür bir hatayla ilgili ayrıntı varsa uzantının günlük girişlerinde gösterilir. Cloud Pub/Sub hizmeti tarafından döndürülen aşağıdaki hata mesajı, hatalı biçimlendirilmiş bir proje kimliğinden kaynaklanır.
details: 'Project does not exist: example-test-12345'
ExtensionCallout politikası yapılandırmasında hatalar
Bu hatalar, ExtensionCallout politikası bir politika yapılandırması söz dizimi hatası veya yanlış yapılandırma anahtarları ya da değerleri nedeniyle yanlış yapılandırıldığında ortaya çıkar. Bu hatalar, politikanın yapılandırmasına bağlı olarak iki şekilde ortaya çıkar:
Harici kaynak tarafından değerlendirilen yanlış değerler
Bu durum, yapılandırma hatası uzantı için geçerli göründüğünde ancak harici kaynak için geçersiz olduğunda ortaya çıkabilir. Örneğin, uzantı Cloud Spanner'a yanlış bir veritabanı kimliği gönderirse Cloud Spanner, uzantı günlüğüne kaydedilen bir hata döndürür:
details: 'Database not found: projects/example-test-123456/instances/spanner-extension-example-db/databases/my-business-d'
Bu durum, politikanın
<Input>
öğesindeki yanlış yapılandırma JSON'u için de oluşabilir. Bazı uzantılarda JSON'un bir kısmı uzantı tarafından işlenir ve bir kısmı kaynağa iletilir. Örneğin, Cloud Logging uzantısı yapılandırma JSON'u, içeriği Cloud Logging'a iletilen birmetadata
nesnesi içerir. Buradaki yanlış anahtar adları (ör.type
yerinetyp
), harici kaynaktan uzantı günlüğünde giriş olarak görünen hatalar döndürebilir:details: 'Resource type cannot be empty'
Uzantı tarafından değerlendirilen yanlış değerler
Bu hatalar arasında
<Input>
öğesi JSON'unun politika tarafından değerlendirilen bölümlerindeki söz dizimi hataları,<Action>
öğesindeki işlem adının yanlış yazılması vb. bulunur. Bu hatalar genellikle İzleme aracında görünür ancak uzantı günlüklerinde görünmez.
Trace aracındaki kanıtlar
Proxy düzenleyicide bu hatalar genellikle 4xx
veya 5xx
düzeyinde hata olarak görünür. Ancak proxy düzenleyici, uzantının hata döndürdüğünü belirtmek dışında hatanın nedeni hakkında herhangi bir ayrıntı göstermez. Cloud Firestore uzantısında işlem adı yanlış yazıldığı zaman, izleme aracında aşağıdaki hata gösterilir.
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404","detail":
{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Uzatma günlüklerindeki kanıtlar
Politika yapılandırması harici kaynakta işleme hatasıyla sonuçlandığında hata genellikle günlükte görünür.
Uzantının kaynağa gönderdiği istekle ilgili hatalar
Bu, harici kaynağa yapılan isteğin uzantıyla ilgili olmayan nedenlerle başarılı olmadığı bir hatadır.
Örneğin, veritabanına satır eklemek için Cloud Spanner uzantısını kullandığınızı ancak satırın birincil anahtar değerinin mevcut bir satırda kullanıldığını varsayalım. Cloud Spanner, uzantıya bir hata döndürür ve bu hata, uzantı günlüğüne eklenir.
Trace aracındaki kanıtlar
Proxy düzenleyicide bu hatalar genellikle 4xx
veya 5xx
düzeyinde hata olarak görünür. Ancak proxy düzenleyici, uzantının hata döndürdüğünü belirtmek dışında hatanın nedeniyle ilgili herhangi bir ayrıntı göstermez.
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404",
"detail":{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Uzatma günlüklerindeki kanıtlar
Günlükte genellikle harici kaynağın kendisinden gelen mesajlar bulunur. Cloud Spanner'dan gelen aşağıdaki günlük mesajı, mevcut birincil anahtar değeri hatasını açıklar.
details: 'Row [jonesy42] in table user already exists'