$lang['tuto'] = "ട്യൂട്ടോറിയലുകൾ"; ?> അസൂർ ഡാറ്റ ഫാക്ടറി

അസൂർ ഡാറ്റ ഫാക്ടറി CI/CD-യിലെ ലിങ്ക് ചെയ്‌ത ടെംപ്ലേറ്റുകൾക്കായുള്ള ARM ടെംപ്ലേറ്റ് വിന്യാസ പ്രശ്‌നങ്ങൾ പരിഹരിക്കുന്നു

Temp mail SuperHeros
അസൂർ ഡാറ്റ ഫാക്ടറി CI/CD-യിലെ ലിങ്ക് ചെയ്‌ത ടെംപ്ലേറ്റുകൾക്കായുള്ള ARM ടെംപ്ലേറ്റ് വിന്യാസ പ്രശ്‌നങ്ങൾ പരിഹരിക്കുന്നു
അസൂർ ഡാറ്റ ഫാക്ടറി CI/CD-യിലെ ലിങ്ക് ചെയ്‌ത ടെംപ്ലേറ്റുകൾക്കായുള്ള ARM ടെംപ്ലേറ്റ് വിന്യാസ പ്രശ്‌നങ്ങൾ പരിഹരിക്കുന്നു

അസൂർ ഡാറ്റ ഫാക്ടറിയിലെ ലിങ്ക്ഡ് ARM ടെംപ്ലേറ്റ് പ്രശ്‌നങ്ങൾ പരിഹരിക്കുന്നു

Azure Data Factory-യിൽ CI/CD പൈപ്പ്ലൈനുകൾ നടപ്പിലാക്കുന്നത്, ഡാറ്റാ വർക്ക്ഫ്ലോകൾ ഓട്ടോമേറ്റ് ചെയ്യാനും സ്കെയിൽ ചെയ്യാനും ആഗ്രഹിക്കുന്ന ടീമുകൾക്ക് ഒരു ഗെയിം ചേഞ്ചർ ആയിരിക്കും. ഈ പ്രക്രിയ പലപ്പോഴും ഒറ്റപ്പെട്ട ARM ടെംപ്ലേറ്റുകൾ ഉപയോഗിച്ച് സുഗമമായി പ്രവർത്തിക്കുമ്പോൾ, ലിങ്ക് ചെയ്ത ARM ടെംപ്ലേറ്റുകൾക്ക് അപ്രതീക്ഷിത വെല്ലുവിളികൾ അവതരിപ്പിക്കാൻ കഴിയും, പ്രത്യേകിച്ച് വിന്യാസ സമയത്ത്.

അസൂർ ഡാറ്റാ ഫാക്ടറിക്കുള്ള പ്രൂഫ് ഓഫ് കൺസെപ്റ്റിൽ (പിഒസി) ഫോക്കസ് ചെയ്യുന്ന സമീപകാല പ്രോജക്റ്റിൽ, ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റുകൾ ഉപയോഗിക്കുമ്പോൾ ഒരു വിന്യാസ പിശക് പ്രത്യേകമായി ഉയർന്നു. ഒറ്റപ്പെട്ട ടെംപ്ലേറ്റുകൾ തടസ്സമില്ലാതെ വിന്യസിക്കുന്നുണ്ടെങ്കിലും, ലിങ്ക് ചെയ്‌ത ടെംപ്ലേറ്റുകൾ മൂല്യനിർണ്ണയ പിശകുകൾക്ക് കാരണമായി, ഇത് വർക്ക്ഫ്ലോയുടെ ഓട്ടോമേഷൻ സാധ്യതകളെ തടസ്സപ്പെടുത്തുന്നു.

"InvalidTemplate - Deployment ടെംപ്ലേറ്റ് മൂല്യനിർണ്ണയം പരാജയപ്പെട്ടു" പോലെയുള്ള ഈ വിന്യാസ പിശകുകൾ Azure-ൽ നെസ്റ്റഡ് അല്ലെങ്കിൽ ലിങ്ക് ചെയ്ത ടെംപ്ലേറ്റുകളിൽ പ്രവർത്തിക്കുമ്പോൾ അസാധാരണമല്ല. ഈ പ്രശ്നം സാധാരണയായി ഒരു ഘടനാപരമായ പൊരുത്തക്കേടിനെ സൂചിപ്പിക്കുന്നു, ഇത് വിജയകരമായ സംയോജനത്തിന് അഭിസംബോധന ചെയ്യേണ്ടത് പ്രധാനമാണ്.

ഈ ലേഖനത്തിൽ, പിശകിൻ്റെ മൂലകാരണം ഞങ്ങൾ പരിശോധിക്കും, ടെംപ്ലേറ്റ് ഘടന ആവശ്യകതകൾ വിഭജിച്ച്, Azure Data Factory-യുടെ CI/CD വിന്യാസത്തിലെ "InvalidTemplate" പിശക് പരിഹരിക്കുന്നതിനുള്ള ഘട്ടം ഘട്ടമായുള്ള സമീപനം ഞങ്ങൾ നൽകും. ഈ സൂക്ഷ്മതകൾ മനസ്സിലാക്കുന്നത്, കരുത്തുറ്റതും പിശകുകളില്ലാത്തതുമായ പൈപ്പ്ലൈൻ നിലനിർത്തുന്നതിന് പ്രധാനമാണ്.

