Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào
tài liệu Apigee X. thông tin
Bạn có thể gỡ lỗi một tiện ích bằng cách sử dụng các thông báo xuất hiện ở hai nơi: công cụ Theo dõi và nhật ký tiện ích. Khi một tiện ích không hoạt động, đôi khi bạn cần phải có thông tin từ cả hai nơi để xác định vấn đề.
Công cụ Trace (Theo dõi) của Apigee Edge là nơi bạn kiểm thử và chỉnh sửa mã proxy API một cách lặp đi lặp lại khi phát triển mã này. Thông báo theo dõi bao gồm các lỗi từ mã proxy API của bạn, bao gồm cả cấu hình proxy API và chính sách.
Các lỗi liên quan đến tiện ích xuất hiện trong công cụ Theo dõi thường không có nhiều thông tin chi tiết, ngoại trừ việc cho biết chú thích tiện ích nào không thành công, cùng với mã lỗi HTTP. Khi bạn không thấy thông tin hữu ích nào ở đây, nơi phù hợp nhất tiếp theo để xem là nhật ký của tiện ích mà bạn đang sử dụng.
Các tiện ích tạo ra các mục nhập nhật ký trong thời gian chạy. (Chỉ quản trị viên của tổ chức mới có thể xem nhật ký tiện ích.)
Các nhật ký này bao gồm những mục do tài nguyên bên ngoài mà tiện ích được định cấu hình để tương tác trả về. Ví dụ: nếu bạn định cấu hình sai thông tin đăng nhập tài nguyên bên ngoài trong tiện ích, thì lỗi có thể xuất hiện ở đây.
Nhật ký cũng bao gồm các mục nhập từ mã tiện ích nội bộ. Khi xem xét nhật ký, hãy lưu ý rằng một số mục không liên quan đến lỗi mà bạn đang khắc phục. Các mục nhập nhật ký liên quan đến tiện ích thường bắt đầu bằng từ
details, chẳng hạn như trong mục nhập nhật ký sau đây của tiện ích 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.'
Các loại lỗi và nguyên nhân
Quy trình xử lý yêu cầu tiện ích từ chính sách ExtensionCallout trong một proxy API, thông qua tiện ích, đến tài nguyên bên ngoài, rồi quay lại. Vì vậy, lỗi có thể xảy ra ở bất kỳ vị trí nào trong số đó.
Những lỗi bạn gặp phải có thể thuộc các danh mục sau.
Đã xảy ra lỗi trong cấu hình tiện ích
Đây là cấu hình mà quản trị viên tổ chức thực hiện khi thêm một tiện ích vào một môi trường.
Ví dụ: nếu bạn định cấu hình tiện ích Cloud Logging bằng mã dự án trên đám mây không chính xác trên Google Cloud, thì Cloud Logging sẽ trả về lỗi cho tiện ích. Thông tin chi tiết về những lỗi này thường nằm trong nhật ký tiện ích.
Bằng chứng trong công cụ Trace
Trong trình chỉnh sửa proxy, những lỗi này thường sẽ xuất hiện dưới dạng lỗi ở cấp 4xx hoặc 5xx. Tuy nhiên, trình chỉnh sửa proxy sẽ không hiển thị bất kỳ thông tin cụ thể nào về nguyên nhân gây ra lỗi, ngoại trừ việc cho biết rằng tiện ích đã trả về lỗi.
{
"fault": {
"faultstring":"Execution of ConnectorCallout Logging-Extension failed. Reason: Connector returned error statuscode=500",
"detail": {
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Bằng chứng trong nhật ký tiện ích
Nếu có thông tin chi tiết về loại lỗi này, bạn sẽ thấy thông tin đó trong các mục nhật ký của tiện ích. Thông báo lỗi sau đây, do dịch vụ Cloud Pub/Sub trả về, là do mã dự án bị lỗi.
details: 'Project does not exist: example-test-12345'
Đã xảy ra lỗi trong cấu hình chính sách ExtensionCallout
Những lỗi này xảy ra khi bạn định cấu hình sai chính sách ExtensionCallout, thông qua lỗi cú pháp cấu hình chính sách hoặc thông qua các khoá hoặc giá trị cấu hình không chính xác. Các lỗi này có hai dạng, tuỳ thuộc vào cách bạn định cấu hình chính sách:
Giá trị không chính xác do tài nguyên bên ngoài đánh giá
Lỗi này có thể xảy ra khi lỗi cấu hình có vẻ hợp lệ đối với tiện ích nhưng không hợp lệ đối với tài nguyên bên ngoài. Ví dụ: nếu tiện ích truyền một mã cơ sở dữ liệu không chính xác đến Cloud Spanner, thì Cloud Spanner sẽ trả về một lỗi được ghi vào nhật ký tiện ích:
details: 'Database not found: projects/example-test-123456/instances/spanner-extension-example-db/databases/my-business-d'Điều này cũng có thể xảy ra đối với tệp JSON cấu hình không chính xác trong phần tử
<Input>của chính sách. Đối với một số tiện ích, một phần của JSON sẽ được tiện ích xử lý và một phần sẽ được truyền đến tài nguyên. Ví dụ: JSON cấu hình tiện ích Cloud Logging bao gồm một đối tượngmetadatacó nội dung được truyền đến Cloud Logging. Tên khoá không chính xác ở đó (chẳng hạn nhưtypthay vìtype) có thể trả về lỗi từ tài nguyên bên ngoài xuất hiện dưới dạng các mục trong nhật ký tiện ích:details: 'Resource type cannot be empty'Các giá trị không chính xác do tiện ích đánh giá
Những lỗi này bao gồm lỗi cú pháp trong các phần được đánh giá theo chính sách của JSON phần tử
<Input>, lỗi chính tả tên thao tác trong phần tử<Action>, v.v. Những lỗi này thường xuất hiện trong công cụ Trace (Theo dõi), nhưng không xuất hiện trong nhật ký của tiện ích.
Bằng chứng trong công cụ Trace
Trong trình chỉnh sửa proxy, những lỗi này thường sẽ xuất hiện dưới dạng lỗi ở cấp 4xx hoặc 5xx. Tuy nhiên, trình chỉnh sửa proxy sẽ không hiển thị bất kỳ thông tin cụ thể nào về nguyên nhân gây ra lỗi, ngoại trừ việc cho biết rằng tiện ích đã trả về lỗi. Lỗi sau đây xuất hiện trong công cụ Trace (Theo dõi) khi bạn viết sai tên thao tác trong tiện ích Cloud Firestore.
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404","detail":
{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Bằng chứng trong nhật ký tiện ích
Khi cấu hình chính sách dẫn đến lỗi xử lý trong tài nguyên bên ngoài, lỗi này thường sẽ xuất hiện trong nhật ký.
Lỗi liên quan đến yêu cầu của tiện ích đối với tài nguyên
Đây là lỗi trong đó yêu cầu đối với tài nguyên bên ngoài không thành công vì những lý do không liên quan đến tiện ích.
Ví dụ: giả sử bạn đang sử dụng tiện ích Cloud Spanner để thêm một hàng vào cơ sở dữ liệu, nhưng giá trị khoá chính của hàng đó đã được dùng trong một hàng hiện có. Cloud Spanner sẽ trả về một lỗi cho tiện ích này, sau đó tiện ích sẽ thêm lỗi đó vào nhật ký tiện ích.
Bằng chứng trong công cụ Trace
Trong trình chỉnh sửa proxy, những lỗi này thường xuất hiện dưới dạng lỗi cấp 4xx hoặc 5xx. Tuy nhiên, trình chỉnh sửa proxy sẽ không hiển thị bất kỳ thông tin cụ thể nào về nguyên nhân gây ra lỗi, ngoại trừ việc cho biết rằng tiện ích đã trả về lỗi.
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404",
"detail":{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
Bằng chứng trong nhật ký tiện ích
Nhật ký thường sẽ có các mục chứa thông báo từ chính tài nguyên bên ngoài. Thông điệp nhật ký sau đây từ Cloud Spanner mô tả lỗi giá trị khoá chính hiện có.
details: 'Row [jonesy42] in table user already exists'