Bagaimana Cara Mencoba Kembali Alur Kerja di Identity Security Cloud

Pendahuluan
Identity Security Cloud menyediakan layanan yang disebut Workflows, yang memungkinkan Anda untuk menjalankan fungsionalitas kustom sebagai respons terhadap peristiwa yang terjadi di sistem Anda. Seperti halnya otomatisasi lainnya, Anda mungkin menghadapi masalah dengan alur kerja Anda yang menyebabkan kegagalan, seperti bug dalam logika, API hilir yang tidak tersedia, atau layanan Workflows itu sendiri yang tidak tersedia. Penting untuk dapat mengatasi kegagalan ini dan mencoba kembali alur kerja agar Anda tidak perlu melakukan langkah-langkah secara manual yang seharusnya sudah otomatis.

Dalam blog ini, saya akan menunjukkan bagaimana memanfaatkan API Workflow untuk mendeteksi alur kerja yang gagal dan mencoba kembali alur kerja tersebut dengan input yang benar, sehingga Anda tidak perlu menyelesaikan eksekusi yang gagal secara manual. Jika Anda ingin memahami konsep dasar agar bisa menerapkan logika coba kembali Anda sendiri, silakan lanjutkan membaca blog ini. Namun, jika Anda hanya menginginkan solusi yang bekerja menggunakan formulir dan alur kerja untuk mencoba kembali eksekusi yang gagal, lihat pos Colab ini untuk detail lebih lanjut.

 

Deskripsi
Alur kerja mungkin gagal karena beberapa alasan. Logika alur kerja Anda mungkin cacat dan menghasilkan kesalahan tak terduga selama eksekusi, API hilir yang Anda panggil mungkin tidak tersedia, atau layanan alur kerja itu sendiri mungkin mengalami gangguan. Tindakan yang seharusnya diotomatisasi oleh eksekusi alur kerja yang gagal kini memerlukan Anda untuk menemukannya dan memperbaikinya secara manual… atau tidak? Ikuti SailPoint Developer Advocate, Colin McKibben, yang akan menunjukkan cara mencoba kembali alur kerja yang gagal.

Memfilter Berdasarkan Waktu Mulai
Sebelum Anda bisa mencoba kembali eksekusi alur kerja yang gagal, Anda perlu mengidentifikasi eksekusi yang gagal terlebih dahulu. ISC menyediakan dua API yang membantu dalam proses ini. Pertama, Anda akan menggunakan endpoint list workflows untuk mendapatkan daftar semua alur kerja di tenant Anda. Anda akan membutuhkan ID dari setiap alur kerja yang ingin Anda periksa untuk eksekusi yang gagal. Setelah Anda memiliki ID dari alur kerja yang ingin Anda periksa, gunakan endpoint list workflow executions untuk mendapatkan daftar eksekusi yang gagal.

Contoh permintaan API:

https://sailpoint.api.identitynow.com/v2024/workflows/:id/executions?filters=status eq "Failed"

Permintaan ini akan mengembalikan semua eksekusi dari alur kerja dalam 90 hari terakhir yang gagal. Hasilnya akan diurutkan berdasarkan waktu mulai dalam urutan menurun, jadi kegagalan terbaru akan muncul terlebih dahulu. Tergantung pada alur kerja, bisa jadi ada banyak eksekusi (misalnya ribuan). Karena endpoint ini hanya akan mengembalikan 250 eksekusi per panggilan API, Anda perlu menggunakan pagination untuk memastikan Anda mengidentifikasi setiap eksekusi yang gagal.

Namun, ini mungkin bukan yang Anda inginkan, karena query ini akan mengembalikan semua eksekusi yang gagal. Dalam skenario dunia nyata, Anda mungkin hanya ingin mencoba kembali eksekusi yang gagal dalam rentang waktu tertentu untuk menghindari mencoba kembali eksekusi yang sudah Anda coba kembali sebelumnya. Untuk kasus ini, Anda dapat menambahkan parameter query tambahan.

Contoh query dengan rentang waktu yang ditentukan:

https://sailpoint.api.identitynow.com/v2024/workflows/:id/executions?filters=status eq "Failed" and start_time ge "2024-02-07T08:00:00Z" and start_time le "2024-02-07T09:00:00Z"