കമാൻഡ് ഉപയോഗത്തിൻ്റെയും വിവരണത്തിൻ്റെയും ഉദാഹരണം
az storage container create നിർദ്ദിഷ്‌ട ആക്‌സസ് ക്രമീകരണങ്ങളോടെ അസൂർ ബ്ലോബ് സ്‌റ്റോറേജിൽ ഒരു പുതിയ കണ്ടെയ്‌നർ സൃഷ്‌ടിക്കുന്നു. ഈ സാഹചര്യത്തിൽ, CI/CD വിന്യാസത്തിനായി ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റുകൾ സംഭരിക്കുന്നതിനാണ് കണ്ടെയ്‌നർ സൃഷ്‌ടിച്ചത്. --auth-mode ലോഗിൻ സുരക്ഷിതമായ പ്രവേശനത്തിനായി.
az storage container generate-sas കണ്ടെയ്‌നറിലേക്കുള്ള സുരക്ഷിതവും സമയ പരിമിതവുമായ ആക്‌സസിനായി ഒരു SAS (പങ്കിട്ട ആക്‌സസ് സിഗ്‌നേച്ചർ) ടോക്കൺ സൃഷ്‌ടിക്കുന്നു. അനുമതികൾ സജ്ജീകരിച്ച് ARM ടെംപ്ലേറ്റുകൾ സുരക്ഷിതമായി ലിങ്ക് ചെയ്യുന്നതിന് ഈ കമാൻഡ് അത്യന്താപേക്ഷിതമാണ് (--അനുമതികൾ lrw) കൂടാതെ താൽക്കാലിക പ്രവേശനത്തിനുള്ള കാലഹരണപ്പെടുന്ന സമയം.
az storage blob upload ഓരോ ARM ടെംപ്ലേറ്റ് ഫയലും ഒരു ലോക്കൽ ഡയറക്‌ടറിയിൽ നിന്ന് Azure Blob കണ്ടെയ്‌നറിലേക്ക് അപ്‌ലോഡ് ചെയ്യുന്നു. ദി --auth-mode ലോഗിൻ സുരക്ഷിതമായ CI/CD പ്രവർത്തനങ്ങൾക്ക് നിർണായകമായ, അംഗീകാരത്തിനായി ഉപയോക്താവിൻ്റെ നിലവിലെ സെഷൻ ഉപയോഗിക്കുന്നതാണ് അപ്‌ലോഡ് പ്രക്രിയ ഉറപ്പാക്കുന്നത്.
az deployment group create ഒരു നിർദ്ദിഷ്ട റിസോഴ്സ് ഗ്രൂപ്പിൽ ARM ടെംപ്ലേറ്റുകൾ ഉപയോഗിച്ച് ഒരു വിന്യാസം ആരംഭിക്കുന്നു. കമാൻഡ് പിന്തുണയ്ക്കുന്നു --മോഡ് ഇൻക്രിമെൻ്റൽ CI/CD പൈപ്പ് ലൈനുകളിൽ കോഡ് ആയി ഇൻഫ്രാസ്ട്രക്ചർ കാര്യക്ഷമമായി കൈകാര്യം ചെയ്യുന്നതിന് നിർണായകമായ, മാറിയ വിഭവങ്ങൾ മാത്രം വിന്യസിക്കാനുള്ള ഓപ്ഷൻ.
for filePath in "folder"/*; do ... done ഒരു ഡയറക്ടറിയിലെ ഓരോ ഫയലിലും ആവർത്തിക്കുന്ന ബാഷ് ലൂപ്പ്. ഈ ലൂപ്പ് ഇവിടെയുള്ള CI/CD സജ്ജീകരണത്തിന് പ്രത്യേകമാണ്, കാരണം ഇത് അസൂർ ബ്ലോബ് സ്റ്റോറേജിലേക്ക് പ്രാദേശികമായി സംഭരിച്ചിരിക്കുന്ന എല്ലാ ലിങ്കുചെയ്ത ARM ടെംപ്ലേറ്റുകളുടെയും ബൾക്ക് അപ്‌ലോഡ് പ്രാപ്തമാക്കുന്നു.
basename ബാഷ് സ്‌ക്രിപ്റ്റിലെ ഒരു പൂർണ്ണ ഫയൽ പാതയിൽ നിന്ന് ഫയലിൻ്റെ പേര് എക്‌സ്‌ട്രാക്‌റ്റ് ചെയ്യുന്നു, ഓരോ ARM ടെംപ്ലേറ്റിൻ്റെയും പേര് ബ്ലോബ് കണ്ടെയ്‌നറിലേക്കുള്ള അപ്‌ലോഡ് അതിൻ്റെ പേരിൽ വ്യക്തിഗതമായി പുനർനാമകരണം ചെയ്യാനും നിയന്ത്രിക്കാനും സ്‌ക്രിപ്റ്റിനെ അനുവദിക്കുന്നു.
tr -d '"' SAS ടോക്കൺ സ്ട്രിംഗിൽ നിന്ന് ആവശ്യമില്ലാത്ത ഇരട്ട ഉദ്ധരണി അടയാളങ്ങൾ നീക്കംചെയ്യുന്നു. ടോക്കൺ ശരിയായി ഫോർമാറ്റ് ചെയ്യുന്നതിന് ഇത് പ്രധാനമാണ്, കാരണം ഏതെങ്കിലും അധിക പ്രതീകങ്ങൾ Azure വിന്യാസങ്ങളിലെ പ്രാമാണീകരണ പ്രക്രിയയെ തടസ്സപ്പെടുത്തും.
Get-ChildItem പവർഷെൽ കമാൻഡ് ഒരു നിർദ്ദിഷ്ട ഡയറക്‌ടറിയിലെ എല്ലാ ഫയലുകളും വീണ്ടെടുക്കാൻ ഉപയോഗിക്കുന്നു, ഡയറക്‌ടറി ഉള്ളടക്കങ്ങളിലൂടെ ആവർത്തിച്ച് ഒന്നിലധികം ARM ടെംപ്ലേറ്റ് ഫയലുകൾ അപ്‌ലോഡ് ചെയ്യുന്നതിനുള്ള ഓട്ടോമേഷൻ അനുവദിക്കുന്നു.
az deployment group what-if വിന്യാസത്തിൽ "വാട്ട്-ഇഫ്" വിശകലനം നടത്തുന്നു, മാറ്റങ്ങൾ യഥാർത്ഥത്തിൽ പ്രയോഗിക്കാതെ തന്നെ അനുകരിക്കുന്നു. ശാശ്വതമായ മാറ്റങ്ങൾ വരുത്താതെ Azure Data Factory CI/CD-യിൽ ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റ് കോൺഫിഗറേഷനുകൾ പരിശോധിക്കുന്നതിന് ഇത് ഉപയോഗപ്രദമാണ്.
date -u -d "1 hour" ഒരു മണിക്കൂറിനുള്ളിൽ കാലഹരണപ്പെടുന്ന ഒരു UTC ടൈംസ്റ്റാമ്പ് ജനറേറ്റുചെയ്യുന്നു, ഇത് സുരക്ഷയ്‌ക്കായി ഒരു നിർദ്ദിഷ്ട സമയപരിധിയിലേക്കുള്ള ആക്‌സസ് നിയന്ത്രിക്കുന്നതിന് SAS ടോക്കൺ സൃഷ്‌ടിക്കലിൽ ഉപയോഗിക്കുന്നു. ആവശ്യമായ ISO 8601 ഫോർമാറ്റിലാണ് തീയതി ഫോർമാറ്റ് ചെയ്തിരിക്കുന്നത്.

അസൂർ ഡാറ്റ ഫാക്ടറിയിലെ ലിങ്ക്ഡ് ARM ടെംപ്ലേറ്റുകൾക്കായുള്ള വിന്യാസ സ്ക്രിപ്റ്റുകൾ മനസ്സിലാക്കുന്നു

മുകളിൽ നൽകിയിരിക്കുന്ന സ്ക്രിപ്റ്റുകൾ ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റുകളുടെ വിന്യാസം നിയന്ത്രിക്കാൻ പ്രത്യേകം രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നു അസൂർ ഡാറ്റ ഫാക്ടറി CI/CD പൈപ്പ്ലൈൻ. ഈ പ്രക്രിയ ഓട്ടോമേറ്റ് ചെയ്യുന്നതിലൂടെ, സ്ക്രിപ്റ്റുകൾ കാര്യക്ഷമവും സുരക്ഷിതവുമായ ടെംപ്ലേറ്റുകളുടെ വിന്യാസം ഉറപ്പാക്കുന്നു. തുടക്കത്തിൽ, ഒരു സ്റ്റോറേജ് കണ്ടെയ്നർ ഉപയോഗിച്ച് സൃഷ്ടിക്കപ്പെടുന്നു അസൂർ CLI ലിങ്കുചെയ്ത ARM ടെംപ്ലേറ്റുകൾ സംഭരിച്ചിരിക്കുന്നിടത്ത്. സെൻട്രൽ റിപ്പോസിറ്ററിയായി പ്രവർത്തിക്കുന്ന ഈ സ്റ്റോറേജ് കണ്ടെയ്‌നറിന് സുരക്ഷിതമായ ആക്‌സസ് നിയന്ത്രണം ആവശ്യമാണ്, അതിനാൽ സെൻസിറ്റീവ് വിവരങ്ങൾ വെളിപ്പെടുത്താതെ കണ്ടെയ്‌നർ ഉറവിടങ്ങളിലേക്ക് താൽക്കാലിക ആക്‌സസ് അനുവദിക്കുന്ന ഒരു SAS (പങ്കിട്ട ആക്‌സസ് സിഗ്നേച്ചർ) ടോക്കണിൻ്റെ ഉപയോഗം ആവശ്യമാണ്. SAS ടോക്കൺ ഒരു മണിക്കൂറിനുള്ളിൽ കാലഹരണപ്പെടും, ഇത് നീണ്ട ആക്‌സസുമായി ബന്ധപ്പെട്ട സുരക്ഷാ അപകടസാധ്യതകൾ കുറയ്ക്കുന്നു.

സംഭരണത്തിൻ്റെ സജ്ജീകരണത്തെത്തുടർന്ന്, ഓരോ ARM ടെംപ്ലേറ്റ് ഫയലും വ്യവസ്ഥാപിതമായി കണ്ടെയ്‌നറിലേക്ക് അപ്‌ലോഡ് ചെയ്യപ്പെടുന്നു. ഈ ബൾക്ക് അപ്‌ലോഡ് പ്രോസസ്സ് ഒരു ലൂപ്പ് വഴി സുഗമമാക്കുന്നു, അത് ലോക്കൽ ARM ടെംപ്ലേറ്റ് ഡയറക്‌ടറിയിലെ ഓരോ ഫയലിലും ആവർത്തിക്കുകയും അത് അസൂർ ബ്ലോബ് സ്റ്റോറേജിലേക്ക് അപ്‌ലോഡ് ചെയ്യുകയും ഓരോ അപ്‌ലോഡിൻ്റെയും വിജയത്തെ സാധൂകരിക്കുകയും ചെയ്യുന്നു. ഒന്നിലധികം ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റ് ഫയലുകൾ കൈകാര്യം ചെയ്യുന്നതിനും ഭാവിയിലെ വിന്യാസങ്ങൾക്കായി അവ സുരക്ഷിതമായി സംഭരിക്കാനും ഈ രീതി തടസ്സമില്ലാത്ത മാർഗം നൽകുന്നു. ഓരോ ഫയലും അതിൻ്റെ അടിസ്ഥാന നാമം ഉപയോഗിച്ചാണ് അപ്‌ലോഡ് ചെയ്യുന്നത്, എല്ലാ ഫയലുകളും കണ്ടെയ്‌നറിൽ അദ്വിതീയ ഐഡൻ്റിഫയറുകൾ നിലനിർത്തുന്നുവെന്ന് ഉറപ്പാക്കുന്നു.

ARM ടെംപ്ലേറ്റുകൾ അപ്‌ലോഡ് ചെയ്‌തുകഴിഞ്ഞാൽ, SAS ടോക്കൺ Azure Blob URL-കളുമായി പൊരുത്തപ്പെടുന്ന തരത്തിൽ ഫോർമാറ്റ് ചെയ്യപ്പെടുന്നു, ഇത് ടെംപ്ലേറ്റുകളെ വിന്യാസ കമാൻഡുകളിൽ പരാമർശിക്കാൻ അനുവദിക്കുന്നു. സ്‌ക്രിപ്റ്റ് പിന്നീട് കണ്ടെയ്‌നർ യുആർഐയും എസ്എഎസ് ടോക്കണും സംയോജിപ്പിച്ച് ഒരു സുരക്ഷിത യുആർഎൽ നിർമ്മിക്കുന്നു, വിന്യാസ ആവശ്യങ്ങൾക്കായി ടെംപ്ലേറ്റുകൾ ആക്‌സസ് ചെയ്യാൻ കഴിയും. ഈ URL, ആവശ്യമായ മറ്റ് പാരാമീറ്ററുകൾക്കൊപ്പം, പ്രധാന ARM വിന്യാസ കമാൻഡിലേക്ക് കൈമാറുന്നു. വിന്യാസത്തിൻ്റെ നിർണായക ഭാഗമാണിത്, കാരണം ഇത് ഉപയോഗിക്കുന്നു az വിന്യാസ ഗ്രൂപ്പ് സൃഷ്ടിക്കുക കൂടെ കമാൻഡ് വർദ്ധിച്ചുവരുന്ന മോഡ്. ഈ മോഡ് മാറിയ വിഭവങ്ങൾ മാത്രം വിന്യസിക്കുന്നതിനും കാര്യക്ഷമത ഒപ്റ്റിമൈസ് ചെയ്യുന്നതിനും അനാവശ്യ വിന്യാസങ്ങൾ തടയുന്നതിനും പ്രാപ്തമാക്കുന്നു.

അവസാനമായി, യഥാർത്ഥ മാറ്റങ്ങളൊന്നും വരുത്താതെ വിന്യാസം പരിശോധിക്കുന്നതിന്, വിന്യാസം നിലവിലെ കോൺഫിഗറേഷനെ എങ്ങനെ മാറ്റും എന്നതിനെക്കുറിച്ചുള്ള ഉൾക്കാഴ്‌ചകൾ നൽകുന്ന ഒരു “വാട്ട്-ഇഫ്” വിശകലന കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നു. Azure CLI കമാൻഡിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഈ സിമുലേഷൻ സവിശേഷത, വിന്യാസം നടപ്പിലാക്കുന്നതിന് മുമ്പ് സാധ്യമായ പിശകുകൾ കണ്ടെത്തുന്നതിന് സഹായിക്കുന്നു, പ്രത്യേകിച്ചും പ്രവചനാതീതതയും വിശ്വാസ്യതയും പരമപ്രധാനമായ CI/CD പരിതസ്ഥിതികളിൽ ഇത് സഹായകരമാണ്. പിശക് സാധ്യതയുള്ള ഘട്ടങ്ങൾ ഓട്ടോമേറ്റ് ചെയ്യുന്നതിലൂടെയും ടെസ്റ്റിംഗിൻ്റെ ഒരു പാളി അവതരിപ്പിക്കുന്നതിലൂടെയും, Azure ഡാറ്റാ ഫാക്ടറിയിൽ ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റ് വിന്യാസങ്ങൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള കരുത്തുറ്റതും കാര്യക്ഷമവുമായ സമീപനം സ്‌ക്രിപ്റ്റുകൾ ഉറപ്പാക്കുന്നു.

പരിഹാരം 1: Azure CLI ഉപയോഗിച്ച് Azure ഡാറ്റ ഫാക്ടറിയിൽ ലിങ്ക് ചെയ്ത ARM ടെംപ്ലേറ്റുകൾ വിന്യസിക്കുന്നു

ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റുകളുടെ വിന്യാസവും പരിശോധനയും ഓട്ടോമേറ്റ് ചെയ്യുന്നതിന് ഈ പരിഹാരം ഒരു ബാഷ് പരിതസ്ഥിതിയിൽ Azure CLI ഉപയോഗിക്കുന്നു.

# Define variables
rg="resourceGroupName"
sa="storageAccountName"
cn="containerName"
adfName="dataFactoryName"

# Step 1: Create storage container if it doesn’t exist
az storage container create --name $cn --account-name $sa --public-access off --auth-mode login

# Step 2: Generate a SAS token for secured access
sasToken=$(az storage container generate-sas \
    --account-name $sa \
    --name $cn \
    --permissions lrw \
    --expiry $(date -u -d "1 hour" '+%Y-%m-%dT%H:%MZ') \
    --auth-mode login \
    --as-user)
if [ -z "$sasToken" ]; then
    echo "Failed to generate SAS token."
    exit 1
fi

# Step 3: Upload linked ARM template files to blob storage
armTemplateFolderPath="$(Build.Repository.LocalPath)/build/armTemplate/linkedTemplates"
for filePath in "$armTemplateFolderPath"/*; do
    blobName=$(basename "$filePath")
    az storage blob upload --account-name $sa --container-name $cn --name "$blobName" --file "$filePath" --auth-mode login
    if [ $? -ne 0 ]; then
        echo "Failed to upload file '$blobName' to container '$cn'. Exiting."
        exit 1
    fi
done

# Step 4: Configure SAS token and URI for template deployment
sasToken="?$(echo $sasToken | tr -d '"')
containerUrl="https://${sa}.blob.core.windows.net/${cn}"

# Step 5: Deploy linked ARM template
az deployment group create \
    --resource-group $rg \
    --mode Incremental \
    --template-file $(Build.Repository.LocalPath)/build/armTemplate/linkedTemplates/ArmTemplate_master.json \
    --parameters @$(Build.Repository.LocalPath)/build/armTemplate/linkedTemplates/ArmTemplateParameters_master.json \
    --parameters containerUri=$containerUrl containerSasToken=$sasToken factoryName=$adfName

പരിഹാരം 2: Azure ഡാറ്റ ഫാക്ടറിയിൽ ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റുകൾ വിന്യസിക്കുന്നതിനുള്ള പവർഷെൽ സ്‌ക്രിപ്റ്റ്

Azure പരിതസ്ഥിതികളിൽ PowerShell തിരഞ്ഞെടുക്കുന്ന ഉപയോക്താക്കൾക്ക് അനുയോജ്യമായ, ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റ് വിന്യാസം കൈകാര്യം ചെയ്യാൻ ഈ പരിഹാരം PowerShell ഉപയോഗിക്കുന്നു.

# Define variables
$resourceGroupName = "resourceGroupName"
$storageAccountName = "storageAccountName"
$containerName = "containerName"
$dataFactoryName = "dataFactoryName"

# Step 1: Create the container in Azure Blob Storage
az storage container create --name $containerName --account-name $storageAccountName --auth-mode login

# Step 2: Generate a SAS token
$expiryDate = (Get-Date).AddHours(1).ToString("yyyy-MM-ddTHH:mmZ")
$sasToken = az storage container generate-sas --account-name $storageAccountName --name $containerName --permissions lrw --expiry $expiryDate --auth-mode login
If (!$sasToken) {
    Write-Output "SAS token generation failed."
    exit
}

# Step 3: Upload all files in linked template directory to the container
$templateDir = "$(Build.Repository.LocalPath)/build/armTemplate/linkedTemplates"
Get-ChildItem -Path $templateDir -File | ForEach-Object {
    $blobName = $_.Name
    az storage blob upload --account-name $storageAccountName --container-name $containerName --name $blobName --file $_.FullName --auth-mode login
}

# Step 4: Prepare SAS token and URI
$containerUri = "https://$storageAccountName.blob.core.windows.net/$containerName"
$sasToken = "?$($sasToken -replace '"', '')"

# Step 5: Deploy ARM template using parameters
az deployment group create --resource-group $resourceGroupName --mode Incremental --template-file "$(Build.Repository.LocalPath)/build/armTemplate/linkedTemplates/ArmTemplate_master.json" --parameters "@$(Build.Repository.LocalPath)/build/armTemplate/linkedTemplates/ArmTemplateParameters_master.json" containerUri=$containerUri containerSasToken=$sasToken factoryName=$dataFactoryName

അസൂർ ഡാറ്റ ഫാക്ടറിയിൽ ലിങ്ക്ഡ് ARM ടെംപ്ലേറ്റ് പിശകുകൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള മികച്ച സമ്പ്രദായങ്ങൾ

ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റുകൾ ഉപയോഗിക്കുമ്പോൾ അസൂർ ഡാറ്റ ഫാക്ടറി CI/CD-യ്‌ക്ക്, മൂല്യനിർണ്ണയ പിശകുകൾ നേരിടുന്നത് സാധാരണമാണ്, പ്രത്യേകിച്ച് സങ്കീർണ്ണമായ ഡാറ്റ വർക്ക്ഫ്ലോകളിൽ. "InvalidTemplate - വിന്യാസ ടെംപ്ലേറ്റ് മൂല്യനിർണ്ണയം പരാജയപ്പെട്ടു" എന്ന് ഹൈലൈറ്റ് ചെയ്‌ത പിശക്, നെസ്റ്റഡ് അല്ലെങ്കിൽ ലിങ്ക് ചെയ്‌ത ഉറവിടങ്ങളിലെ തെറ്റായ സെഗ്‌മെൻ്റ് ദൈർഘ്യം മൂലമാണ് പലപ്പോഴും ഉണ്ടാകുന്നത്. ARM ടെംപ്ലേറ്റുകളുടെ ഘടന മനസ്സിലാക്കുന്നത് ട്രബിൾഷൂട്ടിങ്ങിന് നിർണായകമാണ്, കാരണം ARM ടെംപ്ലേറ്റുകൾ കർശനമായ വാക്യഘടനയെയും റിസോഴ്സ് ശ്രേണിയെയും ആശ്രയിക്കുന്നു. വിന്യാസ പിശകുകൾ ഒഴിവാക്കാൻ ഓരോ നെസ്റ്റഡ് റിസോഴ്സിനും അതിൻ്റെ ഉറവിട നാമമായി സമാനമായ സെഗ്‌മെൻ്റുകൾ ഉണ്ടായിരിക്കണം.

ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റുകൾ കൈകാര്യം ചെയ്യുന്നതിൻ്റെ ഒരു പ്രധാന വശം അവയുടെ സംഭരണം സുരക്ഷിതമാക്കുക എന്നതാണ് അസൂർ ബ്ലോബ് സംഭരണം. ടെംപ്ലേറ്റുകൾ അപ്‌ലോഡ് ചെയ്യുമ്പോൾ, ഒരു SAS (പങ്കിട്ട ആക്‌സസ് സിഗ്നേച്ചർ) ടോക്കൺ കോൺഫിഗർ ചെയ്യുന്നത് സെൻസിറ്റീവ് വിവരങ്ങൾ വെളിപ്പെടുത്താതെ സുരക്ഷിതമായ ആക്‌സസ് അനുവദിക്കുന്നു. ഈ ടോക്കൺ നിർദ്ദിഷ്‌ട ഉപയോക്താക്കളിലേക്കോ സേവനങ്ങളിലേക്കോ ഉള്ള ആക്‌സസ് നിയന്ത്രിക്കുകയും ഒരു നിശ്ചിത കാലയളവിനുശേഷം കാലഹരണപ്പെടുകയും ചെയ്യുന്നു, ഇത് CI/CD പ്രക്രിയകളിൽ സുരക്ഷ വർദ്ധിപ്പിക്കുന്നു. ഈ ഘട്ടം ഓട്ടോമേറ്റ് ചെയ്യുന്നതിലൂടെ, സ്ഥാപനങ്ങൾക്ക് വിന്യാസ വർക്ക്ഫ്ലോകൾ കാര്യക്ഷമമാക്കാൻ കഴിയും, ഇത് സ്കെയിലിൽ ലിങ്ക് ചെയ്ത ടെംപ്ലേറ്റുകൾ നിയന്ത്രിക്കുന്നത് എളുപ്പമാക്കുന്നു.

സജീവമായ പിശക് കൈകാര്യം ചെയ്യുന്നതിന്, "വാട്ട്-ഇഫ്" വിശകലനം പ്രവർത്തിപ്പിക്കുന്നത് സഹായകരമാണ്, കാരണം ഇത് യഥാർത്ഥത്തിൽ മാറ്റങ്ങൾ പ്രയോഗിക്കാതെ തന്നെ വിന്യാസത്തെ അനുകരിക്കുന്നു. നഷ്‌ടമായ സെഗ്‌മെൻ്റുകൾ അല്ലെങ്കിൽ തെറ്റായി ക്രമീകരിച്ച ക്രമീകരണങ്ങൾ പോലുള്ള പ്രശ്‌നങ്ങൾ കണ്ടെത്തുന്നതിനാൽ, ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റുകൾക്ക് ഈ കമാൻഡ് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്. "what-if" കമാൻഡ്, ടെംപ്ലേറ്റുകൾ സാധൂകരിക്കാനും യഥാർത്ഥ വിന്യാസത്തിന് മുമ്പ് പ്രതീക്ഷിക്കുന്ന മാറ്റങ്ങൾ കാണാനും ഡെവലപ്പർമാരെ അനുവദിക്കുന്നു, ഇത് പതിവ് ടെംപ്ലേറ്റ് അപ്‌ഡേറ്റുകളുള്ള പരിതസ്ഥിതികൾക്ക് അനുയോജ്യമാക്കുന്നു. ഈ ഘട്ടങ്ങളിലൂടെ, ഉപയോക്താക്കൾക്ക് മൂല്യനിർണ്ണയ പ്രശ്നങ്ങൾ പരിഹരിക്കാനും അസൂർ ഡാറ്റാ ഫാക്ടറിയിൽ സുഗമമായ വിന്യാസം ഉറപ്പാക്കാനും കഴിയും.

അസൂർ ഡാറ്റ ഫാക്ടറിയിലെ ലിങ്ക്ഡ് ARM ടെംപ്ലേറ്റ് വിന്യാസത്തെക്കുറിച്ചുള്ള പതിവ് ചോദ്യങ്ങൾ

  1. എന്താണ് ഒരു ലിങ്ക് ചെയ്ത ARM ടെംപ്ലേറ്റ്?
  2. ഒരു ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റ് ഒരൊറ്റ ARM ടെംപ്ലേറ്റിനെ മോഡുലാർ ഘടകങ്ങളായി വിഭജിക്കാൻ അനുവദിക്കുന്നു, സങ്കീർണ്ണമായ കോൺഫിഗറേഷനുകൾ കൂടുതൽ കാര്യക്ഷമമായി കൈകാര്യം ചെയ്യാനും വിന്യസിക്കാനും ഉപയോക്താക്കളെ പ്രാപ്തരാക്കുന്നു. Azure Data Factory അല്ലെങ്കിൽ മറ്റ് അസൂർ സേവനങ്ങൾ.
  3. Azure CLI-ൽ ഞാൻ എങ്ങനെയാണ് ഒരു SAS ടോക്കൺ സൃഷ്ടിക്കുക?
  4. ഉപയോഗിക്കുന്നത് az storage container generate-sas പോലുള്ള പാരാമീറ്ററുകൾക്കൊപ്പം --permissions ഒപ്പം --expiry സുരക്ഷിതമായ ആക്സസിനായി സമയ പരിമിതമായ ടോക്കൺ സൃഷ്ടിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.
  5. “InvalidTemplate - വിന്യാസ ടെംപ്ലേറ്റ് മൂല്യനിർണ്ണയം പരാജയപ്പെട്ടു” എന്ന പിശക് എന്താണ് അർത്ഥമാക്കുന്നത്?
  6. സെഗ്‌മെൻ്റ് പൊരുത്തക്കേടുകൾ അല്ലെങ്കിൽ തെറ്റായ റിസോഴ്‌സ് കോൺഫിഗറേഷനുകൾ പോലുള്ള ടെംപ്ലേറ്റിലെ ഘടനാപരമായ പ്രശ്നങ്ങൾ ഈ പിശക് പലപ്പോഴും സൂചിപ്പിക്കുന്നു. നെസ്റ്റഡ് റിസോഴ്സുകളിൽ സ്ഥിരമായ സെഗ്മെൻ്റ് ദൈർഘ്യം ഉറപ്പാക്കുന്നത് പലപ്പോഴും അത് പരിഹരിക്കുന്നു.
  7. വിന്യാസത്തിന് മുമ്പ് ഞാൻ എന്തിന് "what-if" കമാൻഡ് ഉപയോഗിക്കണം?
  8. ദി az deployment group what-if മാറ്റങ്ങൾ നടപ്പിലാക്കാതെ തന്നെ പരിശോധിക്കുന്നതിന് കമാൻഡ് നിർണായകമാണ്, യഥാർത്ഥ വിന്യാസത്തിന് മുമ്പ് ലിങ്കുചെയ്ത ARM ടെംപ്ലേറ്റുകളിൽ സാധ്യമായ പിശകുകൾ കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു.
  9. ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റുകൾക്ക് CI/CD കാര്യക്ഷമത മെച്ചപ്പെടുത്താൻ കഴിയുമോ?
  10. അതെ, ടെംപ്ലേറ്റുകൾ മോഡുലറൈസ് ചെയ്യുന്നതിലൂടെ, വലിയ കോൺഫിഗറേഷനുകൾ ഫലപ്രദമായി കൈകാര്യം ചെയ്യാൻ ലിങ്കുചെയ്ത ARM ടെംപ്ലേറ്റുകൾ സഹായിക്കുന്നു. അവ അപ്‌ഡേറ്റുകൾ ലളിതമാക്കുകയും CI/CD വർക്ക്ഫ്ലോകളിൽ ഓട്ടോമേഷൻ കൂടുതൽ കാര്യക്ഷമവും അളക്കാവുന്നതുമാക്കുകയും ചെയ്യുന്നു.
  11. CI/CD സംയോജനത്തിൽ നിന്ന് Azure Data Factory എങ്ങനെയാണ് പ്രയോജനപ്പെടുന്നത്?
  12. CI/CD സംയോജനം ഡാറ്റാ ഫാക്ടറി പൈപ്പ്ലൈനുകളെ ഓട്ടോമേറ്റ് ചെയ്യുന്നു, ഡാറ്റ വർക്ക്ഫ്ലോകളുടെ ദ്രുതഗതിയിലുള്ള വിന്യാസം, പരിതസ്ഥിതിയിൽ ഉടനീളം സ്ഥിരത, പ്രശ്നങ്ങൾ ഉണ്ടായാൽ എളുപ്പത്തിൽ റോൾബാക്ക് എന്നിവ ഉറപ്പാക്കുന്നു.
  13. ടെംപ്ലേറ്റുകളിൽ നഷ്‌ടമായ സെഗ്‌മെൻ്റ് പിശകുകൾ എങ്ങനെ പരിഹരിക്കാനാകും?
  14. ലെ സെഗ്‌മെൻ്റുകളുടെ എണ്ണം പരിശോധിക്കുക resource name നെസ്റ്റഡ് ഘടനയുടെ ആവശ്യകതകളുമായി ഇത് പൊരുത്തപ്പെടുന്നുണ്ടെന്ന് ഉറപ്പുവരുത്തുക. ഉപയോഗിച്ച് മൂല്യനിർണ്ണയവും നടത്താം what-if സെഗ്‌മെൻ്റ് പൊരുത്തക്കേടുകൾ കണ്ടെത്തുന്നതിന്.
  15. ARM വിന്യാസത്തിലെ ഇൻക്രിമെൻ്റൽ മോഡ് എന്താണ്?
  16. ദി --mode Incremental ക്രമീകരണം az deployment group create പരിഷ്കരിച്ച വിഭവങ്ങൾ മാത്രം വിന്യസിക്കുക, വിന്യാസങ്ങൾ വേഗത്തിലാക്കുകയും അനാവശ്യ വിന്യാസങ്ങൾ കുറയ്ക്കുകയും ചെയ്യുന്നു.
  17. ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റ് വിന്യാസം പൂർണ്ണമായും ഓട്ടോമേറ്റ് ചെയ്യാനുള്ള വഴികളുണ്ടോ?
  18. അതെ, Azure DevOps പോലുള്ള CI/CD സിസ്റ്റങ്ങളിൽ YAML പൈപ്പ്‌ലൈനുകൾ ഉപയോഗിക്കുന്നതിലൂടെ, നിങ്ങൾക്ക് പുനരുപയോഗിക്കാവുന്ന സ്‌ക്രിപ്‌റ്റുകൾ ഉപയോഗിച്ച് വിന്യാസം ഓട്ടോമേറ്റ് ചെയ്യാനും തടസ്സമില്ലാത്തതും അളക്കാവുന്നതുമായ മാനേജ്‌മെൻ്റിനായി SAS ടോക്കണുകൾ വഴി സുരക്ഷിതമായ ആക്‌സസ് ചെയ്യാനും കഴിയും.
  19. ലിങ്ക് ചെയ്‌ത ടെംപ്ലേറ്റുകൾക്കായി Azure Blob Storage ഉപയോഗിക്കുന്നതിൻ്റെ പ്രയോജനങ്ങൾ എന്തൊക്കെയാണ്?
  20. Azure Blob സ്റ്റോറേജ് ARM ടെംപ്ലേറ്റുകൾക്കായി സുരക്ഷിതവും അളക്കാവുന്നതുമായ സംഭരണം നൽകുന്നു കൂടാതെ എളുപ്പത്തിൽ ആക്സസ് നിയന്ത്രണം അനുവദിക്കുന്നു SAS tokens, വലിയ CI/CD പരിതസ്ഥിതികളിൽ ടെംപ്ലേറ്റുകൾ കൈകാര്യം ചെയ്യാൻ അനുയോജ്യം.
  21. CI/CD വിന്യാസങ്ങൾക്കുള്ള പിശകുകൾ കൈകാര്യം ചെയ്യേണ്ടത് അത്യാവശ്യമാണോ?
  22. തികച്ചും. SAS ടോക്കൺ ജനറേഷൻ പരിശോധിക്കുന്നതും ടെംപ്ലേറ്റ് ഘടനകൾ സാധൂകരിക്കുന്നതും പോലെയുള്ള ശരിയായ പിശക് കൈകാര്യം ചെയ്യൽ, അസുർ ഡാറ്റാ ഫാക്ടറിയിൽ വിശ്വസനീയവും പ്രവചിക്കാവുന്നതുമായ വിന്യാസങ്ങൾ ഉറപ്പാക്കുന്നു.

വിജയകരമായ ARM ടെംപ്ലേറ്റ് വിന്യാസത്തിനുള്ള പ്രധാന ടേക്ക്അവേകൾ

ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റ് വിന്യാസം ഫലപ്രദമായി കൈകാര്യം ചെയ്യുന്നു അസൂർ ഡാറ്റ ഫാക്ടറി ടെംപ്ലേറ്റ് ഘടനയിലും സുരക്ഷിതമായ ആക്‌സസ് കോൺഫിഗറേഷനുകളിലും വിശദമായി ശ്രദ്ധിക്കേണ്ടതുണ്ട്. പിശക് കൈകാര്യം ചെയ്യൽ ഉപയോഗിച്ച് കാര്യക്ഷമമായ CI/CD പ്രോസസ്സ് നടപ്പിലാക്കുന്നത് വിന്യാസത്തിൻ്റെ വിശ്വാസ്യത വർദ്ധിപ്പിക്കും.

ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റുകൾ കൈകാര്യം ചെയ്യാൻ ഓട്ടോമേറ്റഡ് സ്‌ക്രിപ്റ്റുകൾ ഉപയോഗിക്കുന്നത് സങ്കീർണ്ണമായ വർക്ക്ഫ്ലോകൾക്ക് സ്കേലബിളിറ്റിയും സുരക്ഷയും ഉറപ്പാക്കുന്നു. സുരക്ഷിതമായ ടോക്കൺ ജനറേഷനും സിമുലേഷനിലൂടെയുള്ള പ്രാഥമിക പരിശോധനയും CI/CD പ്രക്രിയകളിൽ ടെംപ്ലേറ്റ് സമഗ്രതയെ കൂടുതൽ ശക്തിപ്പെടുത്തുന്നു.

അസ്യൂറിലെ ലിങ്ക് ചെയ്‌ത ARM ടെംപ്ലേറ്റുകളെക്കുറിച്ചുള്ള റഫറൻസുകളും കൂടുതൽ വായനയും
  1. CI/CD-യ്‌ക്കായി Azure ഡാറ്റ ഫാക്ടറിയിൽ ARM ടെംപ്ലേറ്റുകൾ ഉപയോഗിക്കുന്നതിനുള്ള വിശദമായ ഗൈഡ്: മൈക്രോസോഫ്റ്റ് അസൂർ ഡോക്യുമെൻ്റേഷൻ - ഡാറ്റാ ഫാക്ടറിയിലെ CI/CD
  2. Azure Blob സ്റ്റോറേജിൽ സുരക്ഷിതമായ ആക്സസിനായി പങ്കിട്ട ആക്സസ് സിഗ്നേച്ചറുകളുടെ (SAS) ഉപയോഗം മനസ്സിലാക്കുന്നു: Microsoft Azure - SAS അവലോകനം
  3. ARM ടെംപ്ലേറ്റ് ഘടനയും ലിങ്ക് ചെയ്‌ത വിന്യാസങ്ങൾക്കായുള്ള മികച്ച രീതികളും: Microsoft Azure - ലിങ്ക്ഡ് ടെംപ്ലേറ്റുകൾ
  4. വിന്യാസങ്ങളും ഉറവിടങ്ങളും കൈകാര്യം ചെയ്യുന്നതിനുള്ള അസൂർ CLI കമാൻഡ് റഫറൻസ്: Microsoft Azure CLI ഡോക്യുമെൻ്റേഷൻ