<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Azure Developer CLI | The .NET Blog</title><link>https://thedotnetblog.com/hi/tags/azure-developer-cli/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>hi</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Thu, 23 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/hi/tags/azure-developer-cli/index.xml" rel="self" type="application/rss+xml"/><item><title>Python, TypeScript और .NET में azd Hooks: Shell Scripts से मुक्ति</title><link>https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</guid><description>Azure Developer CLI अब Python, JavaScript, TypeScript या .NET में hooks लिखने की सुविधा देता है। माइग्रेशन स्क्रिप्ट के लिए Bash की ओर switch करने की जरूरत खत्म।</description><content:encoded>&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित की गई है। मूल संस्करण के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/"&gt;यहाँ क्लिक करें&lt;/a&gt;।&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;अगर आपने कभी पूरी तरह .NET में बना प्रोजेक्ट रखा हो और फिर भी azd hooks के लिए Bash scripts लिखनी पड़ी हों, तो वो दर्द आप समझते हैं। जब प्रोजेक्ट का बाकी सब कुछ C# है, तो pre-provisioning step के लिए shell syntax में क्यों जाएं?&lt;/p&gt;
&lt;p&gt;वो frustration अब officially solve हो गई है। Azure Developer CLI ने &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;hooks के लिए multi-language support launch&lt;/a&gt; किया है, और यह उतना ही अच्छा है जितना सुनाई देता है।&lt;/p&gt;
&lt;h2 id="hooks-कय-ह"&gt;Hooks क्या हैं&lt;/h2&gt;
&lt;p&gt;Hooks वो scripts हैं जो &lt;code&gt;azd&lt;/code&gt; lifecycle के key points पर run होती हैं — provisioning से पहले, deployment के बाद, और अन्य। ये &lt;code&gt;azure.yaml&lt;/code&gt; में define होती हैं और CLI को modify किए बिना custom logic inject करने देती हैं।&lt;/p&gt;
&lt;p&gt;पहले सिर्फ Bash और PowerShell support थे। अब &lt;strong&gt;Python, JavaScript, TypeScript या .NET&lt;/strong&gt; use कर सकते हैं — बाकी सब &lt;code&gt;azd&lt;/code&gt; automatically handle करता है।&lt;/p&gt;
&lt;h2 id="detection-कस-कम-करत-ह"&gt;Detection कैसे काम करती है&lt;/h2&gt;
&lt;p&gt;बस hook को एक file पर point करें और &lt;code&gt;azd&lt;/code&gt; extension से language infer करता है:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/setup.py&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postdeploy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/seed.ts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/migrate.cs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;कोई extra config नहीं। अगर extension ambiguous हो तो &lt;code&gt;kind: python&lt;/code&gt; (या relevant language) explicitly specify कर सकते हैं।&lt;/p&gt;
&lt;h2 id="language-specific-details"&gt;Language-specific details&lt;/h2&gt;
&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;p&gt;Script के साथ (या किसी parent directory में) &lt;code&gt;requirements.txt&lt;/code&gt; या &lt;code&gt;pyproject.toml&lt;/code&gt; रखें। &lt;code&gt;azd&lt;/code&gt; automatically virtual environment बनाएगा, dependencies install करेगा और script run करेगा।&lt;/p&gt;
&lt;h3 id="javascript-और-typescript"&gt;JavaScript और TypeScript&lt;/h3&gt;
&lt;p&gt;Same pattern — script के पास &lt;code&gt;package.json&lt;/code&gt; रखें और &lt;code&gt;azd&lt;/code&gt; पहले &lt;code&gt;npm install&lt;/code&gt; run करेगा। TypeScript के लिए &lt;code&gt;npx tsx&lt;/code&gt; use होता है, बिना compile step और बिना &lt;code&gt;tsconfig.json&lt;/code&gt;।&lt;/p&gt;
&lt;h3 id="net"&gt;.NET&lt;/h3&gt;
&lt;p&gt;दो modes उपलब्ध:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Project mode&lt;/strong&gt;: Script के पास &lt;code&gt;.csproj&lt;/code&gt; हो तो &lt;code&gt;azd&lt;/code&gt; automatically &lt;code&gt;dotnet restore&lt;/code&gt; और &lt;code&gt;dotnet build&lt;/code&gt; run करता है।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Single-file mode&lt;/strong&gt;: .NET 10+ पर standalone &lt;code&gt;.cs&lt;/code&gt; files सीधे &lt;code&gt;dotnet run script.cs&lt;/code&gt; से run होती हैं। Project file की जरूरत नहीं।&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="executor-specific-configuration"&gt;Executor-specific configuration&lt;/h2&gt;
&lt;p&gt;हर language optional &lt;code&gt;config&lt;/code&gt; block support करती है:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/setup.ts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;packageManager&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;pnpm&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/migrate.cs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;configuration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Release&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;framework&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;net10.0&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="net-developers-क-लए-कय-मयन-रखत-ह"&gt;.NET developers के लिए क्यों मायने रखता है&lt;/h2&gt;
&lt;p&gt;Hooks azd-based project में वो आखिरी जगह थी जो language switch करने पर मजबूर करती थी। अब पूरा deployment pipeline — app code से लेकर lifecycle hooks तक — एक ही language में रह सकता है। Existing .NET utilities hooks में reuse कर सकते हैं, shared libraries reference कर सकते हैं, और shell script maintenance से छुटकारा मिलता है।&lt;/p&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;ये उन changes में से एक है जो छोटे लगते हैं लेकिन azd के daily workflow से बहुत friction हटाते हैं। Hooks के लिए multi-language support अभी available है — full documentation के लिए &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;official post&lt;/a&gt; देखें।&lt;/p&gt;</content:encoded></item><item><title>azd + GitHub Copilot: AI-सहायता से प्रोजेक्ट सेटअप और स्मार्ट एरर समाधान</title><link>https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/</guid><description>Azure Developer CLI अब GitHub Copilot के साथ इंटीग्रेट होता है — टर्मिनल छोड़े बिना प्रोजेक्ट इंफ्रास्ट्रक्चर जनरेट करें और डिप्लॉयमेंट एरर ठीक करें।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल अंग्रेजी संस्करण के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/"&gt;यहाँ क्लिक करें&lt;/a&gt;।&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;क्या आप उस पल को जानते हैं जब आप Azure पर एक मौजूदा ऐप डिप्लॉय करना चाहते हैं और एक खाली &lt;code&gt;azure.yaml&lt;/code&gt; देखकर सोचते हैं कि Express API के लिए Container Apps या App Service में से क्या चुनें? वह पल अब बहुत छोटा हो गया है।&lt;/p&gt;
&lt;p&gt;Azure Developer CLI (&lt;code&gt;azd&lt;/code&gt;) अब GitHub Copilot के साथ दो तरीकों से इंटीग्रेट होता है: &lt;code&gt;azd init&lt;/code&gt; के दौरान AI-असिस्टेड प्रोजेक्ट स्कैफोल्डिंग, और डिप्लॉयमेंट फेल होने पर इंटेलिजेंट एरर ट्रबलशूटिंग। दोनों फीचर पूरी तरह टर्मिनल में रहते हैं।&lt;/p&gt;
&lt;h2 id="azd-init-म-copilot-क-सथ-सटअप"&gt;azd init में Copilot के साथ सेटअप&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd init&lt;/code&gt; चलाने पर अब &amp;ldquo;Set up with GitHub Copilot (Preview)&amp;rdquo; विकल्प मिलता है। इसे चुनें और Copilot आपके कोडबेस का विश्लेषण करके &lt;code&gt;azure.yaml&lt;/code&gt;, इंफ्रास्ट्रक्चर टेम्प्लेट और Bicep मॉड्यूल जनरेट करता है — आपके असली कोड के आधार पर।&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd init
# चुनें: &amp;#34;Set up with GitHub Copilot (Preview)&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;आवश्यकताएँ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;azd 1.23.11 या नया&lt;/strong&gt; — &lt;code&gt;azd version&lt;/code&gt; से जाँचें या &lt;code&gt;azd update&lt;/code&gt; से अपडेट करें&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;सक्रिय GitHub Copilot सब्सक्रिप्शन&lt;/strong&gt; (Individual, Business या Enterprise)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub CLI (&lt;code&gt;gh&lt;/code&gt;)&lt;/strong&gt; — जरूरत पड़ने पर &lt;code&gt;azd&lt;/code&gt; लॉगिन माँगेगा&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;यह दोनों दिशाओं में काम करता है। नए प्रोजेक्ट के लिए? Copilot शुरू से सही Azure सर्विस कॉन्फिगर करने में मदद करता है। मौजूदा ऐप डिप्लॉय करना है? Copilot को उस पर पॉइंट करें — कोड रिस्ट्रक्चर किए बिना कॉन्फिगरेशन जनरेट हो जाएगी।&lt;/p&gt;
&lt;h3 id="असल-म-कय-हत-ह"&gt;असल में क्या होता है&lt;/h3&gt;
&lt;p&gt;मान लीजिए आपके पास PostgreSQL डिपेंडेंसी वाला Node.js Express API है। Container Apps या App Service में मैन्युअली फैसला करने और Bicep लिखने की बजाय, Copilot आपका स्टैक डिटेक्ट करके जनरेट करता है:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;सही &lt;code&gt;language&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt; और &lt;code&gt;build&lt;/code&gt; सेटिंग वाला &lt;code&gt;azure.yaml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Azure Container Apps के लिए Bicep मॉड्यूल&lt;/li&gt;
&lt;li&gt;Azure Database for PostgreSQL के लिए Bicep मॉड्यूल&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;और कुछ भी बदलने से पहले प्री-फ्लाइट चेक चलाता है — git वर्किंग डायरेक्टरी साफ है या नहीं, MCP सर्वर टूल कंसेंट। आपको पता होता है कि क्या बदलेगा।&lt;/p&gt;
&lt;h2 id="copilot-स-एरर-टरबलशटग"&gt;Copilot से एरर ट्रबलशूटिंग&lt;/h2&gt;
&lt;p&gt;डिप्लॉयमेंट एरर अपरिहार्य हैं। गुम पैरामीटर, परमिशन इश्यू, SKU उपलब्धता — और एरर मैसेज वह नहीं बताता जो आप जानना चाहते हैं: &lt;em&gt;कैसे ठीक करें&lt;/em&gt;।&lt;/p&gt;
&lt;p&gt;बिना Copilot: एरर कॉपी करें → डॉक्स सर्च करें → Stack Overflow के तीन अप्रासंगिक जवाब पढ़ें → &lt;code&gt;az&lt;/code&gt; CLI कमांड चलाएँ → दोबारा कोशिश करें। Copilot के साथ यह लूप टूट जाता है। कोई भी &lt;code&gt;azd&lt;/code&gt; कमांड फेल होने पर तुरंत चार विकल्प मिलते हैं:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Explain&lt;/strong&gt; — क्या गलत हुआ, सरल भाषा में&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Guidance&lt;/strong&gt; — ठीक करने के लिए स्टेप-बाय-स्टेप निर्देश&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diagnose and Guide&lt;/strong&gt; — पूर्ण विश्लेषण + Copilot फिक्स लागू करता है (आपकी मंजूरी से) + वैकल्पिक रिट्राई&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skip&lt;/strong&gt; — खुद संभालें&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;मुख्य बात: Copilot के पास आपके प्रोजेक्ट, फेल कमांड और एरर डिटेल का संदर्भ पहले से है। सुझाव &lt;em&gt;आपकी स्थिति&lt;/em&gt; के लिए विशिष्ट हैं।&lt;/p&gt;
&lt;h3 id="डफलट-वयवहर-सट-कर"&gt;डिफ़ॉल्ट व्यवहार सेट करें&lt;/h3&gt;
&lt;p&gt;हमेशा एक ही विकल्प चुनते हैं? इंटरेक्टिव प्रॉम्प्ट स्किप करें:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd config set copilot.errorHandling.category troubleshoot
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;मान: &lt;code&gt;explain&lt;/code&gt;, &lt;code&gt;guidance&lt;/code&gt;, &lt;code&gt;troubleshoot&lt;/code&gt;, &lt;code&gt;fix&lt;/code&gt;, &lt;code&gt;skip&lt;/code&gt;। ऑटो-फिक्स और रिट्राई भी चालू कर सकते हैं:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd config set copilot.errorHandling.fix allow
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;कभी भी इंटरेक्टिव मोड पर वापस:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd config unset copilot.errorHandling.category
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd update&lt;/code&gt; से नवीनतम संस्करण लें और अगले प्रोजेक्ट में &lt;code&gt;azd init&lt;/code&gt; आज़माएँ।&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-copilot-integration/"&gt;मूल घोषणा यहाँ पढ़ें&lt;/a&gt;।&lt;/p&gt;</content:encoded></item></channel></rss>