Lihat konektor yang didukung untuk Integration Aplikasi.
Pengantar penanganan error
Di Integrasi Aplikasi, error dapat terjadi saat Anda menguji dan memublikasikan integrasi, atau selama eksekusi integrasi. Error ini dapat terjadi karena berbagai masalah sisi klien dan sisi server, dan secara luas diklasifikasikan sebagai berikut:
- Error permanen: Semua error sisi klien seperti kegagalan autentikasi, error validasi data, dianggap sebagai error permanen. Error permanen menyebabkan kegagalan tugas permanen.
- Error sementara: Semua error sisi server seperti, HTTP 503 (layanan tidak tersedia), HTTP 400 (permintaan buruk), dianggap sebagai error sementara. Error sementara menyebabkan kegagalan tugas sementara.
Pesan error muncul di lokasi berikut:
- Halaman log eksekusi: Menampilkan error yang terjadi selama eksekusi integrasi. Setiap eksekusi integrasi memiliki entri log terpisah. Untuk mengetahui informasi tentang halaman log eksekusi, lihat Log eksekusi.
- Halaman editor integrasi: Menampilkan error yang terjadi saat Anda memublikasikan integrasi. Error ditampilkan di bagian bawah halaman editor integrasi. Untuk informasi tentang halaman editor integrasi, lihat Editor integrasi.
Untuk mengetahui informasi tentang daftar kode error yang mungkin Anda temui, lihat Kode error.
Metode penanganan error
Integrasi Aplikasi mendukung metode penanganan error berikut untuk menampilkan, menangkap, mencoba ulang, dan menyesuaikan error yang terjadi dalam integrasi Anda:
- Strategi penanganan error: Strategi penanganan error untuk tugas menentukan tindakan yang akan diambil jika tugas gagal karena error sementara. Anda dapat menentukan strategi penanganan error yang berbeda untuk mode eksekusi sinkron dan asinkron.
- Error catcher: Error catcher menentukan cara yang disesuaikan untuk menangani kegagalan pemicu, tugas, atau kondisi edge yang diidentifikasi dalam integrasi Anda. Anda dapat menentukan satu atau beberapa error catcher dalam satu integrasi untuk menangani error tugas dan/atau kegagalan eksekusi. Setiap penangkap error dapat dipanggil menggunakan pemicu, yang disebut Pemicu Penangkap Error, untuk menjalankan kumpulan tugas integrasi yang dikonfigurasi dan disesuaikan untuk menangani error.
Anda dapat menggunakan metode penanganan error untuk mode eksekusi integrasi sinkron dan asinkron:
-
Eksekusi sinkron: Dalam mode sinkron, hasil eksekusi integrasi akan tersedia segera setelah integrasi berjalan. Mode sinkron sangat membantu dalam skenario saat Anda menginginkan hasil eksekusi segera setelah integrasi berjalan. Pemicu yang menjalankan integrasi dalam mode sinkron mencakup hal berikut:
- Menguji atau memublikasikan integrasi
- Memanggil API
projects.locations.integrations.execute
- Memanggil integrasi dari sub-integrasi dalam mode sinkron
-
Eksekusi asinkron: Eksekusi asinkron menggunakan model fire and forget. Mode asinkron berguna dalam skenario saat integrasi dapat memerlukan waktu lama untuk dijalankan, atau hasil eksekusi tidak diperlukan langsung setelah integrasi berjalan. Pemicu yang menjalankan integrasi dalam mode asinkron meliputi hal berikut:
- Semua eksekusi yang tidak sinkron dijalankan dalam mode asinkron. Beberapa mode asinkron umum mencakup, tetapi tidak terbatas pada:
- Eksekusi yang dilanjutkan dari penangguhan atau tugas persetujuan juga dieksekusi dalam mode asinkron, meskipun eksekusi awal adalah mode sinkron.
Praktik terbaik
Gunakan strategi penanganan error dan error catcher dalam integrasi Anda. Untuk setiap error, integrasi akan mengikuti strategi yang ditentukan di bagian penanganan error. Setelah strategi penanganan error yang dikonfigurasi habis, logika penangkap error akan dipicu. Gunakan variabel sistem untuk mengambil nilai kode error dan pesan error yang akan dikirim ke alur penangkap error Anda.
Contoh
Misalnya, Anda memiliki alur integrasi untuk membuat pesanan. Pesanan baru dibuat di Cloud SQL untuk MySQL. Alur ini menggunakan tugas konektor (Buat pesanan dalam contoh ini) untuk terhubung ke Cloud SQL untuk MySQL. Jika terjadi pemadaman database, tugas konektor akan menampilkan error saat menyisipkan pesanan baru ke dalam database. Sebagai praktik terbaik, Anda harus menggunakan strategi penanganan error dan penangkap error dalam integrasi Anda.
Untuk menambahkan strategi penanganan error, klik tugas konektor di desainer integrasi untuk membuka panel konfigurasi tugas. Diagram berikut menunjukkan strategi penanganan error yang dikonfigurasi untuk tugas konektor Buat pesanan:
Untuk menambahkan strategi penanganan error, klik tugas Call REST Endpoint di desainer integrasi untuk membuka panel konfigurasi tugas. Diagram berikut menunjukkan strategi penanganan error yang dikonfigurasi untuk tugas Call REST Endpoint:
Untuk menambahkan penangkap error, klik tugas Call REST Endpoint di desainer integrasi untuk membuka panel konfigurasi tugas. Di bagian Error Catcher, tambahkan detail error catcher. Diagram berikut menunjukkan error catcher yang dikonfigurasi untuk tugas Call REST Endpoint:
Kode error
Tabel berikut menjelaskan error yang mungkin Anda alami, dan penyebab error yang sesuai. Integration Aplikasi menggunakan kode error kanonis yang ditentukan di google.rpc.Code
.
Untuk mengetahui informasi tentang error Integrasi Aplikasi dan berbagai strategi penanganan error, lihat Error dan penanganan error.
Jenis pengecualian standar | Kode kanonis | Kode HTTP | Deskripsi |
---|---|---|---|
FailedPreconditionException | FAILED_PRECONDITION |
400 | Permintaan tidak dapat dijalankan dalam status sistem saat ini. |
BadRequestException | INVALID_ARGUMENT |
400 | Klien menentukan argumen yang tidak valid. Periksa pesan error dan detail error untuk mengetahui informasi selengkapnya. |
UnauthenticatedException | UNAUTHENTICATED |
401 | Permintaan tidak diautentikasi karena token OAuth tidak ada, tidak valid, atau sudah tidak berlaku. |
ForbiddenException | PERMISSION_DENIED |
403 | Klien tidak memiliki izin yang memadai. Hal ini dapat terjadi jika token OAuth tidak memiliki cakupan yang tepat, klien tidak memiliki izin yang diperlukan, atau API belum diaktifkan. |
NotFoundException | NOT_FOUND |
404 | Resource yang ditentukan tidak ditemukan. |
AlreadyExistsException | ALREADY_EXISTS |
409 | Resource yang klien coba buat sudah ada. |
InternalError | INTERNAL |
500 | Error server internal. Biasanya bug server. Hal ini dapat terjadi jika salah satu tugas atau pemicu salah dikonfigurasi. |
UnimplementedException | UNIMPLEMENTED |
501 | Metode API tidak diimplementasikan oleh server. |
ServiceUnavailableException | UNAVAILABLE |
503 | Layanan tidak tersedia. Biasanya server tidak berfungsi. |
AbortedException | ABORTED |
409 | Ukuran respons terlalu besar. |