Query ini hanya akan memfilter eksekusi dalam rentang waktu yang Anda tentukan. Anda masih perlu mempaginasikan melalui API jika ada lebih dari 250 eksekusi gagal dalam rentang waktu yang diberikan. Untuk mempaginasikan, cukup tingkatkan parameter offset query sebesar 250 setiap kali Anda memanggil API sampai Anda menerima respons dengan kurang dari 250 eksekusi.

Mendapatkan Input Asli dari Eksekusi

Sebelum mencoba kembali eksekusi alur kerja, Anda perlu mengetahui input asli yang digunakan untuk memicu eksekusi tersebut. Input ini dapat bervariasi tergantung pada pemicu yang digunakan untuk alur kerja dan rincian peristiwa spesifik yang memicunya. Endpoint get workflow execution history mendapatkan detail dari eksekusi individu, termasuk input pemicu yang digunakan. Anda perlu menggunakan ID eksekusi yang Anda dapatkan dari endpoint list executions.

Contoh permintaan API:

bash
https://sailpoint.api.identitynow.com/v2024/workflow-executions/:id/history

Respons akan berisi array objek yang memberi informasi tentang setiap langkah dalam alur kerja. Objek yang Anda butuhkan memiliki tipe WorkflowExecutionStarted. Objek ini akan berisi objek atribut yang mencakup input pemicu yang digunakan untuk memulai eksekusi yang gagal.

Simpan nilai atribut untuk digunakan di langkah berikutnya. Misalnya, Anda akan menyimpan nilai berikut:

json
{
"input": {
"actor": {
"id": "ee769173319b41d19ccec6cea52f237b",
"name": "john.doe",
"type": "IDENTITY"
},
"connector": "active-directory",
"created": "2021-03-29T22:01:50.474Z",
"id": "2c9180866166b5b0016167c32ef31a66",
"name": "Test source",
"type": "DIRECT_CONNECT"
}
}

Lakukan ini untuk setiap eksekusi yang ingin Anda coba kembali.

Mencoba Kembali Eksekusi

Setelah Anda mendapatkan input asli dari eksekusi alur kerja yang ingin Anda coba kembali, Anda dapat memicu alur kerja dengan input yang diinginkan menggunakan endpoint test workflow. Anda perlu menyediakan ID alur kerja yang ingin Anda jalankan bersama dengan payload input.

Contoh permintaan:

bash
POST https://sailpoint.api.identitynow.com/v2024/workflows/:id/test

Isi permintaan:

json
{
"input": {
"actor": {
"id": "ee769173319b41d19ccec6cea52f237b",
"name": "john.doe",
"type": "IDENTITY"
},
"connector": "active-directory",
"created": "2021-03-29T22:01:50.474Z",
"id": "2c9180866166b5b0016167c32ef31a66",
"name": "Test source",
"type": "DIRECT_CONNECT"
}
}

Ini akan memicu alur kerja dengan input yang diberikan. Jika Anda telah menyelesaikan masalah yang menyebabkan kegagalan sebelumnya, alur kerja harus berhasil kali ini.

Menghindari Eksekusi yang Tidak Aman

Jika alur kerja yang Anda coba kembali melakukan perubahan data (misalnya membuat, memperbarui, atau menghapus), langkah-langkah pencegahan tambahan harus diambil untuk menghindari kegagalan atau efek samping yang tidak diinginkan. Misalnya, jika alur kerja membuat kampanye sertifikasi dan eksekusi alur kerja gagal setelah pembuatan kampanye, mencoba kembali alur kerja bisa menyebabkan dua kampanye sertifikasi tercipta.

Simulasi Peristiwa

Terkadang, mungkin diperlukan untuk mensimulasikan pemicu peristiwa agar alur kerja berjalan. Misalnya, jika Anda membangun alur kerja baru yang menggunakan pemicu Identity Created dan ingin menjalankan alur kerja itu untuk identitas yang sudah ada, mensimulasikan peristiwa akan membantu Anda mencapainya.

Kesimpulan

Mencoba kembali alur kerja yang gagal adalah langkah penting untuk memastikan kelancaran proses otomatisasi Anda di Identity Security Cloud. Namun, penting untuk hati-hati agar tidak membuat perubahan duplikat atau menyebabkan masalah lainnya, terutama dengan eksekusi yang melakukan modifikasi data atau membuat objek baru.