ඔබත් AWS Step Functions සහ Lambda භාවිතා කරමින් සංකීර්ණ workflow එකක් පවත්වාගෙන යනවාද? ලොග් ගොනු අතර සම්බන්ධතාවය සොයාගන්න අමාරුයි කියලා කිසිවෙක් නොකියා ඉන්නෙ නැහැ. නවතම පළපුරුදු ලේඛකයා විසින්, Business ID එකක් භාවිතා කරමින් Correlation ID එකක් නිර්මාණය කිරීමේ සරල විසඳුමක් හෙළි කරයි.
කොහොමද මේක සිදු වුණේ? ලේඛකයා 15 වසරක වැඩ පළපුරුද්දක් ඇතිව, AWS Step Functions මගින් orchestrate කරන serverless workflow එකකදී, එක් එක් Lambda function එකක් තමන්ගේම console.log() භාවිතා කරමින් ලොග් ලියූ අතර, ඒ ලොග් එකේ එකම Business ID (කේස් අංකය) පවා සමාන ආකාරයෙන් නොපෙනීය. ඉතින්, 90 දින පසු ලොග් ඉතිහාසය අතුරුදන් වීමත් සමඟ, ගැටළුව තවත් වැදගත් වුණා.
ප්රධාන ගැටළුව වූයේ, ලොග් ගොනු අතර සම්බන්ධතාවයක් නොතිබීමයි. එකම කේස් අංකය තිබුණත්, එය ව්යවස්ථාගත නොවූ නිසා, developers ලා log groups එකින් එක අරගෙන, execution order එක අනුමාන කරමින් timeline එකක් සකස් කළ යුතු වුණා. මෙය කාලය ගත කිරීමක්, දෝෂ පරීක්ෂා කිරීමේ ප්රගතිය අඩු කරනු ලැබීය.
ඉතා සරල විසඳුම කුමක්ද? AWS Step Functions හි execution name (name) attribute එක භාවිතා කිරීම. startExecution API එකේ name පරාමිතියට, UUID එකක් දමන්නා වෙනුවට, Business ID (කේස් අංකය) එකක් දමන්න. මෙය $$.Execution.Name variable එක මගින් සියලු state වලම ලබා ගත හැකි බැවින්, එක් එක් Lambda function එකට ඒ ID එක ස්වයංක්රීයව පවරා ගත හැක. එවිට log messages වලට එකම identifier එකක් ඇතුළත් වන නිසා, CloudWatch හි log groups එකතුවට සරල search එකක් පමණක් අවශ්ය වේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තාක්ෂණික සමාගම් හා ආරම්භක ව්යාපාර බොහොමයක් AWS serverless services භාවිතා කරමින් නිෂ්පාදන ගොඩනඟා ගනී. මෙවැනි සරල logging strategy එක:
- ඉගෙනුම් වේගය වැඩි කරයි: නව developers ලා log correlation ගැන අඩු කාලයකින්ම අවබෝධ කරගත හැක.
- ආරක්ෂාව හා auditability: Business ID එකක් මූලික identifier එකක් වීම නිසා, compliance audit එකේ traceability වැඩි වේ.
- කාර්ය සාධනය ඉහළ යයි: troubleshooting කාලය කෙටි වන නිසා, සේවා uptime එක වැඩිවෙයි.
- පිරිවැය අඩු කිරීම: log retention කාලය කෙටි වුවද, අවශ්ය data එක ඉක්මනින් සොයා ගත හැක, ඉතිරි storage වියදම අඩු වේ.
මෙම ක්රමය සරල, AWS SDK එකේ standard parameter එකක් පමණක් වෙනස් කිරීමෙන් ක්රියාත්මක වේ. ඒ නිසා, ශ්රී ලංකාවේ තාක්ෂණික කණ්ඩායම්වලට ඉතා ප්රයෝජනවත් වේ.
අවසන් වශයෙන්, logging එකේ structure එකක් සැලසුම් කර ගැනීම, ඔබේ serverless applications ගුණාත්මකව පවත්වා ගැනීමට මූලික පියවරක් බව මතක තබා ගන්න. Business ID එකක් භාවිතා කරමින් Correlation ID එකක් නිර්මාණය කිරීම, ඔබේ debugging කාර්යය සරල කරනු ඇත.