<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[LearningSky.io]]></title><description><![CDATA[學習是一輩子的事情，中間所經歷過的每一段時光都會在某一刻化為成長的養分]]></description><link>https://learningsky.io/</link><image><url>https://learningsky.io/favicon.png</url><title>LearningSky.io</title><link>https://learningsky.io/</link></image><generator>Ghost 4.18</generator><lastBuildDate>Fri, 17 Apr 2026 10:48:56 GMT</lastBuildDate><atom:link href="https://learningsky.io/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[【 Cloud 】刪除 Azure Recovery Services vaults 中的備份資料]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x522A;&#x9664; Azure Recovery Services vaults &#x6240;&#x5099;&#x4EFD;&#x7684;&#x8CC7;&#x6599;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;
<ul>
<li><a href="https://portal.azure.com/">https://portal.azure.com/</a></li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%88%AA%E9%99%A4-azure-recovery-services-vaults-%E6%89%80%E5%82%99%E4%BB%BD%E7%9A%84%E8%B3%87%E6%96%99">&#x522A;&#x9664; Azure Recovery Services vaults &#x6240;&#x5099;</h2>]]></description><link>https://learningsky.io/delete-backup-data-from-azure-recovery-services-vaults/</link><guid isPermaLink="false">64f7e5e92099ca142fa4f314</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><category><![CDATA[Tools & Solutions & Cybersecurity]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Thu, 07 Sep 2023 03:14:55 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1585644198914-0ac3616037c3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE1fHxwZW5hbmd8ZW58MHx8fHwxNjk0MDU2MjgxfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x522A;&#x9664; Azure Recovery Services vaults &#x6240;&#x5099;&#x4EFD;&#x7684;&#x8CC7;&#x6599;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;
<ul>
<li><a href="https://portal.azure.com/">https://portal.azure.com/</a></li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%88%AA%E9%99%A4-azure-recovery-services-vaults-%E6%89%80%E5%82%99%E4%BB%BD%E7%9A%84%E8%B3%87%E6%96%99">&#x522A;&#x9664; Azure Recovery Services vaults &#x6240;&#x5099;&#x4EFD;&#x7684;&#x8CC7;&#x6599;</h2>
<img src="https://images.unsplash.com/photo-1585644198914-0ac3616037c3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE1fHxwZW5hbmd8ZW58MHx8fHwxNjk0MDU2MjgxfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;&#x522A;&#x9664; Azure Recovery Services vaults &#x4E2D;&#x7684;&#x5099;&#x4EFD;&#x8CC7;&#x6599;"><p>Step 1. &#x9EDE;&#x9078;&#x6240;&#x5EFA;&#x7ACB;&#x7684; <code>Azure Recovery Services vaults</code> &#x670D;&#x52D9; &gt; &#x518D;&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Properties</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Security Settings</code> &#x4E2D;&#x7684; <code>Update</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-07---9.06.59-1.png" alt="&#x3010; Cloud &#x3011;&#x522A;&#x9664; Azure Recovery Services vaults &#x4E2D;&#x7684;&#x5099;&#x4EFD;&#x8CC7;&#x6599;" loading="lazy"></p>
<hr>
<p>Step 2. &#x4FEE;&#x6539;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-07---9.09.20.png" alt="&#x3010; Cloud &#x3011;&#x522A;&#x9664; Azure Recovery Services vaults &#x4E2D;&#x7684;&#x5099;&#x4EFD;&#x8CC7;&#x6599;" loading="lazy"></p>
<ul>
<li>&#x53D6;&#x6D88;&#x52FE;&#x9078; <code>Enable soft delete for cloud workloads</code> &#x9805;&#x76EE;</li>
<li>&#x53D6;&#x6D88;&#x52FE;&#x9078; <code>Enable soft delete and security settings for hybrid workloads</code> &#x9805;&#x76EE;</li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x53D6;&#x6D88;&#x52FE;&#x9078;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Update</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-07---9.15.00.png" alt="&#x3010; Cloud &#x3011;&#x522A;&#x9664; Azure Recovery Services vaults &#x4E2D;&#x7684;&#x5099;&#x4EFD;&#x8CC7;&#x6599;" loading="lazy"></p>
<hr>
<p>Step 3. &#x522A;&#x9664;&#x6240;&#x5099;&#x4EFD;&#x7684;&#x9805;&#x76EE;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Backup Items</code> &gt; &#x9EDE;&#x9078;&#x6240;&#x8981;&#x522A;&#x9664;&#x7684;&#x9805;&#x76EE; ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>Azure Backup Agent</code> )</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-07---9.17.13.png" alt="&#x3010; Cloud &#x3011;&#x522A;&#x9664; Azure Recovery Services vaults &#x4E2D;&#x7684;&#x5099;&#x4EFD;&#x8CC7;&#x6599;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>View details</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-07---9.19.53.png" alt="&#x3010; Cloud &#x3011;&#x522A;&#x9664; Azure Recovery Services vaults &#x4E2D;&#x7684;&#x5099;&#x4EFD;&#x8CC7;&#x6599;" loading="lazy"></p>
<ul>
<li>&#x8907;&#x88FD; <code>Computer name</code> ( &#x6700;&#x5F8C;&#x7684; <code>.</code> &#x4E5F;&#x8981;&#x8907;&#x88FD; ) &gt; &#x518D;&#x9EDE;&#x9078; <code>Computer name</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-07---9.23.08.png" alt="&#x3010; Cloud &#x3011;&#x522A;&#x9664; Azure Recovery Services vaults &#x4E2D;&#x7684;&#x5099;&#x4EFD;&#x8CC7;&#x6599;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Delete</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-07---9.25.50.png" alt="&#x3010; Cloud &#x3011;&#x522A;&#x9664; Azure Recovery Services vaults &#x4E2D;&#x7684;&#x5099;&#x4EFD;&#x8CC7;&#x6599;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-07---9.49.44.png" alt="&#x3010; Cloud &#x3011;&#x522A;&#x9664; Azure Recovery Services vaults &#x4E2D;&#x7684;&#x5099;&#x4EFD;&#x8CC7;&#x6599;" loading="lazy">
<ul>
<li><code>Type the server name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x4E4B;&#x524D;&#x6240;&#x8907;&#x88FD;&#x7684; <code>Computer name</code></li>
<li><code>Reason</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x7B26;&#x5408;&#x7684;&#x9078;&#x9805;</li>
<li><code>Comments</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8AAA;&#x660E;&#x539F;&#x56E0;</li>
<li>&#x52FE;&#x9078; <code>There is backup data of &lt;b&gt;1&lt;/b&gt; backup items associated with this server.I understand that clicking &quot;Confirm&quot; will permanently delete all the cloud backup data. This action cannot be undone. An alert may be sent to the administrators of this subscription notifying them of this deletion.</code> &#x6B04;&#x4F4D;</li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x8ACB;&#x9EDE;&#x9078; <code>Delete</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-07---9.56.12.png" alt="&#x3010; Cloud &#x3011;&#x522A;&#x9664; Azure Recovery Services vaults &#x4E2D;&#x7684;&#x5099;&#x4EFD;&#x8CC7;&#x6599;" loading="lazy"></p>
<ul>
<li>&#x522A;&#x9664;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-07---9.57.34.png" alt="&#x3010; Cloud &#x3011;&#x522A;&#x9664; Azure Recovery Services vaults &#x4E2D;&#x7684;&#x5099;&#x4EFD;&#x8CC7;&#x6599;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/09/buy-me-a-coffee-7.png" class="kg-image" alt="&#x3010; Cloud &#x3011;&#x522A;&#x9664; Azure Recovery Services vaults &#x4E2D;&#x7684;&#x5099;&#x4EFD;&#x8CC7;&#x6599;" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】透過 Azure Recovery Services vaults 備份 Windows 環境中的檔案與目錄]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x6D41;&#x7A0B;</li>
<li>&#x5EFA;&#x7ACB; Azure Recovery Services vaults</li>
<li>&#x5B89;&#x88DD; Backup Agent &#x8207;&#x8A3B;&#x518A;</li>
<li>&#x8A2D;&#x5B9A;&#x5099;&#x4EFD;</li>
<li>&#x57F7;&#x884C;&#x6A94;&#x6848;&#x5099;&#x4EFD;</li>
<li>&#x57F7;&#x884C;&#x6A94;&#x6848;&#x9084;&#x539F;</li>
<li>&#x57F7;&#x884C;&#x639B;&#x8F09;&#x78C1;&#x5340;&#x5378;</li></ul>]]></description><link>https://learningsky.io/backup-files-and-directories-in-a-windows-environment-through-azure-recovery-services-vaults/</link><guid isPermaLink="false">64f7e5352099ca142fa4f2f6</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><category><![CDATA[Tools & Solutions & Cybersecurity]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Thu, 07 Sep 2023 03:03:22 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1550760146-f2f4cf8961f1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE1MXx8dGFpd2FufGVufDB8fHx8MTY5NDA1MjM3Nnww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x6D41;&#x7A0B;</li>
<li>&#x5EFA;&#x7ACB; Azure Recovery Services vaults</li>
<li>&#x5B89;&#x88DD; Backup Agent &#x8207;&#x8A3B;&#x518A;</li>
<li>&#x8A2D;&#x5B9A;&#x5099;&#x4EFD;</li>
<li>&#x57F7;&#x884C;&#x6A94;&#x6848;&#x5099;&#x4EFD;</li>
<li>&#x57F7;&#x884C;&#x6A94;&#x6848;&#x9084;&#x539F;</li>
<li>&#x57F7;&#x884C;&#x639B;&#x8F09;&#x78C1;&#x5340;&#x5378;&#x8F09;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;
<ul>
<li><a href="https://portal.azure.com/">https://portal.azure.com/</a></li>
</ul>
</li>
<li>&#x4E00;&#x53F0;&#x5DF2;&#x9023;&#x7DB2;&#x8DEF;&#x7684; Windows &#x96FB;&#x8166;&#xFF0C;&#x6703;&#x7528;&#x6B64;&#x53F0;&#x96FB;&#x8166;&#x9032;&#x884C;&#x5099;&#x4EFD;&#x8207;&#x9084;&#x539F;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%B5%81%E7%A8%8B">&#x6D41;&#x7A0B;</h2>
<img src="https://images.unsplash.com/photo-1550760146-f2f4cf8961f1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE1MXx8dGFpd2FufGVufDB8fHx8MTY5NDA1MjM3Nnww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;"><p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---3.45.06.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB; <code>Azure Recovery Services vaults</code> &#x670D;&#x52D9;&#xFF0C;&#x518D;&#x4E0B;&#x8F09;&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;&#x5F8C;&#x6240;&#x7522;&#x751F;&#x7684; <code>MARS Agent</code> &#x8207; <code>&#x6191;&#x8B49; Credential</code> &#x6A94;&#x6848;</li>
<li>&#x65BC; Windows &#x74B0;&#x5883;&#x5B89;&#x88DD; <code>MARS Agent</code> &#x4E26;&#x900F;&#x904E; <code>&#x6191;&#x8B49; Credential</code> &#x6A94;&#x6848;&#x9032;&#x884C;&#x8A3B;&#x518A;</li>
<li>&#x900F;&#x904E; <code>MARS Agent</code> &#x9032;&#x884C;&#x5099;&#x4EFD;&#x9031;&#x671F;&#x8207;&#x5099;&#x4EFD;&#x4F86;&#x6E90;&#x8A2D;&#x5B9A;</li>
<li>&#x900F;&#x904E;&#x624B;&#x52D5;&#x5148;&#x9032;&#x884C;&#x9996;&#x6B21;&#x7684;&#x4F86;&#x6E90;&#x5099;&#x4EFD;</li>
<li>&#x4F9D;&#x9084;&#x539F;&#x9700;&#x6C42;&#x900F;&#x904E; <code>MARS Agent</code> &#x9032;&#x884C;&#x9084;&#x539F;&#x74B0;&#x5883;&#x639B;&#x8F09;&#x81F3;&#x672C;&#x5730;&#x7AEF; Windows &#x74B0;&#x5883;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-azure-recovery-services-vaults">&#x5EFA;&#x7ACB; Azure Recovery Services vaults</h2>
<p>Step 1. &#x9078;&#x64C7; Azure Recovery Services vaults &#x670D;&#x52D9;</p>
<p>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>Recovery Services vaults</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Recovery Services vaults</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---6.51.31.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 2. &#x9EDE;&#x9078; <code>+ Create</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---6.53.43-1.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 3. &#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---6.56.47.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li><code>Subscription</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; <code>rsv-sample</code>&#x3002;</li>
<li><code>Vault name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; <code>rsv-sample</code>&#x3002;</li>
<li><code>Region</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x670D;&#x52D9;&#x7684;&#x6240;&#x5728;&#x4F4D;&#x7F6E;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Review + create</code>&#x3002;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---6.58.19.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 4. &#x78BA;&#x8A8D;&#x8CC7;&#x8A0A;&#x5F8C;&#x9EDE;&#x9078; <code>Create</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---6.59.35.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 5. &#x5EFA;&#x7ACB;&#x904E;&#x7A0B;&#x4E2D;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---7.00.34.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 6. &#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>Go to resource</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---7.01.47.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E8%A8%AD%E5%AE%9A%E3%80%81%E5%AE%89%E8%A3%9D-backup-agent-%E8%88%87%E8%A8%BB%E5%86%8A">&#x8A2D;&#x5B9A;&#x3001;&#x5B89;&#x88DD; Backup Agent &#x8207;&#x8A3B;&#x518A;</h2>
<p>Step 1. &#x65BC; Recovery Services vaults &#x9032;&#x884C; Backup &#x8A2D;&#x5B9A;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Backup</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---7.04.53.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---7.07.25.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li><code>Where is your workload running</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>On-Premises</code></li>
<li><code>What do you want to backup?</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Files and folders</code></li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x9078;&#x64C7;&#x5B8C;&#x6210;&#xFF0C;&#x8ACB;&#x9EDE;&#x9078; <code>Prepare Infrastructure</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---7.08.38.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x4E0B;&#x8F09; Agent &#x8207;&#x8A8D;&#x8B49;&#x6A94;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>Download Agent for Windows Server or Windows Client</code> &#x4EE5;&#x9032;&#x884C; Agent &#x4E0B;&#x8F09;&#x52D5;&#x4F5C;&#xFF0C;&#x6A94;&#x540D;&#x70BA; <code>MARSAgentInstaller.exe</code></li>
<li>&#x52FE;&#x9078; <code>Already downloaded or using the latest Recovery Services Agent</code>&#x5F8C;&#xFF0C;&#x8ACB;&#x9EDE;&#x9078; <code>Download</code> &#x4EE5;&#x9032;&#x884C;&#x8A8D;&#x8B49;&#x6A94;&#x4E0B;&#x8F09;&#x52D5;&#x4F5C;&#xFF0C;&#x6A94;&#x540D;&#x70BA; <code>&#x670D;&#x52D9;&#x540D;&#x7A31;_&#x661F;&#x671F; &#x6708; &#x65E5; &#x5E74;.VaultCredentials</code>&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x7684;&#x6A94;&#x6848;&#x70BA; <code>rsv-sample_Wed Sep 06 2023.VaultCredentials</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---7.11.59.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 2. &#x5B89;&#x88DD; MARS Agent</p>
<ul>
<li>&#x8ACB;&#x65BC; Windows &#x74B0;&#x5883;&#x9EDE;&#x9078;&#x525B;&#x4E0B;&#x8F09;&#x7684; <code>MARSAgentInstaller.exe</code> &gt; &#x9EDE;&#x9078; <code>&#x4E0B;&#x4E00;&#x6B65;</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/1--1-.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>&#x4E0B;&#x4E00;&#x6B65;</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/2.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>&#x4F9D;&#x9700;&#x6C42;&#x9078;&#x64C7;&#x5F8C;&#xFF0C;&#x518D;&#x9EDE;&#x9078; <code>&#x4E0B;&#x4E00;&#x6B65;</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/3.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>&#x5B89;&#x88DD;</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/4.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>&#x5B89;&#x88DD;&#x904E;&#x7A0B;&#x4E2D;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/5.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x53F3;&#x4E0B;&#x89D2;&#x7684; <code>&#x7E7C;&#x7E8C;&#x8A3B;&#x518A;(P)</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/7.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>&#x700F;&#x89BD;</code> &#x6309;&#x9215;&#x4F86;&#x532F;&#x5165;&#x6191;&#x8B49;&#x6A94;&#x6848;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/8.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>&#x4E0B;&#x4E00;&#x6B65;</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/9-1.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x5BC6;&#x78BC;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/10.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>&#x8207;&#x9078;&#x64C7;&#x5BC6;&#x78BC;&#x5B58;&#x653E;&#x7684;&#x4F4D;&#x7F6E;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/11.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>&#x5B8C;&#x6210;</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/12.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>&#x95DC;&#x9589;</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/13.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E8%A8%AD%E5%AE%9A%E5%82%99%E4%BB%BD">&#x8A2D;&#x5B9A;&#x5099;&#x4EFD;</h2>
<p>Step 1. &#x9EDE;&#x9078;&#x53F3;&#x908A;&#x7684; <code>&#x6392;&#x7A0B;&#x5099;&#x4EFD;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/14.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 2. &#x9EDE;&#x9078; <code>&#x4E0B;&#x4E00;&#x6B65;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/15.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 3. &#x9EDE;&#x9078; <code>&#x65B0;&#x589E;&#x9805;&#x76EE;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/16.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 4. &#x9078;&#x64C7;&#x6240;&#x8981;&#x5099;&#x4EFD;&#x7684;&#x4F86;&#x6E90;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/17.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 5. &#x9EDE;&#x9078; <code>&#x4E0B;&#x4E00;&#x6B65;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/18.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 6. &#x9078;&#x64C7;&#x5099;&#x4EFD;&#x7684;&#x6642;&#x9593;&#x9593;&#x9694;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>&#x4E0B;&#x4E00;&#x6B65;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/19.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 7. &#x9078;&#x64C7;&#x526F;&#x672C;&#x4FDD;&#x7559;&#x539F;&#x5247;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>&#x4E0B;&#x4E00;&#x6B65;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/20.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 8. &#x9078;&#x64C7;&#x50B3;&#x8F38;&#x5099;&#x4EFD;&#x9078;&#x9805;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>&#x4E0B;&#x4E00;&#x6B65;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/21.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 9. &#x9EDE;&#x9078; <code>&#x5B8C;&#x6210;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/22.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 10. &#x6392;&#x7A0B;&#x5099;&#x4EFD;&#x8A2D;&#x5B9A;&#x904E;&#x7A0B;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/23.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 11. &#x8A2D;&#x5B9A;&#x5B8C;&#x6210;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/24.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%9F%B7%E8%A1%8C%E6%AA%94%E6%A1%88%E5%82%99%E4%BB%BD">&#x57F7;&#x884C;&#x6A94;&#x6848;&#x5099;&#x4EFD;</h2>
<p>Step 1. &#x9078;&#x64C7;&#x53F3;&#x5074;&#x7684; <code>&#x7ACB;&#x5373;&#x5099;&#x4EFD;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/25.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 2. &#x9078;&#x64C7; <code>&#x4E0B;&#x4E00;&#x6B65;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/26.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 3. &#x9078;&#x64C7;&#x5099;&#x4EFD;&#x4FDD;&#x7559;&#x622A;&#x6B62;&#x65E5;&#x671F;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>&#x4E0B;&#x4E00;&#x6B65;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/27.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 4. &#x9EDE;&#x9078; <code>&#x5099;&#x4EFD;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/28.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 5. &#x5099;&#x4EFD;&#x904E;&#x7A0B;&#x4E2D;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/29.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 6. &#x5099;&#x4EFD;&#x5B8C;&#x6210;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/30.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%9F%B7%E8%A1%8C%E6%AA%94%E6%A1%88%E9%82%84%E5%8E%9F">&#x57F7;&#x884C;&#x6A94;&#x6848;&#x9084;&#x539F;</h2>
<p>Step 1. &#x9EDE;&#x9078;&#x53F3;&#x5074;&#x7684; <code>&#x5FA9;&#x539F;&#x8CC7;&#x6599;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/31.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 2. &#x9EDE;&#x9078; <code>&#x4E0B;&#x4E00;&#x6B65;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/32.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 3. &#x9EDE;&#x9078; <code>&#x4E0B;&#x4E00;&#x6B65;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/33.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 4. &#x9078;&#x64C7;&#x5FA9;&#x539F;&#x9805;&#x76EE;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>&#x4E0B;&#x4E00;&#x6B65;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/34.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 5. &#x9078;&#x64C7;&#x78C1;&#x5340;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/35.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 6. &#x9078;&#x671F;&#x8981;&#x9084;&#x539F;&#x7684;&#x65E5;&#x671F;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>&#x63A5;&#x53D7;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/36.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 7. &#x9084;&#x539F;&#x904E;&#x7A0B;&#x4E2D;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/37.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 8. &#x9EDE;&#x9078; <code>&#x700F;&#x89BD;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/38.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 9. &#x9EDE;&#x9078; <code>&#x78BA;&#x5B9A;</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/39.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<hr>
<p>Step 10. &#x5DF2;&#x639B;&#x8F09;&#x6240;&#x5099;&#x4EFD;&#x7684;&#x74B0;&#x5883;&#x5230;&#x672C;&#x5730;&#x7AEF;&#x96FB;&#x8166;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/40--1-.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%9F%B7%E8%A1%8C%E6%8E%9B%E8%BC%89%E7%A3%81%E5%8D%80%E5%8D%B8%E8%BC%89">&#x57F7;&#x884C;&#x639B;&#x8F09;&#x78C1;&#x5340;&#x5378;&#x8F09;</h2>
<p>Step 1. &#x5378;&#x8F09;&#x6240;&#x639B;&#x8F09;&#x7684;&#x78C1;&#x5340;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x53F3;&#x4E0B;&#x89D2;&#x7684; <code>&#x5378;&#x8F09;</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/41.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>&#x662F;(Y)</code> &#x5F8C;&#xFF0C;&#x4EE5;&#x9032;&#x884C;&#x5378;&#x8F09;&#x52D5;&#x4F5C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/42.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/09/buy-me-a-coffee-6.png" class="kg-image" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Recovery Services vaults &#x5099;&#x4EFD; Windows &#x74B0;&#x5883;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x8207;&#x76EE;&#x9304;" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】透過 VSCode 部署程式到 Azure App Service 之 Production 與 Slot 功能所設定的 Stage 環境]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB; Azure App Service &#x8207;&#x8A2D;&#x5B9A;</li>
<li>&#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x7684; Production &#x74B0;&#x5883;</li>
<li>&#x9A57;&#x8B49; Production &#x74B0;&#x5883;</li>
<li>&#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x7684; Stage &#x74B0;&#x5883;</li>
<li>&#x9A57;&#x8B49; Stage &#x74B0;&#x5883;</li></ul>]]></description><link>https://learningsky.io/deploying-code-to-azure-app-service-production-and-slot-using-vscode/</link><guid isPermaLink="false">64f8099e2099ca142fa4f32e</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Wed, 06 Sep 2023 06:04:56 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1485871981521-5b1fd3805eee?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fG5ldyUyMHlvcmt8ZW58MHx8fHwxNjkzOTgwMTgyfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB; Azure App Service &#x8207;&#x8A2D;&#x5B9A;</li>
<li>&#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x7684; Production &#x74B0;&#x5883;</li>
<li>&#x9A57;&#x8B49; Production &#x74B0;&#x5883;</li>
<li>&#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x7684; Stage &#x74B0;&#x5883;</li>
<li>&#x9A57;&#x8B49; Stage &#x74B0;&#x5883;</li>
<li>Production &#x8207; Stage &#x74B0;&#x5883;&#x9032;&#x884C;&#x4E92;&#x63DB;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;
<ul>
<li><a href="https://portal.azure.com/">https://portal.azure.com/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x6709; GitHub &#x5E33;&#x865F;&#x4E26;&#x5DF2;&#x5EFA;&#x7ACB;&#x4E00;&#x500B;&#x65B0;&#x7684; Repository
<ul>
<li><a href="https://github.com">https://github.com</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC;&#x96FB;&#x8166;&#x7AEF;&#x5B89;&#x88DD; IDE&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; Visual Studio Code ( VSCode )
<ul>
<li><a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC; VSCode &#x5B89;&#x88DD; Azure App Service &#x5957;&#x4EF6;
<ul>
<li><a href="https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice">https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC; VSCode &#x6210;&#x529F;&#x767B;&#x5165;&#x5230; Azure</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-azure-app-service-%E8%88%87%E8%A8%AD%E5%AE%9A">&#x5EFA;&#x7ACB; Azure App Service &#x8207;&#x8A2D;&#x5B9A;</h2>
<img src="https://images.unsplash.com/photo-1485871981521-5b1fd3805eee?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fG5ldyUyMHlvcmt8ZW58MHx8fHwxNjkzOTgwMTgyfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;"><p>Step 1. &#x9078;&#x64C7; Azure App Service &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>app service</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>App Services</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.05.05.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>+ Create</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ Web App</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.08.20.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.12.23.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li><code>Subscription</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; <code>slot-sample</code>&#x3002;</li>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; <code>slot-sample</code>&#x3002;</li>
<li><code>Publish</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Code</code>&#x3002;</li>
<li><code>Runtime stack</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Node 18 LTS</code>&#x3002;</li>
<li><code>Operating System</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Linux</code>&#x3002;</li>
<li><code>Location</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x670D;&#x52D9;&#x7684;&#x6240;&#x5728;&#x4F4D;&#x7F6E;&#x3002;</li>
<li><code>Linux Plan</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Standard</code> (&#x542B;) &#x4EE5;&#x4E0A;&#x7684;&#x898F;&#x683C;&#x3002;
<ul>
<li><a href="https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#app-service-limits">https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#app-service-limits</a></li>
</ul>
</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Review + create</code>&#x3002;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.18.17.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x9EDE;&#x9078; <code>Create</code></p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.22.26.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Go to resource</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.24.04.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 2. &#x65B0;&#x589E; Production &#x74B0;&#x5883;&#x7684; Config</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Configuration</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ New application setting</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.27.20.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.29.46.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>info</code>
<ul>
<li>&#x7A0B;&#x5F0F;&#x4E2D;&#x6703;&#x4F7F;&#x7528;&#x5230;&#x6B64; Key&#x3002;</li>
</ul>
</li>
<li><code>Value</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>Version: V1</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>OK</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.30.51.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Save</code></p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.32.12.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Continue</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.33.12.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.34.14.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 3. &#x5EFA;&#x7ACB; Stage &#x74B0;&#x5883;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Deployment slots</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>+ Add Slot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.36.08.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.37.55.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; <code>stage</code>&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>Add</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.39.28.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.42.49.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 4. &#x65B0;&#x589E; Stage &#x74B0;&#x5883;&#x7684; Config</p>
<ul>
<li>&#x9EDE;&#x9078;&#x6240;&#x5EFA;&#x7ACB;&#x7684; slot&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>slot-sample-stage</code>&#x3002;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.43.50.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Configuration</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ New application setting</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.47.16.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.48.41.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>info</code>
<ul>
<li>&#x7A0B;&#x5F0F;&#x4E2D;&#x6703;&#x4F7F;&#x7528;&#x5230;&#x6B64; Key&#x3002;</li>
</ul>
</li>
<li><code>Value</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>Version: V2</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>OK</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.49.27.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Save</code></p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.50.19.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Continue</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.51.09.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.51.50.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%83%A8%E7%BD%B2%E7%A8%8B%E5%BC%8F%E5%88%B0-azure-app-service-%E7%9A%84-production-%E7%92%B0%E5%A2%83">&#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x7684; Production &#x74B0;&#x5883;</h2>
<p>Step 1. &#x4E0B;&#x8F09;&#x7BC4;&#x4F8B;&#x7A0B;&#x5F0F;</p>
<ul>
<li><a href="https://github.com/ArcherHuang/Azure_App_Service_Slot">https://github.com/ArcherHuang/Azure_App_Service_Slot</a></li>
</ul>
<hr>
<p>Step 2. &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Production &#x74B0;&#x5883;</p>
<ul>
<li>&#x900F;&#x904E; VSCode &#x958B;&#x555F; <code>Step 1</code> &#x6240;&#x4E0B;&#x8F09;&#x7684;&#x7A0B;&#x5F0F; &gt; &#x518D;&#x9EDE;&#x9078;&#x5DE6;&#x5074; <code>...</code> &#x4E2D;&#x7684; <code>Azure</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.22.07.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>&gt;</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.26.23.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x6240;&#x5EFA;&#x7ACB;&#x7684; Azure App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>slot-sample</code> ) &#x7684;&#x53F3;&#x9375;&#x9078;&#x55AE; &gt; &#x518D;&#x9EDE;&#x9078; <code>Deploy to Web App...</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.35.14.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7;&#x5C08;&#x6848;&#x6240;&#x5728;&#x4F4D;&#x7F6E;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.38.54.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Yes</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.40.14.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Deploy</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.41.43.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x90E8;&#x7F72;&#x904E;&#x7A0B;&#x4E2D;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.43.14.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x90E8;&#x7F72;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.43.58.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%A9%97%E8%AD%89-production-%E7%92%B0%E5%A2%83">&#x9A57;&#x8B49; Production &#x74B0;&#x5883;</h2>
<p>Step 1. &#x958B;&#x555F; Production &#x7684;&#x9801;&#x9762;</p>
<ul>
<li>&#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB;&#x7684; Azure App Service &#x7684; <code>Overview</code> &gt; &#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Browser</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.33.35.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 2. &#x51FA;&#x73FE; Production &#x6240;&#x8A2D;&#x5B9A;&#x7684; V1 &#x5B57;&#x6A23;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.34.51.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%83%A8%E7%BD%B2%E7%A8%8B%E5%BC%8F%E5%88%B0-azure-app-service-%E7%9A%84-stage-%E7%92%B0%E5%A2%83">&#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x7684; Stage &#x74B0;&#x5883;</h2>
<p>Step 1. &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x6240;&#x5EFA;&#x7ACB;&#x7684; Azure App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>slot-sample</code> ) &#x5DE6;&#x5074;&#x7684; <code>&gt;</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.30.51.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x6240;&#x5EFA;&#x7ACB;&#x7684; <code>Deployment Slots</code> &#x5DE6;&#x5074;&#x7684; <code>&gt;</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.47.26.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x6240;&#x5EFA;&#x7ACB;&#x7684; Slot ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>stage</code> ) &#x7684;&#x53F3;&#x9375;&#x9078;&#x55AE; &gt; &#x518D;&#x9EDE;&#x9078; <code>Deploy to Slot...</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.49.06.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7;&#x5C08;&#x6848;&#x6240;&#x5728;&#x4F4D;&#x7F6E;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.51.03.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Deploy</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.52.19.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x90E8;&#x7F72;&#x904E;&#x7A0B;&#x4E2D;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.53.29.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x90E8;&#x7F72;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-06---1.54.15.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%A9%97%E8%AD%89-stage-%E7%92%B0%E5%A2%83">&#x9A57;&#x8B49; Stage &#x74B0;&#x5883;</h2>
<p>Step 1. &#x958B;&#x555F; Stage &#x7684;&#x9801;&#x9762;</p>
<ul>
<li>&#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB; Stage &#x7684; <code>Overview</code> &gt; &#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Browser</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.51.04.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 2. &#x51FA;&#x73FE; Stage &#x6240;&#x8A2D;&#x5B9A;&#x7684; V2 &#x5B57;&#x6A23;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.52.19.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="production-%E8%88%87-stage-%E7%92%B0%E5%A2%83%E9%80%B2%E8%A1%8C%E4%BA%92%E6%8F%9B">Production &#x8207; Stage &#x74B0;&#x5883;&#x9032;&#x884C;&#x4E92;&#x63DB;</h2>
<p>Step 1. &#x74B0;&#x5883;&#x4E92;&#x63DB;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Deployment slots</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Swap</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---8.30.14.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li><code>Source</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>slot-sample-stage</code></li>
<li><code>Target</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>slot-sample</code></li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x586B;&#x5BEB;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x8ACB;&#x9EDE;&#x9078; <code>Swap</code> ( &#x8981;&#x82B1;&#x4E00;&#x4E9B;&#x6642;&#x9593;&#x9032;&#x884C;&#x4EA4;&#x63DB; )<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---8.32.52.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x4EA4;&#x63DB;&#x5B8C;&#x6210;</p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---8.38.56.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 2. &#x9A57;&#x8B49; Production &#x74B0;&#x5883;&#x662F;&#x5426;&#x70BA;&#x4E4B;&#x524D;&#x7684; Stage &#x74B0;&#x5883;</p>
<ul>
<li>&#x958B;&#x555F; Production &#x7684;&#x9801;&#x9762;
<ul>
<li>&#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB;&#x7684; Azure App Service &#x7684; <code>Overview</code> &gt; &#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Browser</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.33.35.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x51FA;&#x73FE;&#x4EA4;&#x63DB;&#x524D; Stage &#x74B0;&#x5883;&#x6240;&#x8A2D;&#x5B9A;&#x7684; V2 &#x5B57;&#x6A23;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---8.43.06.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 3. &#x9A57;&#x8B49; Stage &#x74B0;&#x5883;&#x662F;&#x5426;&#x70BA;&#x4E4B;&#x524D;&#x7684; Production &#x74B0;&#x5883;</p>
<ul>
<li>&#x958B;&#x555F; Stage &#x7684;&#x9801;&#x9762;
<ul>
<li>&#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB; Slot &#x7684; <code>Overview</code> &gt; &#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Browser</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.51.04.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x51FA;&#x73FE;&#x4EA4;&#x63DB;&#x524D; Production &#x74B0;&#x5883;&#x6240;&#x8A2D;&#x5B9A;&#x7684; V1 &#x5B57;&#x6A23;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---8.44.56.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="sample-code">Sample Code</h2>
<ul>
<li><a href="https://github.com/ArcherHuang/Azure_App_Service_Slot">https://github.com/ArcherHuang/Azure_App_Service_Slot</a></li>
</ul>
<h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/09/buy-me-a-coffee-8.png" class="kg-image" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; VSCode &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883;" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】透過 GitHub Action 部署程式到 Azure App Service 之 Production 與 Slot 功能所設定的 Stage 環境 ( Node.js )]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB; Azure App Service &#x8207;&#x8A2D;&#x5B9A;</li>
<li>&#x8A2D;&#x5B9A; GitHub Secret</li>
<li>&#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x7684; Production &#x74B0;&#x5883;</li>
<li>&#x9A57;&#x8B49; Production &#x74B0;&#x5883;</li>
<li>&#x4FEE;&#x6539; GitHub Secret</li>
<li>&#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x7684;</li></ul>]]></description><link>https://learningsky.io/deploying-nodejs-to-azure-app-service-production-and-slot-using-github-action/</link><guid isPermaLink="false">64f6c1142099ca142fa4f0b5</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><category><![CDATA[Front-end & Back-end & Programming Language]]></category><category><![CDATA[DevOps]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Tue, 05 Sep 2023 07:55:28 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1501785888041-af3ef285b470?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDIzfHxtb3VudGFpbnxlbnwwfHx8fDE2OTM4MTkxODd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB; Azure App Service &#x8207;&#x8A2D;&#x5B9A;</li>
<li>&#x8A2D;&#x5B9A; GitHub Secret</li>
<li>&#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x7684; Production &#x74B0;&#x5883;</li>
<li>&#x9A57;&#x8B49; Production &#x74B0;&#x5883;</li>
<li>&#x4FEE;&#x6539; GitHub Secret</li>
<li>&#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x7684; Stage &#x74B0;&#x5883;</li>
<li>&#x9A57;&#x8B49; Stage &#x74B0;&#x5883;</li>
<li>Production &#x8207; Stage &#x74B0;&#x5883;&#x9032;&#x884C;&#x4E92;&#x63DB;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;
<ul>
<li><a href="https://portal.azure.com/">https://portal.azure.com/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x6709; GitHub &#x5E33;&#x865F;&#x4E26;&#x5DF2;&#x5EFA;&#x7ACB;&#x4E00;&#x500B;&#x65B0;&#x7684; Repository
<ul>
<li><a href="https://github.com">https://github.com</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC;&#x96FB;&#x8166;&#x7AEF;&#x5B89;&#x88DD; IDE&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; Visual Studio
<ul>
<li><a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a></li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-azure-app-service-%E8%88%87%E8%A8%AD%E5%AE%9A">&#x5EFA;&#x7ACB; Azure App Service &#x8207;&#x8A2D;&#x5B9A;</h2>
<img src="https://images.unsplash.com/photo-1501785888041-af3ef285b470?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDIzfHxtb3VudGFpbnxlbnwwfHx8fDE2OTM4MTkxODd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )"><p>Step 1. &#x9078;&#x64C7; Azure App Service &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>app service</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>App Services</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.05.05.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>+ Create</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ Web App</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.08.20.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.12.23.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li><code>Subscription</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; <code>slot-sample</code>&#x3002;</li>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; <code>slot-sample</code>&#x3002;</li>
<li><code>Publish</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Code</code>&#x3002;</li>
<li><code>Runtime stack</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Node 18 LTS</code>&#x3002;</li>
<li><code>Operating System</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Linux</code>&#x3002;</li>
<li><code>Location</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x670D;&#x52D9;&#x7684;&#x6240;&#x5728;&#x4F4D;&#x7F6E;&#x3002;</li>
<li><code>Linux Plan</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Standard</code> (&#x542B;) &#x4EE5;&#x4E0A;&#x7684;&#x898F;&#x683C;&#x3002;
<ul>
<li><a href="https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#app-service-limits">https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#app-service-limits</a></li>
</ul>
</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Review + create</code>&#x3002;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.18.17.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x9EDE;&#x9078; <code>Create</code></p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.22.26.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Go to resource</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.24.04.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x65B0;&#x589E; Production &#x74B0;&#x5883;&#x7684; Config</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Configuration</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ New application setting</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.27.20.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.29.46.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>info</code>
<ul>
<li>&#x7A0B;&#x5F0F;&#x4E2D;&#x6703;&#x4F7F;&#x7528;&#x5230;&#x6B64; Key&#x3002;</li>
</ul>
</li>
<li><code>Value</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>Version: V1</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>OK</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.30.51.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Save</code></p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.32.12.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Continue</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.33.12.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.34.14.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 3. &#x5EFA;&#x7ACB; Stage &#x74B0;&#x5883;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Deployment slots</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>+ Add Slot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.36.08.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.37.55.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; <code>stage</code>&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>Add</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.39.28.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.42.49.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 4. &#x65B0;&#x589E; Stage &#x74B0;&#x5883;&#x7684; Config</p>
<ul>
<li>&#x9EDE;&#x9078;&#x6240;&#x5EFA;&#x7ACB;&#x7684; slot&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>slot-sample-stage</code>&#x3002;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.43.50.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Configuration</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ New application setting</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.47.16.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.48.41.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>info</code>
<ul>
<li>&#x7A0B;&#x5F0F;&#x4E2D;&#x6703;&#x4F7F;&#x7528;&#x5230;&#x6B64; Key&#x3002;</li>
</ul>
</li>
<li><code>Value</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>Version: V2</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>OK</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.49.27.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Save</code></p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.50.19.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Continue</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.51.09.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.51.50.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E8%A8%AD%E5%AE%9A-github-secret">&#x8A2D;&#x5B9A; GitHub Secret</h2>
<p>Step 1. &#x53D6;&#x5F97; Production &#x7684; <code>Publish profile</code></p>
<ul>
<li>&#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB;&#x7684; Azure App Service &#x7684; <code>Overview</code> &gt; &#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Download publish profile</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---2.55.44.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x8A2D;&#x5B9A; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E2D;&#x6240;&#x4F7F;&#x7528;&#x7684; <code>Publish profile</code></p>
<ul>
<li>&#x9EDE;&#x9078; GitHub &#x4E0A;&#x65B9;&#x7684; <code>Settings</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Secrets and variables</code> &#x4E2D;&#x7684; <code>Actions</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.06.14.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>New repository secret</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.07.34.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.08.41.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>AZURE_WEBAPP_PUBLISH_PROFILE</code></li>
<li><code>Secret</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>&#x8A2D;&#x5B9A; GitHub Secret</code> &#x6BB5;&#x843D;&#x4E2D; <code>Step 1</code> &#x6240;&#x4E0B;&#x8F09;&#x7684; <code>Publish profile</code> &#x6A94;&#x6848;&#x7684;&#x5167;&#x5BB9;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>Add secret</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.12.00.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.13.50.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%83%A8%E7%BD%B2%E7%A8%8B%E5%BC%8F%E5%88%B0-azure-app-service-%E7%9A%84-production-%E7%92%B0%E5%A2%83">&#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x7684; Production &#x74B0;&#x5883;</h2>
<p>Step 1. &#x4E0B;&#x8F09;&#x7BC4;&#x4F8B;&#x7A0B;&#x5F0F;</p>
<ul>
<li><a href="https://github.com/ArcherHuang/Azure_App_Service_Slot">https://github.com/ArcherHuang/Azure_App_Service_Slot</a></li>
</ul>
<hr>
<p>Step 2. &#x5EFA;&#x7ACB; GitHub Action &#x8981;&#x4F7F;&#x7528;&#x7684; YAML &#x6A94;</p>
<ul>
<li>&#x5728;&#x7BC4;&#x4F8B;&#x7A0B;&#x5F0F;&#x4E2D;&#x7684;&#x6839;&#x76EE;&#x9304;&#x65B0;&#x589E; <code>.github/workflows/workflow.yml</code> &#x6A94;&#x6848;&#x4E26;&#x8F38;&#x5165;&#x4EE5;&#x4E0B;&#x7684;&#x5167;&#x5BB9;
<ul>
<li>&#x8ACB;&#x4FEE;&#x6539;&#x7B2C; 6 &#x884C;&#x5F8C;&#x9762;&#x7684; <code>APP-SERVICE-NAME</code> &#x70BA; <code>&#x5EFA;&#x7ACB; Azure App Service &#x8207;&#x8A2D;&#x5B9A;</code> &#x6BB5;&#x843D;&#x4E2D; <code>Step 1</code> &#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li>&#x8ACB;&#x4FEE;&#x6539;&#x7B2C; 7 &#x884C;&#x5F8C;&#x9762;&#x7684; <code>APP-SERVICE-SLOG-NAME</code> &#x70BA; <code>&#x5EFA;&#x7ACB; Azure App Service &#x8207;&#x8A2D;&#x5B9A;</code> &#x6BB5;&#x843D;&#x4E2D; <code>Step 3</code> &#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
</ul>
<script src="https://gist.github.com/ArcherHuang/ea5e28cec2fb4226c2593802a7d65037.js"></script>
<ul>
<li>&#x7A0B;&#x5F0F;&#x76EE;&#x9304;&#x7D50;&#x69CB;</li>
</ul>
<pre><code>.
&#x2514;&#x2500;&#x2500; Azure_App_Service_Slot
    &#x251C;&#x2500;&#x2500; .github
    |   &#x2514;&#x2500;&#x2500; workflows
    |       &#x2514;&#x2500;&#x2500; workflow.yml
    &#x251C;&#x2500;&#x2500; index.js
    &#x251C;&#x2500;&#x2500; memo.md
    &#x251C;&#x2500;&#x2500; package-lock.json
    &#x2514;&#x2500;&#x2500; package.json
</code></pre>
</li>
</ul>
<hr>
<p>Step 3. &#x5C07;&#x7A0B;&#x5F0F; Push &#x5230; GitHub &#x4E26;&#x67E5;&#x770B; GitHub Action &#x7684;&#x72C0;&#x614B;</p>
<ul>
<li>&#x57F7;&#x884C; GitHub Action &#x4E2D;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.28.04.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.28.42.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%A9%97%E8%AD%89-production-%E7%92%B0%E5%A2%83">&#x9A57;&#x8B49; Production &#x74B0;&#x5883;</h2>
<p>Step 1. &#x958B;&#x555F; Production &#x7684;&#x9801;&#x9762;</p>
<ul>
<li>&#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB;&#x7684; Azure App Service &#x7684; <code>Overview</code> &gt; &#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Browser</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.33.35.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x51FA;&#x73FE; Production &#x6240;&#x8A2D;&#x5B9A;&#x7684; V1 &#x5B57;&#x6A23;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.34.51.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E4%BF%AE%E6%94%B9-github-secret">&#x4FEE;&#x6539; GitHub Secret</h2>
<p>Step 1. &#x53D6;&#x5F97; Stage &#x7684; <code>Publish profile</code></p>
<ul>
<li>&#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB; Stage &#x7684; <code>Overview</code> &gt; &#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Download publish profile</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.42.01.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x4FEE;&#x6539; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E2D;&#x6240;&#x4F7F;&#x7528;&#x7684; <code>Publish profile</code></p>
<ul>
<li>&#x9EDE;&#x9078; GitHub &#x4E0A;&#x65B9;&#x7684; <code>Settings</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Secrets and variables</code> &#x4E2D;&#x7684; <code>Actions</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.06.14.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>AZURE_WEBAPP_PUBLISH_PROFILE</code> &#x65C1;&#x7684;&#x756B;&#x7B46;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.44.53.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.46.21.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>AZURE_WEBAPP_PUBLISH_PROFILE</code></li>
<li><code>Value</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>&#x4FEE;&#x6539; GitHub Secret</code> &#x6BB5;&#x843D;&#x4E2D; <code>Step 1</code> &#x6240;&#x4E0B;&#x8F09;&#x7684; <code>Publish profile</code> &#x6A94;&#x6848;&#x7684;&#x5167;&#x5BB9;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>Update secret</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.46.41.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x4FEE;&#x6539;&#x5B8C;&#x6210;</p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.47.33.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%83%A8%E7%BD%B2%E7%A8%8B%E5%BC%8F%E5%88%B0-azure-app-service-%E7%9A%84-stage-%E7%92%B0%E5%A2%83">&#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x7684; Stage &#x74B0;&#x5883;</h2>
<p>Step 1. &#x4FEE;&#x6539; <code>workflow.yml</code></p>
<ul>
<li>&#x958B;&#x555F; <code>.github/workflows/workflow.yml</code> &#x6A94;&#x6848;&#x4E26;&#x5C07;&#x7B2C; 30 &#x884C;&#x524D;&#x9762;&#x7684; <code>#</code> &#x522A;&#x9664;
<ul>
<li>&#x8ACB;&#x4FEE;&#x6539;&#x7B2C; 6 &#x884C;&#x5F8C;&#x9762;&#x7684; <code>APP-SERVICE-NAME</code> &#x70BA; <code>&#x5EFA;&#x7ACB; Azure App Service &#x8207;&#x8A2D;&#x5B9A;</code> &#x6BB5;&#x843D;&#x4E2D; <code>Step 1</code> &#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li>&#x8ACB;&#x4FEE;&#x6539;&#x7B2C; 7 &#x884C;&#x5F8C;&#x9762;&#x7684; <code>APP-SERVICE-SLOG-NAME</code> &#x70BA; <code>&#x5EFA;&#x7ACB; Azure App Service &#x8207;&#x8A2D;&#x5B9A;</code> &#x6BB5;&#x843D;&#x4E2D; <code>Step 3</code> &#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
</ul>
<script src="https://gist.github.com/ArcherHuang/ca8cefe8f8eafd0e7db96c8120db94dc.js"></script>
</li>
</ul>
<hr>
<p>Step 2. &#x5C07;&#x7A0B;&#x5F0F; Push &#x5230; GitHub &#x4E26;&#x67E5;&#x770B; GitHub Action &#x7684;&#x72C0;&#x614B;</p>
<ul>
<li>&#x57F7;&#x884C; GitHub Action &#x4E2D;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.49.32.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.49.56.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%A9%97%E8%AD%89-stage-%E7%92%B0%E5%A2%83">&#x9A57;&#x8B49; Stage &#x74B0;&#x5883;</h2>
<p>Step 1. &#x958B;&#x555F; Stage &#x7684;&#x9801;&#x9762;</p>
<ul>
<li>&#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB; Stage &#x7684; <code>Overview</code> &gt; &#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Browser</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.51.04.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x51FA;&#x73FE; Stage &#x6240;&#x8A2D;&#x5B9A;&#x7684; V2 &#x5B57;&#x6A23;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.52.19.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="production-%E8%88%87-stage-%E7%92%B0%E5%A2%83%E9%80%B2%E8%A1%8C%E4%BA%92%E6%8F%9B">Production &#x8207; Stage &#x74B0;&#x5883;&#x9032;&#x884C;&#x4E92;&#x63DB;</h2>
<p>Step 1. &#x74B0;&#x5883;&#x4E92;&#x63DB;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Deployment slots</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Swap</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---8.30.14.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li><code>Source</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>slot-sample-stage</code></li>
<li><code>Target</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>slot-sample</code></li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x586B;&#x5BEB;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x8ACB;&#x9EDE;&#x9078; <code>Swap</code> ( &#x8981;&#x82B1;&#x4E00;&#x4E9B;&#x6642;&#x9593;&#x9032;&#x884C;&#x4EA4;&#x63DB; )<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---8.32.52.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x4EA4;&#x63DB;&#x5B8C;&#x6210;</p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---8.38.56.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x9A57;&#x8B49; Production &#x74B0;&#x5883;&#x662F;&#x5426;&#x70BA;&#x4E4B;&#x524D;&#x7684; Stage &#x74B0;&#x5883;</p>
<ul>
<li>&#x958B;&#x555F; Production &#x7684;&#x9801;&#x9762;
<ul>
<li>&#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB;&#x7684; Azure App Service &#x7684; <code>Overview</code> &gt; &#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Browser</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.33.35.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x51FA;&#x73FE;&#x4EA4;&#x63DB;&#x524D; Stage &#x74B0;&#x5883;&#x6240;&#x8A2D;&#x5B9A;&#x7684; V2 &#x5B57;&#x6A23;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---8.43.06.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 3. &#x9A57;&#x8B49; Stage &#x74B0;&#x5883;&#x662F;&#x5426;&#x70BA;&#x4E4B;&#x524D;&#x7684; Production &#x74B0;&#x5883;</p>
<ul>
<li>&#x958B;&#x555F; Stage &#x7684;&#x9801;&#x9762;
<ul>
<li>&#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB; Slot &#x7684; <code>Overview</code> &gt; &#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Browser</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---3.51.04.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x51FA;&#x73FE;&#x4EA4;&#x63DB;&#x524D; Production &#x74B0;&#x5883;&#x6240;&#x8A2D;&#x5B9A;&#x7684; V1 &#x5B57;&#x6A23;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---8.44.56.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="sample-code">Sample Code</h2>
<ul>
<li><a href="https://github.com/ArcherHuang/Azure_App_Service_Slot">https://github.com/ArcherHuang/Azure_App_Service_Slot</a></li>
</ul>
<h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/09/buy-me-a-coffee-5.png" class="kg-image" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; GitHub Action &#x90E8;&#x7F72;&#x7A0B;&#x5F0F;&#x5230; Azure App Service &#x4E4B; Production &#x8207; Slot &#x529F;&#x80FD;&#x6240;&#x8A2D;&#x5B9A;&#x7684; Stage &#x74B0;&#x5883; ( Node.js )" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】Azure Traffic Management Lab - 實作 Azure Application Gateway]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="azure-traffic-management-lab">Azure Traffic Management Lab</h2>
<ul>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-experimental-environment">&#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-hub-spoke-network-topology">&#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-routing-hub-spoke-network-topology">&#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-load-balancer">&#x5BE6;&#x4F5C; Azure Load Balancer</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-application-gateway">&#x5BE6;&#x4F5C; Azure Application Gateway</a></li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9C%AC%E7%AF%87%E6%96%87%E7%AB%A0%E5%85%A7%E5%AE%B9">&#x672C;&#x7BC7;&#x6587;&#x7AE0;&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;</li></ul>]]></description><link>https://learningsky.io/azure-traffic-management-lab-implement-azure-application-gateway/</link><guid isPermaLink="false">64f533b02099ca142fa4ed37</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Mon, 04 Sep 2023 07:49:57 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1518509562904-e7ef99cdcc86?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fFBoaWxpcHBpbmVzfGVufDB8fHx8MTY5MzgxMzcxM3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="azure-traffic-management-lab">Azure Traffic Management Lab</h2>
<ul>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-experimental-environment">&#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-hub-spoke-network-topology">&#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-routing-hub-spoke-network-topology">&#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-load-balancer">&#x5BE6;&#x4F5C; Azure Load Balancer</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-application-gateway">&#x5BE6;&#x4F5C; Azure Application Gateway</a></li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9C%AC%E7%AF%87%E6%96%87%E7%AB%A0%E5%85%A7%E5%AE%B9">&#x672C;&#x7BC7;&#x6587;&#x7AE0;&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x67B6;&#x69CB;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB; Azure Application Gateway</li>
<li>&#x6E2C;&#x8A66;&#x8207;&#x9A57;&#x8B49;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;
<ul>
<li><a href="https://portal.azure.com/">https://portal.azure.com/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x5B89;&#x88DD; <code>Azure CLI</code> &#x4E26;&#x900F;&#x904E; <code>az login</code> &#x6307;&#x4EE4;&#x767B;&#x5165;&#x6210;&#x529F;
<ul>
<li><a href="https://learn.microsoft.com/en-us/cli/azure/install-azure-cli">https://learn.microsoft.com/en-us/cli/azure/install-azure-cli</a></li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9E%B6%E6%A7%8B">&#x67B6;&#x69CB;</h2>
<img src="https://images.unsplash.com/photo-1518509562904-e7ef99cdcc86?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fFBoaWxpcHBpbmVzfGVufDB8fHx8MTY5MzgxMzcxM3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway"><p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---6.05.26.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E6%9C%8D%E5%8B%99%E6%89%80%E4%BD%BF%E7%94%A8%E7%9A%84%E5%90%8D%E7%A8%B1">&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</h2>
<ul>
<li>VNet</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">VNet Name</th>
<th style="text-align:center">Resource group</th>
<th style="text-align:center">Location</th>
<th style="text-align:center">VNet IP Addresses</th>
<th style="text-align:center">Subnet IP Addresses</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">10.1.0.0/16</td>
<td style="text-align:center">subnet-01 <br> 10.1.1.0/24<br><br> subnet-02  <br> 10.1.2.0/24</td>
</tr>
<tr>
<td style="text-align:center">vnet-02</td>
<td style="text-align:center">traffic-management-rg-02</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">10.2.0.0/16</td>
<td style="text-align:center">subnet-03  <br> 10.2.3.0/24</td>
</tr>
<tr>
<td style="text-align:center">vnet-03</td>
<td style="text-align:center">traffic-management-rg-03</td>
<td style="text-align:center">West US 2</td>
<td style="text-align:center">10.3.0.0/16</td>
<td style="text-align:center">subnet-05  <br> 10.3.5.0/24</td>
</tr>
</tbody>
</table>
<ul>
<li>VM &amp; NIC</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">VM Name</th>
<th style="text-align:center">Resource Group</th>
<th style="text-align:center">Location</th>
<th style="text-align:center">VNet Name</th>
<th style="text-align:center">Subnet Name</th>
<th style="text-align:center">NIC Name</th>
<th style="text-align:center">IP</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">vm-11</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">subnet-01</td>
<td style="text-align:center">nic-11</td>
<td style="text-align:center">10.1.1.11</td>
</tr>
<tr>
<td style="text-align:center">vm-22</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">subnet-02</td>
<td style="text-align:center">nic-22</td>
<td style="text-align:center">10.1.2.22</td>
</tr>
<tr>
<td style="text-align:center">vm-33</td>
<td style="text-align:center">traffic-management-rg-02</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-02</td>
<td style="text-align:center">subnet-03</td>
<td style="text-align:center">nic-33</td>
<td style="text-align:center">10.2.3.33</td>
</tr>
<tr>
<td style="text-align:center">vm-55</td>
<td style="text-align:center">traffic-management-rg-03</td>
<td style="text-align:center">West US 2</td>
<td style="text-align:center">vnet-03</td>
<td style="text-align:center">subnet-05</td>
<td style="text-align:center">nic-55</td>
<td style="text-align:center">10.3.5.55</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-azure-application-gateway">&#x5EFA;&#x7ACB; Azure Application Gateway</h2>
<p>Step 1. &#x9078;&#x64C7; Virtual network &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>VNet</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Virtual network</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.11.09.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<ul>
<li>&#x4E4B;&#x524D;&#x900F;&#x904E;&#x6307;&#x4EE4;&#x6240;&#x5EFA;&#x7ACB;&#x7684; VNet</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.13.36.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<hr>
<p>Step 2. &#x5EFA;&#x7ACB;&#x7D66; Azure Application Gateway &#x7528;&#x7684; Subnet</p>
<ul>
<li>&#x9EDE;&#x9078; <code>vnet-01</code> &gt; &#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Subnets</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>+ Subnet</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.39.08-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>subnet-appgw</code></li>
<li><code>Subnet address range</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.1.3.224/27</code></li>
<li>&#x5176;&#x4ED6;&#x6B04;&#x4F4D;&#x4F7F;&#x7528;&#x9810;&#x8A2D;&#x503C;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Save</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.43.02-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.44.50-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.45.54-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<hr>
<p>Step 3. &#x9078;&#x64C7; Azure Application Gateway &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>Application Gateway</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Application Gateway</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.49.50-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<hr>
<p>Step 4. &#x586B;&#x5BEB; Basic &#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>+ Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.51.28-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code></li>
<li><code>Application gateway name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>tm-appgw</code></li>
<li><code>Region</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>West US</code></li>
<li><code>Tier</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Standard V2</code></li>
<li><code>Enable autoscaling</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>No</code></li>
<li><code>Instance count</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>2</code></li>
<li><code>HTTP2</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Disabled</code></li>
<li><code>Virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vnet-01</code></li>
<li><code>Subnet</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>subnet-appgw (10.1.3.224/27)</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x586B;&#x5BEB;&#x5B8C;&#x8ACB;&#x9EDE;&#x9078; <code>Next: Frontends</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.53.12-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.57.56-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<hr>
<p>Step 4. &#x586B;&#x5BEB; Frontends &#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.00.15-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy">
<ul>
<li><code>Frontend IP address type</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Public</code></li>
<li><code>Public IP address</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Add new</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.02.22-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy">
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>tm-pip2</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x586B;&#x5BEB;&#x5B8C;&#x8ACB;&#x9EDE;&#x9078; <code>OK</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.03.46-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></li>
</ul>
</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x586B;&#x5BEB;&#x5B8C;&#x8ACB;&#x9EDE;&#x9078; <code>Next: Backends</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.05.56-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></li>
</ul>
</li>
</ul>
<hr>
<p>Step 5. &#x586B;&#x5BEB; Backends &#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>Add a backend pool</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.06.39-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.09.08-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy">
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>tm-appgw-be</code></li>
<li><code>Add backend pool without targets</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>No</code></li>
<li><code>Target type</code> &#x5340;&#x584A;
<ul>
<li>&#x9078;&#x64C7; <code>IP address or FQDN</code> &#x4E26;&#x65BC;&#x5F8C;&#x65B9;&#x8F38;&#x5165; <code>10.2.3.33</code></li>
<li>&#x9078;&#x64C7; <code>IP address or FQDN</code> &#x4E26;&#x65BC;&#x5F8C;&#x65B9;&#x8F38;&#x5165; <code>10.3.5.55</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.12.23-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x586B;&#x5BEB;&#x5B8C;&#x8ACB;&#x9EDE;&#x9078; <code>Add</code></li>
</ul>
</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x586B;&#x5BEB;&#x5B8C;&#x8ACB;&#x9EDE;&#x9078; <code>Next: Configuration</code></li>
</ul>
</li>
</ul>
<hr>
<p>Step 6. &#x586B;&#x5BEB; Configuration &#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>+ Add a routing rule</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.15.08-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.18.43-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<ul>
<li><code>Rule name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>tm-appgw-rl1</code></li>
<li><code>Priority Value</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10</code></li>
<li><code>Listener</code> &#x5340;&#x584A;
<ul>
<li><code>Listener name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>tm-appgw-rl1l1</code></li>
<li><code>Frontend IP</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Public</code></li>
<li><code>Protocol</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>HTTP</code></li>
<li><code>Port</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>80</code></li>
<li><code>Listener type</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Basic</code></li>
<li><code>Bad Gateway - 502</code> &#x6B04;&#x4F4D;&#x514D;&#x586B;</li>
<li><code>Forbidden - 403</code> &#x6B04;&#x4F4D;&#x514D;&#x586B;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.22.29-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></li>
</ul>
</li>
<li><code>Backend targets</code> &#x5340;&#x584A;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.25.11-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy">
<ul>
<li><code>Target type</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Backend pool</code></li>
<li><code>Backend target</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>tm-appgw-be</code></li>
<li><code>Backend settings</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Add new</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.28.02-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></li>
<li><code>Backend settings Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>tm-appgw-http</code></li>
<li><code>Backend protocol</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>HTTP</code></li>
<li><code>Backend port</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>80</code></li>
<li><code>Cookie-based affinity</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Disable</code></li>
<li><code>Connection draining</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Disable</code></li>
<li><code>Request time-out (seconds)</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>20</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x586B;&#x5BEB;&#x5B8C;&#x8ACB;&#x9EDE;&#x9078; <code>Add</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.31.45-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></li>
</ul>
</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x586B;&#x5BEB;&#x5B8C;&#x8ACB;&#x9EDE;&#x9078; <code>Add</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.32.40-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x9EDE;&#x9078; <code>Next: Tags</code></p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.33.35-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Next: Review + create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.34.53-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.36.02-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x904E;&#x7A0B;&#x4E2D;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.38.00-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---10.48.58.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%B8%AC%E8%A9%A6%E8%88%87%E9%A9%97%E8%AD%89">&#x6E2C;&#x8A66;&#x8207;&#x9A57;&#x8B49;</h2>
<p>Step 1. &#x9078;&#x64C7; Azure Application Gateway &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>Application Gateway</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Application Gateway</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.49.50-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<hr>
<p>Step 2. &#x53D6;&#x5F97; Public IP address</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---11.23.29.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<hr>
<p>Step 3. &#x7528;&#x96FB;&#x8166;&#x700F;&#x89BD;&#x5668; ( Chrome ) &#x958B;&#x555F; <code>Step 2</code> &#x6240;&#x53D6;&#x5F97;&#x7684; <code>Public IP address</code></p>
<ul>
<li>&#x700F;&#x89BD;&#x5668;&#x8F38;&#x5165; Public IP &#x5F8C;&#x900F;&#x904E; <code>Azure Load Balancer</code> &#x9023;&#x7DDA;&#x5230; <code>vm-33</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---11.25.09.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<hr>
<p>Step 4. &#x7528;&#x96FB;&#x8166;&#x700F;&#x89BD;&#x5668; ( Edge ) &#x958B;&#x555F; <code>Step 2</code> &#x6240;&#x53D6;&#x5F97;&#x7684; <code>Public IP address</code></p>
<ul>
<li>&#x700F;&#x89BD;&#x5668;&#x8F38;&#x5165; Public IP &#x5F8C;&#x900F;&#x904E; <code>Azure Load Balancer</code> &#x9023;&#x7DDA;&#x5230; <code>vm-55</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---11.25.36.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/09/buy-me-a-coffee-4.png" class="kg-image" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Application Gateway" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】Azure Traffic Management Lab - 實作 Azure Load Balancer]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="azure-traffic-management-lab">Azure Traffic Management Lab</h2>
<ul>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-experimental-environment">&#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-hub-spoke-network-topology">&#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-routing-hub-spoke-network-topology">&#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-load-balancer/">&#x5BE6;&#x4F5C; Azure Load Balancer</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-application-gateway">&#x5BE6;&#x4F5C; Azure Application Gateway</a></li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9C%AC%E7%AF%87%E6%96%87%E7%AB%A0%E5%85%A7%E5%AE%B9">&#x672C;&#x7BC7;&#x6587;&#x7AE0;&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;</li></ul>]]></description><link>https://learningsky.io/azure-traffic-management-lab-implement-azure-load-balancer/</link><guid isPermaLink="false">64f521112099ca142fa4eb88</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Mon, 04 Sep 2023 07:10:36 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1620065487644-1080510335f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDI2fHxNYWxkaXZlc3xlbnwwfHx8fDE2OTM4MTE0MTV8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="azure-traffic-management-lab">Azure Traffic Management Lab</h2>
<ul>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-experimental-environment">&#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-hub-spoke-network-topology">&#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-routing-hub-spoke-network-topology">&#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-load-balancer/">&#x5BE6;&#x4F5C; Azure Load Balancer</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-application-gateway">&#x5BE6;&#x4F5C; Azure Application Gateway</a></li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9C%AC%E7%AF%87%E6%96%87%E7%AB%A0%E5%85%A7%E5%AE%B9">&#x672C;&#x7BC7;&#x6587;&#x7AE0;&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x67B6;&#x69CB;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB; Azure Load Balancer</li>
<li>&#x6E2C;&#x8A66;&#x8207;&#x9A57;&#x8B49;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;
<ul>
<li><a href="https://portal.azure.com/">https://portal.azure.com/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x5B89;&#x88DD; <code>Azure CLI</code> &#x4E26;&#x900F;&#x904E; <code>az login</code> &#x6307;&#x4EE4;&#x767B;&#x5165;&#x6210;&#x529F;
<ul>
<li><a href="https://learn.microsoft.com/en-us/cli/azure/install-azure-cli">https://learn.microsoft.com/en-us/cli/azure/install-azure-cli</a></li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9E%B6%E6%A7%8B">&#x67B6;&#x69CB;</h2>
<img src="https://images.unsplash.com/photo-1620065487644-1080510335f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDI2fHxNYWxkaXZlc3xlbnwwfHx8fDE2OTM4MTE0MTV8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer"><p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---6.05.26.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E6%9C%8D%E5%8B%99%E6%89%80%E4%BD%BF%E7%94%A8%E7%9A%84%E5%90%8D%E7%A8%B1">&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</h2>
<ul>
<li>VNet</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">VNet Name</th>
<th style="text-align:center">Resource group</th>
<th style="text-align:center">Location</th>
<th style="text-align:center">VNet IP Addresses</th>
<th style="text-align:center">Subnet IP Addresses</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">10.1.0.0/16</td>
<td style="text-align:center">subnet-01 <br> 10.1.1.0/24<br><br> subnet-02  <br> 10.1.2.0/24</td>
</tr>
<tr>
<td style="text-align:center">vnet-02</td>
<td style="text-align:center">traffic-management-rg-02</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">10.2.0.0/16</td>
<td style="text-align:center">subnet-03  <br> 10.2.3.0/24</td>
</tr>
<tr>
<td style="text-align:center">vnet-03</td>
<td style="text-align:center">traffic-management-rg-03</td>
<td style="text-align:center">West US 2</td>
<td style="text-align:center">10.3.0.0/16</td>
<td style="text-align:center">subnet-05  <br> 10.3.5.0/24</td>
</tr>
</tbody>
</table>
<ul>
<li>VM &amp; NIC</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">VM Name</th>
<th style="text-align:center">Resource Group</th>
<th style="text-align:center">Location</th>
<th style="text-align:center">VNet Name</th>
<th style="text-align:center">Subnet Name</th>
<th style="text-align:center">NIC Name</th>
<th style="text-align:center">IP</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">vm-11</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">subnet-01</td>
<td style="text-align:center">nic-11</td>
<td style="text-align:center">10.1.1.11</td>
</tr>
<tr>
<td style="text-align:center">vm-22</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">subnet-02</td>
<td style="text-align:center">nic-22</td>
<td style="text-align:center">10.1.2.22</td>
</tr>
<tr>
<td style="text-align:center">vm-33</td>
<td style="text-align:center">traffic-management-rg-02</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-02</td>
<td style="text-align:center">subnet-03</td>
<td style="text-align:center">nic-33</td>
<td style="text-align:center">10.2.3.33</td>
</tr>
<tr>
<td style="text-align:center">vm-55</td>
<td style="text-align:center">traffic-management-rg-03</td>
<td style="text-align:center">West US 2</td>
<td style="text-align:center">vnet-03</td>
<td style="text-align:center">subnet-05</td>
<td style="text-align:center">nic-55</td>
<td style="text-align:center">10.3.5.55</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-azure-load-balancer">&#x5EFA;&#x7ACB; Azure Load Balancer</h2>
<p>Step 1. &#x9078;&#x64C7; Load balancers &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>Load balancers</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Load balancers</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.21.33.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<hr>
<p>Step 2. &#x9EDE;&#x9078; <code>+ Create</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.24.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<hr>
<p>Step 3. &#x8F38;&#x5165; Basic &#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code></li>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>traffic-management-lb</code></li>
<li><code>West US</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>West US</code></li>
<li><code>SKU</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Standard</code></li>
<li><code>Type</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Public</code></li>
<li><code>Tier</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Regional</code></li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x586B;&#x5B8C;&#x5F8C;&#x9EDE;&#x9078;&#x53F3;&#x4E0B;&#x89D2;&#x7684; <code>Next:Frontend IP configuration</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.28.08.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.30.25.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<hr>
<p>Step 4. &#x8F38;&#x5165; Frontend IP configuration &#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>+ Add a frontend IP configuration</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.34.18.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>tm-fe</code></li>
<li><code>IP version</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>IPv4</code></li>
<li><code>IP type</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>IP address</code></li>
<li><code>Public IP address</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9EDE;&#x9078; <code>Create new</code>
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>tm-pip1</code></li>
<li><code>SKU</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Standard</code></li>
<li><code>Tier</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Regional</code></li>
<li><code>Assignment</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Static</code></li>
<li><code>Routing Preference</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Microsoft network</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x586B;&#x5B8C;&#x5F8C;&#x9EDE;&#x9078; <code>OK</code></li>
</ul>
</li>
<li><code>Gateway Load Balancer</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>None</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x586B;&#x5B8C;&#x5F8C;&#x9EDE;&#x9078; <code>Add</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.38.51.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.43.39.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.44.53.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.46.20.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x53F3;&#x4E0B;&#x89D2;&#x7684; <code>Next:Backend pool</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.47.19.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<hr>
<p>Step 5. &#x8F38;&#x5165; Backend pools &#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>+ Add a backend pool</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.48.47.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>tm-lb-be</code></li>
<li><code>Virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vnet-01</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.50.50.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></li>
<li><code>Backend Pool Configuration</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>NIC</code></li>
<li>&#x9EDE;&#x9078; <code>IP configurations</code> &#x4E2D;&#x7684; <code>+ Add</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.52.30.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></li>
<li>&#x9EDE;&#x9078; <code>vm-11</code> &#x8207; <code>vm-22</code>&#xFF0C;&#x9EDE;&#x9078;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x6309;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Add</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.56.08.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></li>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Save</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.58.29.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x586B;&#x5BEB;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x6309;&#x53F3;&#x4E0B;&#x89D2;&#x7684; <code>Next:Inbound rules</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---8.59.53.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></li>
</ul>
</li>
</ul>
<hr>
<p>Step 6. &#x8F38;&#x5165; Inbound rules &#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>Add a load balancing rule</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.01.18.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<ul>
<li>
<p>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>tm-lb-lbrule</code></li>
<li><code>IP Version</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>IPv4</code></li>
<li><code>Frontend IP Address</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>tm-fe (To be created)</code></li>
<li><code>Backend pool</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>tm-lb-be</code></li>
<li><code>Protocol</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li><code>Port</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>80</code></li>
<li><code>Backend port</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>80</code></li>
<li><code>Health probe</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9EDE;&#x9078; <code>Create new</code>
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>tm-lb-hp</code></li>
<li><code>Protocol</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>TCP</code></li>
<li><code>Port</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>80</code></li>
<li><code>Interval (seconds)</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>5</code></li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x586B;&#x5B8C;&#x5F8C;&#x9EDE;&#x9078; <code>Save</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.09.37.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></li>
</ul>
</li>
<li><code>Session persistence</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>None</code></li>
<li><code>Idle timeout (minutes)</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>4</code></li>
<li><code>Enable TCP reset</code> &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x9EDE;&#x9078;</li>
<li><code>Floating IP</code> &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x9EDE;&#x9078;</li>
<li><code>Outbound source network address translation (SNAT)</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Recommended</code></li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x586B;&#x5B8C;&#x5F8C;&#x9EDE;&#x9078; <code>Save</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.03.17.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.07.55.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.12.44.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></li>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Review and create</code><br>
<img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.15.25.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></li>
</ul>
</li>
<li>
<p>&#x78BA;&#x8A8D;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;&#x5F8C;&#x9EDE;&#x9078; <code>Create</code></p>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.16.27.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x904E;&#x7A0B;&#x4E2D;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.18.33.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Go to resource</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.19.36.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%B8%AC%E8%A9%A6%E8%88%87%E9%A9%97%E8%AD%89">&#x6E2C;&#x8A66;&#x8207;&#x9A57;&#x8B49;</h2>
<p>Step 1. &#x53D6;&#x5F97; Public IP</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Frontend IP configuration</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.25.13.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<hr>
<p>Step 2. &#x7528;&#x96FB;&#x8166;&#x700F;&#x89BD;&#x5668; ( Chrome ) &#x958B;&#x555F; <code>Step 1</code> &#x6240;&#x53D6;&#x5F97;&#x7684; <code>Public IP</code></p>
<ul>
<li>&#x700F;&#x89BD;&#x5668;&#x8F38;&#x5165; Public IP &#x5F8C;&#x900F;&#x904E; <code>Azure Load Balancer</code> &#x9023;&#x7DDA;&#x5230; <code>vm-11</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.27.56.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<hr>
<p>Step 3. &#x7528;&#x96FB;&#x8166;&#x700F;&#x89BD;&#x5668; ( Edge ) &#x958B;&#x555F; <code>Step 1</code> &#x6240;&#x53D6;&#x5F97;&#x7684; <code>Public IP</code></p>
<ul>
<li>&#x700F;&#x89BD;&#x5668;&#x8F38;&#x5165; Public IP &#x5F8C;&#x900F;&#x904E; <code>Azure Load Balancer</code> &#x9023;&#x7DDA;&#x5230; <code>vm-22</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-04---9.29.10.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/09/buy-me-a-coffee-3.png" class="kg-image" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x5BE6;&#x4F5C; Azure Load Balancer" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】Azure Traffic Management Lab - 於 hub & spoke 網路拓撲中配置路由]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="azure-traffic-management-lab">Azure Traffic Management Lab</h2>
<ul>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-experimental-environment">&#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-hub-spoke-network-topology">&#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-routing-hub-spoke-network-topology">&#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-load-balancer/">&#x5BE6;&#x4F5C; Azure Load Balancer</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-application-gateway">&#x5BE6;&#x4F5C; Azure Application Gateway</a></li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9C%AC%E7%AF%87%E6%96%87%E7%AB%A0%E5%85%A7%E5%AE%B9">&#x672C;&#x7BC7;&#x6587;&#x7AE0;&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;</li></ul>]]></description><link>https://learningsky.io/azure-traffic-management-lab-configuring-routing-hub-spoke-network-topology/</link><guid isPermaLink="false">64f1428d2099ca142fa4ea45</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Mon, 04 Sep 2023 06:56:03 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1527736848781-72dc3b2ee00f?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDU4fHxQZXJ1fGVufDB8fHx8MTY5MzgxMTg0Mnww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="azure-traffic-management-lab">Azure Traffic Management Lab</h2>
<ul>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-experimental-environment">&#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-hub-spoke-network-topology">&#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-routing-hub-spoke-network-topology">&#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-load-balancer/">&#x5BE6;&#x4F5C; Azure Load Balancer</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-application-gateway">&#x5BE6;&#x4F5C; Azure Application Gateway</a></li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9C%AC%E7%AF%87%E6%96%87%E7%AB%A0%E5%85%A7%E5%AE%B9">&#x672C;&#x7BC7;&#x6587;&#x7AE0;&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x67B6;&#x69CB;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x555F;&#x7528; IP forwarding</li>
<li>&#x5EFA;&#x7ACB; VNet02 &#x5230; VNet03 &#x7684;&#x8DEF;&#x7531;</li>
<li>&#x5EFA;&#x7ACB; VNet03 &#x5230; VNet02 &#x7684;&#x8DEF;&#x7531;</li>
<li>&#x900F;&#x904E; Azure Network Watcher &#x9032;&#x884C;&#x9023;&#x7DDA;&#x6E2C;&#x8A66;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;
<ul>
<li><a href="https://portal.azure.com/">https://portal.azure.com/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x5B89;&#x88DD; <code>Azure CLI</code> &#x4E26;&#x900F;&#x904E; <code>az login</code> &#x6307;&#x4EE4;&#x767B;&#x5165;&#x6210;&#x529F;
<ul>
<li><a href="https://learn.microsoft.com/en-us/cli/azure/install-azure-cli">https://learn.microsoft.com/en-us/cli/azure/install-azure-cli</a></li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9E%B6%E6%A7%8B">&#x67B6;&#x69CB;</h2>
<img src="https://images.unsplash.com/photo-1527736848781-72dc3b2ee00f?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDU4fHxQZXJ1fGVufDB8fHx8MTY5MzgxMTg0Mnww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;"><p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---6.05.26.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E6%9C%8D%E5%8B%99%E6%89%80%E4%BD%BF%E7%94%A8%E7%9A%84%E5%90%8D%E7%A8%B1">&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</h2>
<ul>
<li>VNet</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">VNet Name</th>
<th style="text-align:center">Resource group</th>
<th style="text-align:center">Location</th>
<th style="text-align:center">VNet IP Addresses</th>
<th style="text-align:center">Subnet IP Addresses</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">10.1.0.0/16</td>
<td style="text-align:center">subnet-01 <br> 10.1.1.0/24<br><br> subnet-02  <br> 10.1.2.0/24</td>
</tr>
<tr>
<td style="text-align:center">vnet-02</td>
<td style="text-align:center">traffic-management-rg-02</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">10.2.0.0/16</td>
<td style="text-align:center">subnet-03  <br> 10.2.3.0/24</td>
</tr>
<tr>
<td style="text-align:center">vnet-03</td>
<td style="text-align:center">traffic-management-rg-03</td>
<td style="text-align:center">West US 2</td>
<td style="text-align:center">10.3.0.0/16</td>
<td style="text-align:center">subnet-05  <br> 10.3.5.0/24</td>
</tr>
</tbody>
</table>
<ul>
<li>VM &amp; NIC</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">VM Name</th>
<th style="text-align:center">Resource Group</th>
<th style="text-align:center">Location</th>
<th style="text-align:center">VNet Name</th>
<th style="text-align:center">Subnet Name</th>
<th style="text-align:center">NIC Name</th>
<th style="text-align:center">IP</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">vm-11</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">subnet-01</td>
<td style="text-align:center">nic-11</td>
<td style="text-align:center">10.1.1.11</td>
</tr>
<tr>
<td style="text-align:center">vm-22</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">subnet-02</td>
<td style="text-align:center">nic-22</td>
<td style="text-align:center">10.1.2.22</td>
</tr>
<tr>
<td style="text-align:center">vm-33</td>
<td style="text-align:center">traffic-management-rg-02</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-02</td>
<td style="text-align:center">subnet-03</td>
<td style="text-align:center">nic-33</td>
<td style="text-align:center">10.2.3.33</td>
</tr>
<tr>
<td style="text-align:center">vm-55</td>
<td style="text-align:center">traffic-management-rg-03</td>
<td style="text-align:center">West US 2</td>
<td style="text-align:center">vnet-03</td>
<td style="text-align:center">subnet-05</td>
<td style="text-align:center">nic-55</td>
<td style="text-align:center">10.3.5.55</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%95%9F%E7%94%A8-ip-forwarding">&#x555F;&#x7528; IP forwarding</h2>
<p>Step 1. &#x9078;&#x64C7; VM &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>vm</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Virtual machines</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.29.06.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x4E4B;&#x524D;&#x900F;&#x904E;&#x6307;&#x4EE4;&#x6240;&#x5EFA;&#x7ACB;&#x7684; <code>VM-11</code>&#x3001;<code>VM-22</code>&#x3001;<code>VM-33</code>&#x3001;<code>VM-55</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.26.45.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<hr>
<p>Step 2. &#x65BC; <code>VM-11</code> &#x9032;&#x884C;&#x8A2D;&#x5B9A;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>VM-11</code> &#x7684; VM &gt; &#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Networking</code> &gt; &#x9EDE;&#x9078; <code>Network Interface: nic-11</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.58.33.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code> IP configurations</code> &gt; &#x52FE;&#x9078; <code>Enable IP forwarding</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Apply</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.01.17.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x56DE;&#x5230; <code>vm-11</code> &#x64CD;&#x4F5C;&#x9801;&#x9762; &gt; &#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Run command</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>RunPowerShellScript</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.05.15.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x65BC; <code>PowerShell Script</code> &#x8F38;&#x5165;&#x6846;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;&#xFF0C;&#x518D;&#x9EDE;&#x9078; <code>Run</code></li>
</ul>
<script src="https://gist.github.com/ArcherHuang/cc64d6e87fe954c1f4cc4f5841772a02.js"></script>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.09.22.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x518D;&#x8F38;&#x5165;&#x4EE5;&#x4E0B;&#x6307;&#x4EE4;</li>
</ul>
<script src="https://gist.github.com/ArcherHuang/3af73d545c5940fe49e979df247badfc.js"></script>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---11.04.34.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-vnet02-%E5%88%B0-vnet03-%E7%9A%84%E8%B7%AF%E7%94%B1">&#x5EFA;&#x7ACB; VNet02 &#x5230; VNet03 &#x7684;&#x8DEF;&#x7531;</h2>
<p>Step 1. &#x5EFA;&#x7ACB;&#x8DEF;&#x7531;&#x8868;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>Route tables</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Route tables</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.12.46.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>+ Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.14.37-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-02</code></li>
<li><code>Location</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>West US</code></li>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>rt-vnet-02-03</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Review + create</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.15.40.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.23.25.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.24.30.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Go to resource</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.25.26.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Routes</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Add</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.28.06.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Route name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>route-vnet02-to-vnet03</code></li>
<li><code>IP Addresses</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>IP Address</code></li>
<li><code>Destination IP addresses/CIDR ranges</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.3.5.0/24</code></li>
<li><code>Next hop type</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual appliance</code></li>
<li><code>Next hop address</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>10.1.1.11</code></li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Add</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.29.24.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.32.27.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.33.16.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Subnets</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>+ Associate</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.34.41.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vnet-02 ( traffic-management-rg-02 )</code></li>
<li><code>Subnet</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>subnet-03</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x9078;&#x64C7;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>OK</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.36.17.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.37.55.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-vnet03-%E5%88%B0-vnet02-%E7%9A%84%E8%B7%AF%E7%94%B1">&#x5EFA;&#x7ACB; VNet03 &#x5230; VNet02 &#x7684;&#x8DEF;&#x7531;</h2>
<p>Step 1. &#x5EFA;&#x7ACB;&#x8DEF;&#x7531;&#x8868;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>Route tables</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Route tables</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.12.46.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>+ Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.14.37-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-03</code></li>
<li><code>Location</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>West US 2</code></li>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>rt-vnet-03-02</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Review + create</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.15.40.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.44.20.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.45.07.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Go to resource</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.46.28.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Routes</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Add</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.47.20.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Route name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>route-vnet03-to-vnet02</code></li>
<li><code>IP Addresses</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>IP Address</code></li>
<li><code>Destination IP addresses/CIDR ranges</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.2.3.0/24</code></li>
<li><code>Next hop type</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual appliance</code></li>
<li><code>Next hop address</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>10.1.1.11</code></li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Add</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.51.06.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.52.07.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.52.50.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Subnets</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>+ Associate</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.53.29.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vnet-03 (	traffic-management-rg-03 )</code></li>
<li><code>Subnet</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>subnet-05</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x9078;&#x64C7;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>OK</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.54.52.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---10.55.39.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%80%8F%E9%81%8E-azure-network-watcher-%E9%80%B2%E8%A1%8C%E9%80%A3%E7%B7%9A%E6%B8%AC%E8%A9%A6">&#x900F;&#x904E; Azure Network Watcher &#x9032;&#x884C;&#x9023;&#x7DDA;&#x6E2C;&#x8A66;</h2>
<p>Step 1. &#x6E2C;&#x8A66; <code>vm-33 ( vnet-02 )</code> &#x9023;&#x5230; <code>vm-55 ( vnet-03 ) ( 10.3.5.55 )</code> &#x7684; 80 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-02</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-33</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.3.5.55</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>80</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.00.16.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---11.06.51.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<hr>
<p>Step 2. &#x6E2C;&#x8A66; <code>vm-33 ( vnet-02 )</code> &#x9023;&#x5230; <code>vm-55 ( vnet-03 ) ( 10.3.5.55 )</code> &#x7684; 3389 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-02</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-33</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.3.5.55</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>3389</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.04.47.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---11.08.33.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<hr>
<p>Step 3. &#x6E2C;&#x8A66; <code>vm-55 ( vnet-03 )</code> &#x9023;&#x5230; <code>vm-33 ( vnet-02 ) ( 10.2.3.33 )</code> &#x7684; 80 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-03</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-55</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.2.3.33</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>80</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---11.11.19.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---11.12.09.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<hr>
<p>Step 4. &#x6E2C;&#x8A66; <code>vm-55 ( vnet-03 )</code> &#x9023;&#x5230; <code>vm-33 ( vnet-02 ) ( 10.2.3.33 )</code> &#x7684; 3389 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-03</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-55</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.2.3.33</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>3389</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---11.12.30.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---11.13.42.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/09/buy-me-a-coffee-2.png" class="kg-image" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】Azure Traffic Management Lab - 配置 hub & spoke 網路拓撲]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="azure-traffic-management-lab">Azure Traffic Management Lab</h2>
<ul>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-experimental-environment">&#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-hub-spoke-network-topology">&#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-routing-hub-spoke-network-topology">&#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-load-balancer">&#x5BE6;&#x4F5C; Azure Load Balancer</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-application-gateway">&#x5BE6;&#x4F5C; Azure Application Gateway</a></li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9C%AC%E7%AF%87%E6%96%87%E7%AB%A0%E5%85%A7%E5%AE%B9">&#x672C;&#x7BC7;&#x6587;&#x7AE0;&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;</li></ul>]]></description><link>https://learningsky.io/azure-traffic-management-lab-configuring-hub-spoke-network-topology/</link><guid isPermaLink="false">64f074aa2099ca142fa4e80d</guid><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Mon, 04 Sep 2023 06:46:06 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1528728329032-2972f65dfb3f?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fEdlcm1hbnl8ZW58MHx8fHwxNjkzODEwNDgzfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="azure-traffic-management-lab">Azure Traffic Management Lab</h2>
<ul>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-experimental-environment">&#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-hub-spoke-network-topology">&#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-routing-hub-spoke-network-topology">&#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-load-balancer">&#x5BE6;&#x4F5C; Azure Load Balancer</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-application-gateway">&#x5BE6;&#x4F5C; Azure Application Gateway</a></li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9C%AC%E7%AF%87%E6%96%87%E7%AB%A0%E5%85%A7%E5%AE%B9">&#x672C;&#x7BC7;&#x6587;&#x7AE0;&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x67B6;&#x69CB;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB; VNet &#x9593;&#x7684; Peering</li>
<li>&#x900F;&#x904E; Azure Network Watcher &#x9032;&#x884C;&#x9023;&#x7DDA;&#x6E2C;&#x8A66;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;
<ul>
<li><a href="https://portal.azure.com/">https://portal.azure.com/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x5B89;&#x88DD; <code>Azure CLI</code> &#x4E26;&#x900F;&#x904E; <code>az login</code> &#x6307;&#x4EE4;&#x767B;&#x5165;&#x6210;&#x529F;
<ul>
<li><a href="https://learn.microsoft.com/en-us/cli/azure/install-azure-cli">https://learn.microsoft.com/en-us/cli/azure/install-azure-cli</a></li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9E%B6%E6%A7%8B">&#x67B6;&#x69CB;</h2>
<img src="https://images.unsplash.com/photo-1528728329032-2972f65dfb3f?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fEdlcm1hbnl8ZW58MHx8fHwxNjkzODEwNDgzfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;"><p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---6.05.26.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E6%9C%8D%E5%8B%99%E6%89%80%E4%BD%BF%E7%94%A8%E7%9A%84%E5%90%8D%E7%A8%B1">&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</h2>
<ul>
<li>VNet</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">VNet Name</th>
<th style="text-align:center">Resource group</th>
<th style="text-align:center">Location</th>
<th style="text-align:center">VNet IP Addresses</th>
<th style="text-align:center">Subnet IP Addresses</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">10.1.0.0/16</td>
<td style="text-align:center">subnet-01 <br> 10.1.1.0/24<br><br> subnet-02  <br> 10.1.2.0/24</td>
</tr>
<tr>
<td style="text-align:center">vnet-02</td>
<td style="text-align:center">traffic-management-rg-02</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">10.2.0.0/16</td>
<td style="text-align:center">subnet-03  <br> 10.2.3.0/24</td>
</tr>
<tr>
<td style="text-align:center">vnet-03</td>
<td style="text-align:center">traffic-management-rg-03</td>
<td style="text-align:center">West US 2</td>
<td style="text-align:center">10.3.0.0/16</td>
<td style="text-align:center">subnet-05  <br> 10.3.5.0/24</td>
</tr>
</tbody>
</table>
<ul>
<li>VM &amp; NIC</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">VM Name</th>
<th style="text-align:center">Resource Group</th>
<th style="text-align:center">Location</th>
<th style="text-align:center">VNet Name</th>
<th style="text-align:center">Subnet Name</th>
<th style="text-align:center">NIC Name</th>
<th style="text-align:center">IP</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">vm-11</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">subnet-01</td>
<td style="text-align:center">nic-11</td>
<td style="text-align:center">10.1.1.11</td>
</tr>
<tr>
<td style="text-align:center">vm-22</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">subnet-02</td>
<td style="text-align:center">nic-22</td>
<td style="text-align:center">10.1.2.22</td>
</tr>
<tr>
<td style="text-align:center">vm-33</td>
<td style="text-align:center">traffic-management-rg-02</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-02</td>
<td style="text-align:center">subnet-03</td>
<td style="text-align:center">nic-33</td>
<td style="text-align:center">10.2.3.33</td>
</tr>
<tr>
<td style="text-align:center">vm-55</td>
<td style="text-align:center">traffic-management-rg-03</td>
<td style="text-align:center">West US 2</td>
<td style="text-align:center">vnet-03</td>
<td style="text-align:center">subnet-05</td>
<td style="text-align:center">nic-55</td>
<td style="text-align:center">10.3.5.55</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-vnet-%E9%96%93%E7%9A%84-peering">&#x5EFA;&#x7ACB; VNet &#x9593;&#x7684; Peering</h2>
<p>Step 1. &#x9078;&#x64C7; Virtual network &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>VNet</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Virtual network</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.11.09.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x4E4B;&#x524D;&#x900F;&#x904E;&#x6307;&#x4EE4;&#x6240;&#x5EFA;&#x7ACB;&#x7684; VNet</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.13.36.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<hr>
<p>Step 2. &#x5EFA;&#x7ACB; VNet 01 &#x8207; VNet 02 &#x7684; Peering</p>
<ul>
<li>&#x9EDE;&#x9078; <code>vnet-01</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Peerings</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Add</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.16.16.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Peering link name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>vnet01_to_vnet02</code>&#x3002;</li>
<li><code>Allow access to remote virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Allow traffic to remote virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Allow traffic forwarded from the remote virtual network (allow gateway transit)</code> &#x6B04;&#x4F4D;&#x8ACB;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Use remote virtual network gateway or route server</code> &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Peering link name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>vnet02_to_vnet01</code>&#x3002;</li>
<li><code>Virtual network deployment model</code> &#x8ACB;&#x9078;&#x53D6; <code>Resource manager</code>&#x3002;</li>
<li><code>Subscription</code> &#x6B04;&#x4F4D;&#x8ACB;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li><code>Virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vnet-02</code>&#x3002;</li>
<li><code>Allow access to current virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Allow traffic to current virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Allow traffic forwarded from current virtual network (allow gateway transit)</code> &#x6B04;&#x4F4D;&#x8ACB;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Use current virtual network gateway or route server</code> &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x52FE;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Add</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.18.10-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.23.24.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.25.13.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<hr>
<p>Step 3. &#x5EFA;&#x7ACB; VNet 01 &#x8207; VNet 03 &#x7684; Peering</p>
<ul>
<li>&#x9EDE;&#x9078; <code>vnet-01</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Peerings</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Add</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.25.1311.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Peering link name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>vnet01_to_vnet03</code>&#x3002;</li>
<li><code>Allow access to remote virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Allow traffic to remote virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Allow traffic forwarded from the remote virtual network (allow gateway transit)</code> &#x6B04;&#x4F4D;&#x8ACB;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Use remote virtual network gateway or route server</code> &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Peering link name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>vnet03_to_vnet01</code>&#x3002;</li>
<li><code>Virtual network deployment model</code> &#x8ACB;&#x9078;&#x53D6; <code>Resource manager</code>&#x3002;</li>
<li><code>Subscription</code> &#x6B04;&#x4F4D;&#x8ACB;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li><code>Virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vnet-03</code>&#x3002;</li>
<li><code>Allow access to current virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Allow traffic to current virtual network</code> &#x6B04;&#x4F4D;&#x8ACB;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Allow traffic forwarded from current virtual network (allow gateway transit)</code> &#x6B04;&#x4F4D;&#x8ACB;&#x52FE;&#x9078;&#x3002;</li>
<li><code>Use current virtual network gateway or route server</code> &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x52FE;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Add</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.18.10-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.29.34.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.30.42.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%80%8F%E9%81%8E-azure-network-watcher-%E9%80%B2%E8%A1%8C%E9%80%A3%E7%B7%9A%E6%B8%AC%E8%A9%A6">&#x900F;&#x904E; Azure Network Watcher &#x9032;&#x884C;&#x9023;&#x7DDA;&#x6E2C;&#x8A66;</h2>
<p>Step 1. &#x9078;&#x64C7; Network Watcher &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>Network Watcher</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Network Watcher</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.50.20.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<hr>
<p>Step 2. &#x6E2C;&#x8A66; <code>vm-11 ( vnet-01 )</code> &#x9023;&#x5230; <code>vm-33 ( vnet-02 ) ( 10.2.3.33 )</code> &#x7684; 80 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-11</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.2.3.33</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>80</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.34.51.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.37.11.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<hr>
<p>Step 3. &#x6E2C;&#x8A66; <code>vm-11 ( vnet-01 )</code> &#x9023;&#x5230; <code>vm-33 ( vnet-02 ) ( 10.2.3.33 )</code> &#x7684; 3389 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-11</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.2.3.33</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>3389</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.49.35.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.38.26.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<hr>
<p>Step 4. &#x6E2C;&#x8A66; <code>vm-22 ( vnet-01 )</code> &#x9023;&#x5230; <code>vm-55 ( vnet-03 ) ( 10.3.5.55 )</code> &#x7684; 80 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-22</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.3.5.55</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>80</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.52.54.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.40.42.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<hr>
<p>Step 5. &#x6E2C;&#x8A66; <code>vm-22 ( vnet-01 )</code> &#x9023;&#x5230; <code>vm-55 ( vnet-03 ) ( 10.3.5.55 )</code> &#x7684; 3389 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-22</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.3.5.55</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>3389</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.56.57.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.41.59.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<hr>
<p>Step 6. &#x6E2C;&#x8A66; <code>vm-33 ( vnet-02 )</code> &#x9023;&#x5230; <code>vm-55 ( vnet-03 ) ( 10.3.5.55 )</code> &#x7684; 80 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-02</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-33</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.3.5.55</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>80</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.00.16.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.04.13.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<hr>
<p>Step 7. &#x6E2C;&#x8A66; <code>vm-33 ( vnet-02 )</code> &#x9023;&#x5230; <code>vm-55 ( vnet-03 ) ( 10.3.5.55 )</code> &#x7684; 3389 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-02</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-33</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.3.5.55</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>3389</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.04.47.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.07.18.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/09/buy-me-a-coffee-1.png" class="kg-image" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】Azure Traffic Management Lab - 配置實驗環境]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="azure-traffic-management-lab">Azure Traffic Management Lab</h2>
<ul>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-experimental-environment">&#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-hub-spoke-network-topology">&#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-routing-hub-spoke-network-topology">&#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-load-balancer">&#x5BE6;&#x4F5C; Azure Load Balancer</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-application-gateway">&#x5BE6;&#x4F5C; Azure Application Gateway</a></li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9C%AC%E7%AF%87%E6%96%87%E7%AB%A0%E5%85%A7%E5%AE%B9">&#x672C;&#x7BC7;&#x6587;&#x7AE0;&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;</li></ul>]]></description><link>https://learningsky.io/azure-traffic-management-lab-configuring-experimental-environment/</link><guid isPermaLink="false">64f066b32099ca142fa4e647</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Mon, 04 Sep 2023 06:34:36 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1615839901889-c828c4a96c15?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDI3fHxCYWhhbWFzfGVufDB8fHx8MTY5MzgwOTY2OXww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="azure-traffic-management-lab">Azure Traffic Management Lab</h2>
<ul>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-experimental-environment">&#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-hub-spoke-network-topology">&#x914D;&#x7F6E; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-configuring-routing-hub-spoke-network-topology">&#x65BC; hub &amp; spoke &#x7DB2;&#x8DEF;&#x62D3;&#x64B2;&#x4E2D;&#x914D;&#x7F6E;&#x8DEF;&#x7531;</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-load-balancer">&#x5BE6;&#x4F5C; Azure Load Balancer</a></li>
<li><a href="https://learningsky.io/azure-traffic-management-lab-implement-azure-application-gateway">&#x5BE6;&#x4F5C; Azure Application Gateway</a></li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9C%AC%E7%AF%87%E6%96%87%E7%AB%A0%E5%85%A7%E5%AE%B9">&#x672C;&#x7BC7;&#x6587;&#x7AE0;&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x67B6;&#x69CB;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB; Resource Group</li>
<li>&#x5EFA;&#x7ACB; Virtual Network ( VNet ) &#x8207; Subnet</li>
<li>&#x5EFA;&#x7ACB; Network Security Group ( NSG )</li>
<li>&#x5EFA;&#x7ACB; Network Interface Card ( NIC )</li>
<li>&#x5EFA;&#x7ACB; Virtual Machine ( VM )</li>
<li>&#x5EFA;&#x7ACB; Web Server &#x8207;&#x4FEE;&#x6539;&#x9810;&#x8A2D;&#x7DB2;&#x8DEF;&#x5167;&#x5BB9;</li>
<li>&#x900F;&#x904E; Azure Network Watcher &#x9032;&#x884C;&#x9023;&#x7DDA;&#x6E2C;&#x8A66;</li>
<li>&#x5BE6;&#x9A57;&#x89C0;&#x5BDF;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;
<ul>
<li><a href="https://portal.azure.com/">https://portal.azure.com/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x5B89;&#x88DD; <code>Azure CLI</code> &#x4E26;&#x900F;&#x904E; <code>az login</code> &#x6307;&#x4EE4;&#x767B;&#x5165;&#x6210;&#x529F;
<ul>
<li><a href="https://learn.microsoft.com/en-us/cli/azure/install-azure-cli">https://learn.microsoft.com/en-us/cli/azure/install-azure-cli</a></li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%9E%B6%E6%A7%8B">&#x67B6;&#x69CB;</h2>
<img src="https://images.unsplash.com/photo-1615839901889-c828c4a96c15?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDI3fHxCYWhhbWFzfGVufDB8fHx8MTY5MzgwOTY2OXww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;"><p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-05---6.05.26.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E6%9C%8D%E5%8B%99%E6%89%80%E4%BD%BF%E7%94%A8%E7%9A%84%E5%90%8D%E7%A8%B1">&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</h2>
<ul>
<li>VNet</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">VNet Name</th>
<th style="text-align:center">Resource group</th>
<th style="text-align:center">Location</th>
<th style="text-align:center">VNet IP Addresses</th>
<th style="text-align:center">Subnet IP Addresses</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">10.1.0.0/16</td>
<td style="text-align:center">subnet-01 <br> 10.1.1.0/24<br><br> subnet-02  <br> 10.1.2.0/24</td>
</tr>
<tr>
<td style="text-align:center">vnet-02</td>
<td style="text-align:center">traffic-management-rg-02</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">10.2.0.0/16</td>
<td style="text-align:center">subnet-03  <br> 10.2.3.0/24</td>
</tr>
<tr>
<td style="text-align:center">vnet-03</td>
<td style="text-align:center">traffic-management-rg-03</td>
<td style="text-align:center">West US 2</td>
<td style="text-align:center">10.3.0.0/16</td>
<td style="text-align:center">subnet-05  <br> 10.3.5.0/24</td>
</tr>
</tbody>
</table>
<ul>
<li>VM &amp; NIC</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">VM Name</th>
<th style="text-align:center">Resource Group</th>
<th style="text-align:center">Location</th>
<th style="text-align:center">VNet Name</th>
<th style="text-align:center">Subnet Name</th>
<th style="text-align:center">NIC Name</th>
<th style="text-align:center">IP</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">vm-11</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">subnet-01</td>
<td style="text-align:center">nic-11</td>
<td style="text-align:center">10.1.1.11</td>
</tr>
<tr>
<td style="text-align:center">vm-22</td>
<td style="text-align:center">traffic-management-rg-01</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-01</td>
<td style="text-align:center">subnet-02</td>
<td style="text-align:center">nic-22</td>
<td style="text-align:center">10.1.2.22</td>
</tr>
<tr>
<td style="text-align:center">vm-33</td>
<td style="text-align:center">traffic-management-rg-02</td>
<td style="text-align:center">West US</td>
<td style="text-align:center">vnet-02</td>
<td style="text-align:center">subnet-03</td>
<td style="text-align:center">nic-33</td>
<td style="text-align:center">10.2.3.33</td>
</tr>
<tr>
<td style="text-align:center">vm-55</td>
<td style="text-align:center">traffic-management-rg-03</td>
<td style="text-align:center">West US 2</td>
<td style="text-align:center">vnet-03</td>
<td style="text-align:center">subnet-05</td>
<td style="text-align:center">nic-55</td>
<td style="text-align:center">10.3.5.55</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-resource-group">&#x5EFA;&#x7ACB; Resource Group</h2>
<p>Step 1. &#x65BC; <code>West US</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>traffic-management-rg-01</code> &#x8CC7;&#x6E90;&#x7FA4;&#x7D44;</p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az group create \
    --name traffic-management-rg-01 \
    --location westus
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.43.05.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 2. &#x65BC; <code>West US</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>traffic-management-rg-02</code> &#x8CC7;&#x6E90;&#x7FA4;&#x7D44;</p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az group create \
    --name traffic-management-rg-02 \
    --location westus
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.43.57.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 3. &#x65BC; <code>West US 2</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>traffic-management-rg-03</code> &#x8CC7;&#x6E90;&#x7FA4;&#x7D44;</p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az group create \
    --name traffic-management-rg-03 \
    --location westus2
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.44.43.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-virtual-network-vnet-%E8%88%87-subnet">&#x5EFA;&#x7ACB; Virtual Network ( VNet ) &#x8207; Subnet</h2>
<p>Step 1. &#x5EFA;&#x7ACB; <code>vnet-01</code> &#x7684; VNet &#x4E26;&#x65BC; <code>vnet-01</code> &#x4E2D;&#x5EFA;&#x7ACB; <code>subnet-01</code> &#x7684; Subnet&#xFF0C;&#x5176;&#x4E2D; <code>vnet-01</code> &#x7684; IP address &#x70BA; <code>10.1.0.0/16</code>&#xFF0C;&#x800C; <code>subnet-01</code> &#x7684; IP address &#x70BA; <code>10.1.1.0/24</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network vnet create \
    --name vnet-01 \
    --resource-group traffic-management-rg-01 \
    --address-prefix 10.1.0.0/16 \
    --subnet-name subnet-01 \
    --subnet-prefixes 10.1.1.0/24
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.47.13.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 2. &#x65BC; <code>vnet-01</code> &#x4E2D;&#x5EFA;&#x7ACB; <code>subnet-02</code> &#x7684; Subnet&#xFF0C;&#x5176;&#x4E2D; <code>subnet-02</code> &#x7684; IP address &#x70BA; <code>10.1.2.0/24</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network vnet subnet create \
    --address-prefix 10.1.2.0/24  \
    --name subnet-02  \
    --resource-group traffic-management-rg-01  \
    --vnet-name vnet-01
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.48.17-1.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 3. &#x5EFA;&#x7ACB; <code>vnet-02</code> &#x7684; VNet &#x4E26;&#x65BC; <code>vnet-02</code> &#x4E2D;&#x5EFA;&#x7ACB; <code>subnet-03</code> &#x7684; Subnet&#xFF0C;&#x5176;&#x4E2D; <code>vnet-02</code> &#x7684; IP address &#x70BA; <code>10.2.0.0/16</code>&#xFF0C;&#x800C; <code>subnet-03</code> &#x7684; IP address &#x70BA; <code>10.2.3.0/24</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network vnet create \
    --name vnet-02 \
    --resource-group traffic-management-rg-02 \
    --address-prefix 10.2.0.0/16 \
    --subnet-name subnet-03 \
    --subnet-prefixes 10.2.3.0/24
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.49.07.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 4. &#x5EFA;&#x7ACB; <code>vnet-03</code> &#x7684; VNet &#x4E26;&#x65BC; <code>vnet-03</code> &#x4E2D;&#x5EFA;&#x7ACB; <code>subnet-05</code> &#x7684; Subnet&#xFF0C;&#x5176;&#x4E2D; <code>vnet-03</code> &#x7684; IP address &#x70BA; <code>10.3.0.0/16</code>&#xFF0C;&#x800C; <code>subnet-05</code> &#x7684; IP address &#x70BA; <code>10.3.5.0/24</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network vnet create \
    --name vnet-03 \
    --resource-group traffic-management-rg-03 \
    --address-prefix 10.3.0.0/16 \
    --subnet-name subnet-05 \
    --subnet-prefixes 10.3.5.0/24
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.49.46.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-network-security-group-nsg">&#x5EFA;&#x7ACB; Network Security Group ( NSG )</h2>
<p>Step 1. &#x65BC; <code>West US</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>traffic-management-nsg-01</code> &#x7684;&#x7DB2;&#x8DEF;&#x5B89;&#x5168;&#x7FA4;&#x7D44;&#xFF0C;&#x5176;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-rg-01</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network nsg create \
    --name traffic-management-nsg-01 \
    --resource-group traffic-management-rg-01 \
    --location westus
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.52.12.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 2. &#x65BC; <code>traffic-management-nsg-01</code> &#x7684;&#x7DB2;&#x8DEF;&#x5B89;&#x5168;&#x7FA4;&#x7D44;&#x4E2D;&#x958B;&#x555F; inbound &#x7684; <code>80</code> Port&#xFF0C;&#x5176;&#x512A;&#x5148;&#x6B0A;&#x70BA; <code>320</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network nsg rule create \
    --resource-group traffic-management-rg-01 \
    --nsg-name traffic-management-nsg-01 \
    --name AllowHTTP \
    --protocol Tcp \
    --direction inbound \
    --source-address-prefix &quot;*&quot; \
    --destination-address-prefix &quot;*&quot; \
    --destination-port-range 80 \
    --access allow \
    --priority 320
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.52.59.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 3. &#x65BC; <code>traffic-management-nsg-01</code> &#x7684;&#x7DB2;&#x8DEF;&#x5B89;&#x5168;&#x7FA4;&#x7D44;&#x4E2D;&#x958B;&#x555F; inbound &#x7684; <code>3389</code> Port&#xFF0C;&#x5176;&#x512A;&#x5148;&#x6B0A;&#x70BA; <code>300</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network nsg rule create \
    --resource-group traffic-management-rg-01 \
    --nsg-name traffic-management-nsg-01 \
    --name AllowRDP \
    --protocol Tcp \
    --direction inbound \
    --source-address-prefix &quot;*&quot; \
    --destination-address-prefix &quot;*&quot; \
    --destination-port-range 3389 \
    --access allow \
    --priority 300
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.53.36.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 4. &#x65BC; <code>West US</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>traffic-management-nsg-02</code> &#x7684;&#x7DB2;&#x8DEF;&#x5B89;&#x5168;&#x7FA4;&#x7D44;&#xFF0C;&#x5176;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-rg-02</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network nsg create \
    --name traffic-management-nsg-02 \
    --resource-group traffic-management-rg-02 \
    --location westus
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.54.27.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 5. &#x65BC; <code>traffic-management-nsg-02</code> &#x7684;&#x7DB2;&#x8DEF;&#x5B89;&#x5168;&#x7FA4;&#x7D44;&#x4E2D;&#x958B;&#x555F; inbound &#x7684; <code>80</code> Port&#xFF0C;&#x5176;&#x512A;&#x5148;&#x6B0A;&#x70BA; <code>320</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network nsg rule create \
    --resource-group traffic-management-rg-02 \
    --nsg-name traffic-management-nsg-02 \
    --name AllowHTTP \
    --protocol Tcp \
    --direction inbound \
    --source-address-prefix &quot;*&quot; \
    --destination-address-prefix &quot;*&quot; \
    --destination-port-range 80 \
    --access allow \
    --priority 320
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.55.22.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 6. &#x65BC; <code>traffic-management-nsg-02</code> &#x7684;&#x7DB2;&#x8DEF;&#x5B89;&#x5168;&#x7FA4;&#x7D44;&#x4E2D;&#x958B;&#x555F; inbound &#x7684; <code>3389</code> Port&#xFF0C;&#x5176;&#x512A;&#x5148;&#x6B0A;&#x70BA; <code>300</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network nsg rule create \
    --resource-group traffic-management-rg-02 \
    --nsg-name traffic-management-nsg-02 \
    --name AllowRDP \
    --protocol Tcp \
    --direction inbound \
    --source-address-prefix &quot;*&quot; \
    --destination-address-prefix &quot;*&quot; \
    --destination-port-range 3389 \
    --access allow \
    --priority 300
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.55.56.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 7. &#x65BC; <code>West US 2</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>traffic-management-nsg-03</code> &#x7684;&#x7DB2;&#x8DEF;&#x5B89;&#x5168;&#x7FA4;&#x7D44;&#xFF0C;&#x5176;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-rg-03</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network nsg create \
    --name traffic-management-nsg-03 \
    --resource-group traffic-management-rg-03 \
    --location westus2
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.56.46.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 8. &#x65BC; <code>traffic-management-nsg-03</code> &#x7684;&#x7DB2;&#x8DEF;&#x5B89;&#x5168;&#x7FA4;&#x7D44;&#x4E2D;&#x958B;&#x555F; inbound &#x7684; <code>80</code> Port&#xFF0C;&#x5176;&#x512A;&#x5148;&#x6B0A;&#x70BA; <code>320</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network nsg rule create \
    --resource-group traffic-management-rg-03 \
    --nsg-name traffic-management-nsg-03 \
    --name AllowHTTP \
    --protocol Tcp \
    --direction inbound \
    --source-address-prefix &quot;*&quot; \
    --destination-address-prefix &quot;*&quot; \
    --destination-port-range 80 \
    --access allow \
    --priority 320
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.57.23.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 9. &#x65BC; <code>traffic-management-nsg-03</code> &#x7684;&#x7DB2;&#x8DEF;&#x5B89;&#x5168;&#x7FA4;&#x7D44;&#x4E2D;&#x958B;&#x555F; inbound &#x7684; <code>3389</code> Port&#xFF0C;&#x5176;&#x512A;&#x5148;&#x6B0A;&#x70BA; <code>300</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network nsg rule create \
    --resource-group traffic-management-rg-03 \
    --nsg-name traffic-management-nsg-03 \
    --name AllowRDP \
    --protocol Tcp \
    --direction inbound \
    --source-address-prefix &quot;*&quot; \
    --destination-address-prefix &quot;*&quot; \
    --destination-port-range 3389 \
    --access allow \
    --priority 300
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---6.58.04.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-network-interface-card-nic">&#x5EFA;&#x7ACB; Network Interface Card ( NIC )</h2>
<p>Step 1. &#x65BC; <code>West US</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>nic-11</code> &#x7684;&#x7DB2;&#x8DEF;&#x4ECB;&#x9762;&#x5361;&#xFF0C;&#x5176;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-rg-01</code>&#x3001;VNet &#x70BA; <code>vnet-01</code>&#x3001;Subnet &#x70BA; <code>subnet-01 </code>&#x3001;&#x7DB2;&#x8DEF;&#x5B89;&#x5168;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-nsg-01</code> &#x4E26;&#x8A2D;&#x5B9A;&#x79C1;&#x6709; IP &#x70BA; <code>10.1.1.11</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network nic create \
    --resource-group traffic-management-rg-01 \
    --name nic-11 \
    --location westus \
    --vnet-name vnet-01 \
    --subnet subnet-01 \
    --private-ip-address 10.1.1.11 \
    --network-security-group traffic-management-nsg-01
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.00.06.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 2. &#x65BC; <code>West US</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>nic-22</code> &#x7684;&#x7DB2;&#x8DEF;&#x4ECB;&#x9762;&#x5361;&#xFF0C;&#x5176;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-rg-01</code>&#x3001;VNet &#x70BA; <code>vnet-01</code>&#x3001;Subnet &#x70BA; <code>subnet-02 </code>&#x3001;&#x7DB2;&#x8DEF;&#x5B89;&#x5168;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-nsg-01</code> &#x4E26;&#x8A2D;&#x5B9A;&#x79C1;&#x6709; IP &#x70BA; <code>10.1.2.22</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network nic create \
    --resource-group traffic-management-rg-01 \
    --name nic-22 \
    --location westus \
    --vnet-name vnet-01 \
    --subnet subnet-02 \
    --private-ip-address 10.1.2.22 \
    --network-security-group traffic-management-nsg-01
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.01.21.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 3. &#x65BC; <code>West US</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>nic-33</code> &#x7684;&#x7DB2;&#x8DEF;&#x4ECB;&#x9762;&#x5361;&#xFF0C;&#x5176;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-rg-02</code>&#x3001;VNet &#x70BA; <code>vnet-02</code>&#x3001;Subnet &#x70BA; <code>subnet-03 </code>&#x3001;&#x7DB2;&#x8DEF;&#x5B89;&#x5168;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-nsg-02</code> &#x4E26;&#x8A2D;&#x5B9A;&#x79C1;&#x6709; IP &#x70BA; <code>10.2.3.33</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network nic create \
    --resource-group traffic-management-rg-02 \
    --name nic-33 \
    --location westus \
    --vnet-name vnet-02 \
    --subnet subnet-03 \
    --private-ip-address 10.2.3.33 \
    --network-security-group traffic-management-nsg-02
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.02.35.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 4. &#x65BC; <code>West US 2</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>nic-55</code> &#x7684;&#x7DB2;&#x8DEF;&#x4ECB;&#x9762;&#x5361;&#xFF0C;&#x5176;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-rg-03</code>&#x3001;VNet &#x70BA; <code>vnet-03</code>&#x3001;Subnet &#x70BA; <code>subnet-05 </code>&#x3001;&#x7DB2;&#x8DEF;&#x5B89;&#x5168;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-nsg-03</code> &#x4E26;&#x8A2D;&#x5B9A;&#x79C1;&#x6709; IP &#x70BA; <code>10.3.5.55</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>az network nic create \
    --resource-group traffic-management-rg-03 \
    --name nic-55 \
    --location westus2 \
    --vnet-name vnet-03 \
    --subnet subnet-05 \
    --private-ip-address 10.3.5.55 \
    --network-security-group traffic-management-nsg-03
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.03.52.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-virtual-machine-vm">&#x5EFA;&#x7ACB; Virtual Machine ( VM )</h2>
<p>Step 1. &#x65BC; <code>West US</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>vm-11</code> &#x7684;&#x865B;&#x64EC;&#x6A5F;&#xFF0C;&#x5176;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-rg-01</code>&#x3001;OS &#x7684;&#x5370;&#x8C61;&#x6A94;&#x70BA; <code>Windows Server 2019 Datacenter</code>&#x3001;VM &#x898F;&#x683C;&#x70BA; <code>Standard_D2s_v3</code>&#x3001;&#x767B;&#x5165; VM &#x7684;&#x5E33;&#x865F;&#x70BA; <code>azureuser</code>&#x3001;&#x767B;&#x5165; VM &#x7684;&#x5BC6;&#x78BC;&#x70BA; <code>Pa5sW0rd!</code>&#xFF0C;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x7DB2;&#x8DEF;&#x5361;&#x70BA; <code>nic-11</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;
<ul>
<li><code>--admin-username</code> &#x8207; <code>--admin-password</code> &#x6240;&#x8A2D;&#x5B9A;&#x7684;&#x767B;&#x5165;&#x5E33;&#x865F;&#x8207;&#x5BC6;&#x78BC;&#x8ACB;&#x8A18;&#x5F97;&#x4FEE;&#x6539;</li>
</ul>
</li>
</ul>
<pre><code>az vm create \
    --resource-group traffic-management-rg-01 \
    --location westus \
    --name vm-11 \
    --image Win2019Datacenter \
    --size Standard_D2s_v3 \
    --admin-username azureuser \
    --admin-password Pa5sW0rdqwer! \
    --nics nic-11
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.15.43.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 2. &#x65BC; <code>West US</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>vm-22</code> &#x7684;&#x865B;&#x64EC;&#x6A5F;&#xFF0C;&#x5176;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-rg-01</code>&#x3001;OS &#x7684;&#x5370;&#x8C61;&#x6A94;&#x70BA; <code>Windows Server 2019 Datacenter</code>&#x3001;VM &#x898F;&#x683C;&#x70BA; <code>Standard_D2s_v3</code>&#x3001;&#x767B;&#x5165; VM &#x7684;&#x5E33;&#x865F;&#x70BA; <code>azureuser</code>&#x3001;&#x767B;&#x5165; VM &#x7684;&#x5BC6;&#x78BC;&#x70BA; <code>Pa5sW0rd!</code>&#xFF0C;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x7DB2;&#x8DEF;&#x5361;&#x70BA; <code>nic-22</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;
<ul>
<li><code>--admin-username</code> &#x8207; <code>--admin-password</code> &#x6240;&#x8A2D;&#x5B9A;&#x7684;&#x767B;&#x5165;&#x5E33;&#x865F;&#x8207;&#x5BC6;&#x78BC;&#x8ACB;&#x8A18;&#x5F97;&#x4FEE;&#x6539;</li>
</ul>
</li>
</ul>
<pre><code>az vm create \
    --resource-group traffic-management-rg-01 \
    --location westus \
    --name vm-22 \
    --image Win2019Datacenter \
    --size Standard_D2s_v3 \
    --admin-username azureuser \
    --admin-password Pa5sW0rdqwer! \
    --nics nic-22
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.17.57.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 3. &#x65BC; <code>West US</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>vm-33</code> &#x7684;&#x865B;&#x64EC;&#x6A5F;&#xFF0C;&#x5176;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-rg-02</code>&#x3001;OS &#x7684;&#x5370;&#x8C61;&#x6A94;&#x70BA; <code>Windows Server 2019 Datacenter</code>&#x3001;VM &#x898F;&#x683C;&#x70BA; <code>Standard_D2s_v3</code>&#x3001;&#x767B;&#x5165; VM &#x7684;&#x5E33;&#x865F;&#x70BA; <code>azureuser</code>&#x3001;&#x767B;&#x5165; VM &#x7684;&#x5BC6;&#x78BC;&#x70BA; <code>Pa5sW0rd!</code>&#xFF0C;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x7DB2;&#x8DEF;&#x5361;&#x70BA; <code>nic-33</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;
<ul>
<li><code>--admin-username</code> &#x8207; <code>--admin-password</code> &#x6240;&#x8A2D;&#x5B9A;&#x7684;&#x767B;&#x5165;&#x5E33;&#x865F;&#x8207;&#x5BC6;&#x78BC;&#x8ACB;&#x8A18;&#x5F97;&#x4FEE;&#x6539;</li>
</ul>
</li>
</ul>
<pre><code>az vm create \
    --resource-group traffic-management-rg-02 \
    --location westus \
    --name vm-33 \
    --image Win2019Datacenter \
    --size Standard_D2s_v3 \
    --admin-username azureuser \
    --admin-password Pa5sW0rdqwer! \
    --nics nic-33
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.20.09.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 4. &#x65BC; <code>West US 2</code> &#x7684; Region &#x5EFA;&#x7ACB; <code>vm-55</code> &#x7684;&#x865B;&#x64EC;&#x6A5F;&#xFF0C;&#x5176;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x70BA; <code>traffic-management-rg-03</code>&#x3001;OS &#x7684;&#x5370;&#x8C61;&#x6A94;&#x70BA; <code>Windows Server 2019 Datacenter</code>&#x3001;VM &#x898F;&#x683C;&#x70BA; <code>Standard_D2s_v3</code>&#x3001;&#x767B;&#x5165; VM &#x7684;&#x5E33;&#x865F;&#x70BA; <code>azureuser</code>&#x3001;&#x767B;&#x5165; VM &#x7684;&#x5BC6;&#x78BC;&#x70BA; <code>Pa5sW0rd!</code>&#xFF0C;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x7DB2;&#x8DEF;&#x5361;&#x70BA; <code>nic-55</code></p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;
<ul>
<li><code>--admin-username</code> &#x8207; <code>--admin-password</code> &#x6240;&#x8A2D;&#x5B9A;&#x7684;&#x767B;&#x5165;&#x5E33;&#x865F;&#x8207;&#x5BC6;&#x78BC;&#x8ACB;&#x8A18;&#x5F97;&#x4FEE;&#x6539;</li>
</ul>
</li>
</ul>
<pre><code>az vm create \
    --resource-group traffic-management-rg-03 \
    --location westus2 \
    --name vm-55 \
    --image Win2019Datacenter \
    --size Standard_D2s_v3 \
    --admin-username azureuser \
    --admin-password Pa5sW0rdqwer! \
    --nics nic-55
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.21.49.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-web-server-%E8%88%87%E4%BF%AE%E6%94%B9%E9%A0%90%E8%A8%AD%E7%B6%B2%E9%A0%81%E5%85%A7%E5%AE%B9">&#x5EFA;&#x7ACB; Web Server &#x8207;&#x4FEE;&#x6539;&#x9810;&#x8A2D;&#x7DB2;&#x9801;&#x5167;&#x5BB9;</h2>
<p>Step 1. &#x9078;&#x64C7; VM &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>vm</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Virtual machines</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.29.06.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x4E4B;&#x524D;&#x900F;&#x904E;&#x6307;&#x4EE4;&#x6240;&#x5EFA;&#x7ACB;&#x7684; <code>VM-11</code>&#x3001;<code>VM-22</code>&#x3001;<code>VM-33</code>&#x3001;<code>VM-55</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.26.45.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 2. &#x65BC; <code>VM-11</code> &#x9032;&#x884C;&#x8A2D;&#x5B9A;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>VM-11</code> &#x7684; VM &gt; &#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Run command</code> &gt; &#x9EDE;&#x9078; <code>Run Command Script</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.32.30.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x65BC; <code>PowerShell Script</code> &#x8F38;&#x5165;&#x6846;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;&#xFF0C;&#x518D;&#x9EDE;&#x9078; <code>Run</code> ( &#x57F7;&#x884C;&#x9700;&#x8981;&#x82B1;&#x4E00;&#x4E9B;&#x6642;&#x9593; )</li>
</ul>
<script src="https://gist.github.com/ArcherHuang/381609c10a0c28c1831270b6de930ba5.js"></script>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x7684;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.39.30.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 3. &#x65BC; <code>VM-22</code> &#x9032;&#x884C;&#x8A2D;&#x5B9A;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>VM-22</code> &#x7684; VM &gt; &#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Run command</code> &gt; &#x9EDE;&#x9078; <code>Run Command Script</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.38.16.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x65BC; <code>PowerShell Script</code> &#x8F38;&#x5165;&#x6846;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;&#xFF0C;&#x518D;&#x9EDE;&#x9078; <code>Run</code> ( &#x57F7;&#x884C;&#x9700;&#x8981;&#x82B1;&#x4E00;&#x4E9B;&#x6642;&#x9593; )</li>
</ul>
<script src="https://gist.github.com/ArcherHuang/87e743afbc713765822a13e152259d53.js"></script>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x7684;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.45.30.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 4. &#x65BC; <code>VM-33</code> &#x9032;&#x884C;&#x8A2D;&#x5B9A;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>VM-33</code> &#x7684; VM &gt; &#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Run command</code> &gt; &#x9EDE;&#x9078; <code>Run Command Script</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.41.29.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x65BC; <code>PowerShell Script</code> &#x8F38;&#x5165;&#x6846;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;&#xFF0C;&#x518D;&#x9EDE;&#x9078; <code>Run</code> ( &#x57F7;&#x884C;&#x9700;&#x8981;&#x82B1;&#x4E00;&#x4E9B;&#x6642;&#x9593; )</li>
</ul>
<script src="https://gist.github.com/ArcherHuang/de1673ef763174baa81a1f832723d44c.js"></script>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x7684;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.46.17.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 5. &#x65BC; <code>VM-55</code> &#x9032;&#x884C;&#x8A2D;&#x5B9A;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>VM-55</code> &#x7684; VM &gt; &#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Run command</code> &gt; &#x9EDE;&#x9078; <code>Run Command Script</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.43.12.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x65BC; <code>PowerShell Script</code> &#x8F38;&#x5165;&#x6846;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;&#xFF0C;&#x518D;&#x9EDE;&#x9078; <code>Run</code> ( &#x57F7;&#x884C;&#x9700;&#x8981;&#x82B1;&#x4E00;&#x4E9B;&#x6642;&#x9593; )</li>
</ul>
<script src="https://gist.github.com/ArcherHuang/537f7c4c19a7640601e8b4201c4cc5c0.js"></script>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x7684;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.48.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%80%8F%E9%81%8E-azure-network-watcher-%E9%80%B2%E8%A1%8C%E9%80%A3%E7%B7%9A%E6%B8%AC%E8%A9%A6">&#x900F;&#x904E; Azure Network Watcher &#x9032;&#x884C;&#x9023;&#x7DDA;&#x6E2C;&#x8A66;</h2>
<p>Step 1. &#x9078;&#x64C7; Network Watcher &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>Network Watcher</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Network Watcher</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.50.20.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 2. &#x6E2C;&#x8A66; <code>vm-11 ( vnet-01 )</code> &#x9023;&#x5230; <code>vm-22 ( vnet-01 )</code> &#x7684; 80 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code>&#x3002;</li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code>&#x3002;</li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-11</code>&#x3002;</li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Select a virtual machine</code>&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code>&#x3002;</li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-22</code>&#x3002;</li>
<li>Preferred IP version &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>IPv4</code>&#x3002;</li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code>&#x3002;</li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>80</code>&#x3002;</li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;&#x3002;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )&#x3002;</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---7.59.45.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.35.08.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.38.36.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 3. &#x6E2C;&#x8A66; <code>vm-11 ( vnet-01 )</code> &#x9023;&#x5230; <code>vm-22 ( vnet-01 )</code> &#x7684; 3389 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-11</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Select a virtual machine</code></li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-22</code></li>
<li>Preferred IP version &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>IPv4</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>3389</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---7.59.45.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.40.32.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.42.46.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 4. &#x6E2C;&#x8A66; <code>vm-11 ( vnet-01 )</code> &#x9023;&#x5230; <code>vm-33 ( vnet-02 ) ( 10.2.3.33 )</code> &#x7684; 80 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-11</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.2.3.33</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>80</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.45.36.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.48.33.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 5. &#x6E2C;&#x8A66; <code>vm-11 ( vnet-01 )</code> &#x9023;&#x5230; <code>vm-33 ( vnet-02 ) ( 10.2.3.33 )</code> &#x7684; 3389 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-11</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.2.3.33</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>3389</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.49.35.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.52.09.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 6. &#x6E2C;&#x8A66; <code>vm-22 ( vnet-01 )</code> &#x9023;&#x5230; <code>vm-55 ( vnet-03 ) ( 10.3.5.55 )</code> &#x7684; 80 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-22</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.3.5.55</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>80</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.52.54.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.56.18.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 7. &#x6E2C;&#x8A66; <code>vm-22 ( vnet-01 )</code> &#x9023;&#x5230; <code>vm-55 ( vnet-03 ) ( 10.3.5.55 )</code> &#x7684; 3389 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-01</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-22</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.3.5.55</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>3389</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.56.57.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---8.59.21.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 8. &#x6E2C;&#x8A66; <code>vm-33 ( vnet-02 )</code> &#x9023;&#x5230; <code>vm-55 ( vnet-03 ) ( 10.3.5.55 )</code> &#x7684; 80 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-02</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-33</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.3.5.55</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>80</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.00.16.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.04.13.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<hr>
<p>Step 9. &#x6E2C;&#x8A66; <code>vm-33 ( vnet-02 )</code> &#x9023;&#x5230; <code>vm-55 ( vnet-03 ) ( 10.3.5.55 )</code> &#x7684; 3389 Port</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Connection troubleshoot</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-09-01---7.53.01.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li>Subscription &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x3002;</li>
<li>Resource group &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>traffic-management-rg-02</code></li>
<li>Source type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Virtual machine</code></li>
<li>Virtual machine &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>vm-33</code></li>
<li>Destination type &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Specify manually</code></li>
<li>URI, FQDN, or IP address &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>10.3.5.55</code></li>
<li>Protocol &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>TCP</code></li>
<li>Destination port &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>3389</code></li>
<li>Source port (optional) &#x6B04;&#x4F4D;&#x4E0D;&#x7528;&#x8F38;&#x5165;</li>
<li>Diagnostic test &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Connectivity</code>&#x3001;<code>NSG diagnostic</code>&#x3001;<code>Next hop</code>&#xFF0C;&#x800C; <code>Port scanner</code> &#x4E0D;&#x7528;&#x9078;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Run diagnostic test</code> ( &#x57F7;&#x884C;&#x6703;&#x82B1;&#x4E0D;&#x5C11;&#x6642;&#x9593; )</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.04.47.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<ul>
<li>&#x57F7;&#x884C;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-09-01---9.07.18.png" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%AF%A6%E9%A9%97%E8%A7%80%E5%AF%9F">&#x5BE6;&#x9A57;&#x89C0;&#x5BDF;</h2>
<ul>
<li>VNet &#x70BA; vnet-01 &#x4E2D;&#x7684;&#x865B;&#x64EC;&#x6A5F; vm-11 &#x8207;&#x76F8;&#x540C; VNet &#x4E2D;&#x7684;&#x865B;&#x64EC;&#x6A5F; vm-22 &#x80FD;&#x900F;&#x904E; Port 80 &#x8207; 3389 &#x4E92;&#x901A;&#x3002;</li>
<li>VNet &#x70BA; vnet-01 &#x4E2D;&#x7684;&#x865B;&#x64EC;&#x6A5F; vm-11 &#x8207; VNet &#x70BA; vnet-02 &#x4E2D;&#x7684;&#x865B;&#x64EC;&#x6A5F; vm-33 &#x4E0D;&#x80FD;&#x900F;&#x904E; Port 80 &#x8207; 3389 &#x4E92;&#x901A;&#xFF0C;&#x5982;&#x679C;&#x8981;&#x8B93;&#x5169;&#x53F0;&#x865B;&#x64EC;&#x6A5F;&#x4E92;&#x901A;&#x53EF;&#x53C3;&#x8003;<a href="https://learningsky.io/azure-traffic-management-lab-configuring-hub-spoke-network-topology/">&#x900F;&#x904E; Peering &#x7684;&#x7AE0;&#x7BC0;</a>&#x3002;</li>
<li>VNet &#x70BA; vnet-01 &#x4E2D;&#x7684;&#x865B;&#x64EC;&#x6A5F; vm-22 &#x8207; VNet &#x70BA; vnet-03 &#x4E2D;&#x7684;&#x865B;&#x64EC;&#x6A5F; vm-55 &#x4E0D;&#x80FD;&#x900F;&#x904E; Port 80 &#x8207; 3389 &#x4E92;&#x901A;&#xFF0C;&#x5982;&#x679C;&#x8981;&#x8B93;&#x5169;&#x53F0;&#x865B;&#x64EC;&#x6A5F;&#x4E92;&#x901A;&#x53EF;&#x53C3;&#x8003;<a href="https://learningsky.io/azure-traffic-management-lab-configuring-hub-spoke-network-topology/">&#x900F;&#x904E; Peering &#x7684;&#x7AE0;&#x7BC0;</a>&#x3002;&#x3002;</li>
<li>VNet &#x70BA; vnet-02 &#x4E2D;&#x7684;&#x865B;&#x64EC;&#x6A5F; vm-33 &#x8207; VNet &#x70BA; vnet-03 &#x4E2D;&#x7684;&#x865B;&#x64EC;&#x6A5F; vm-55 &#x4E0D;&#x80FD;&#x900F;&#x904E; Port 80 &#x8207; 3389 &#x4E92;&#x901A;&#xFF0C;&#x5982;&#x679C;&#x8981;&#x8B93;&#x5169;&#x53F0;&#x865B;&#x64EC;&#x6A5F;&#x4E92;&#x901A;&#x53EF;&#x53C3;&#x8003;<a href="https://learningsky.io/azure-traffic-management-lab-configuring-routing-hub-spoke-network-topology/">&#x900F;&#x904E;&#x8DEF;&#x7531;&#x7684;&#x7AE0;&#x7BC0;</a>&#x3002;&#x3002;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://s3.amazonaws.com/learningsky/2023/09/buy-me-a-coffee.png" class="kg-image" alt="&#x3010; Cloud &#x3011;Azure Traffic Management Lab - &#x914D;&#x7F6E;&#x5BE6;&#x9A57;&#x74B0;&#x5883;" loading="lazy" width="545" height="153"></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】透過 Azure Policy 設定資源群組範圍以限制 VM 規格]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB;&#x7B2C; 1 &#x53F0; Azure VM
<ul>
<li>Size SKU: Standard_B1ls - 1 vcpu</li>
</ul>
</li>
<li>&#x8A2D;&#x5B9A; Policy
<ul>
<li>&#x5141;&#x8A31; VM &#x7684; Size SKU: Standard_F2s_v2</li>
</ul>
</li>
<li>&#x5EFA;&#x7ACB;</li></ul>]]></description><link>https://learningsky.io/restricting-azure-vm-size-sku-by-setting-resource-group-scope-via-azure-policy/</link><guid isPermaLink="false">64e6ab382099ca142fa4e476</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Thu, 24 Aug 2023 06:47:14 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1611907671216-7ec6ef949163?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fFllbWVufGVufDB8fHx8MTY5Mjg1OTU2OXww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB;&#x7B2C; 1 &#x53F0; Azure VM
<ul>
<li>Size SKU: Standard_B1ls - 1 vcpu</li>
</ul>
</li>
<li>&#x8A2D;&#x5B9A; Policy
<ul>
<li>&#x5141;&#x8A31; VM &#x7684; Size SKU: Standard_F2s_v2</li>
</ul>
</li>
<li>&#x5EFA;&#x7ACB;&#x7B2C; 2 &#x53F0; Azure VM
<ul>
<li>Size SKU: Standard_F2s_v2</li>
</ul>
</li>
<li>&#x5BE6;&#x9A57;&#x89C0;&#x5BDF;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%AD%B8%E7%BF%92%E7%9B%AE%E6%A8%99">&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</h2>
<ul>
<li>&#x5982;&#x4F55;&#x900F;&#x904E; <code>Azure Policy</code> &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44; ( Resource Group ) &#x7BC4;&#x570D;&#x4F86;&#x9650;&#x5236;&#x65B0;&#x5EFA; <code>Azure Virtual Machine ( Azure VM )</code> &#x7684;&#x898F;&#x683C; ( VM Size SKUs )</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;
<ul>
<li><a href="https://portal.azure.com/">https://portal.azure.com/</a></li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E6%9C%8D%E5%8B%99%E6%89%80%E4%BD%BF%E7%94%A8%E7%9A%84%E5%90%8D%E7%A8%B1">&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</h2>
<table>
<thead>
<tr>
<th style="text-align:center">&#x5C6C;&#x6027;</th>
<th style="text-align:center">&#x540D;&#x7A31;</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">Resource group</td>
<td style="text-align:center">vm-policy-size-sample-rg</td>
</tr>
<tr>
<td style="text-align:center">&#x7B2C;&#x4E00;&#x53F0; VM</td>
<td style="text-align:center">policy-sample-vm1 <br>SKU: Standard_B1ls - 1 vcpu</td>
</tr>
<tr>
<td style="text-align:center">Policy</td>
<td style="text-align:center">SKU: Standard_F2s_v2 ( &#x5141;&#x8A31; VM &#x7684;&#x898F;&#x683C; )</td>
</tr>
<tr>
<td style="text-align:center">&#x7B2C;&#x4E8C;&#x53F0; VM</td>
<td style="text-align:center">policy-sample-vm2 <br>SKU: &#x53EA;&#x80FD;&#x9078; Policy &#x6240;&#x5141;&#x8A31;&#x7684;</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E7%AC%AC-1-%E5%8F%B0-azure-vm">&#x5EFA;&#x7ACB;&#x7B2C; 1 &#x53F0; Azure VM</h2>
<img src="https://images.unsplash.com/photo-1611907671216-7ec6ef949163?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fFllbWVufGVufDB8fHx8MTY5Mjg1OTU2OXww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;"><p>Step 1. &#x9078;&#x64C7; VM &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>vm</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Virtual machines</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---9.17.54.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<hr>
<p>Step 2. &#x5EFA;&#x7ACB; VM</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x4E0A;&#x65B9;&#x7684; <code>+ Create</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Azure virtual machine</code> &#x9078;&#x9805;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---9.21.46.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<hr>
<p>Step 3. &#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; <code>vm-policy-size-sample-rg</code></li>
<li><code>Virtual machine name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; <code>policy-sample-vm1</code></li>
<li><code>Size</code> &#x8ACB;&#x9078;&#x64C7; <code>Standard_B1ls - 1 vcpu</code></li>
<li>&#x5176;&#x4ED6;&#x6B04;&#x4F4D;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Review + create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---9.24.51.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---9.45.05.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<hr>
<p>Step 4. &#x78BA;&#x8A8D;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x78BA;&#x8A8D;&#x5B8C;&#x8CC7;&#x8A0A;&#x8ACB;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---9.46.44.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<hr>
<p>Step 5. &#x5EFA;&#x7ACB;&#x904E;&#x7A0B;&#x4E2D;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---9.48.03.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<hr>
<p>Step 6. &#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---9.48.43.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E8%A8%AD%E5%AE%9A-policy">&#x8A2D;&#x5B9A; Policy</h2>
<p>Step 1. &#x9078;&#x64C7; Policy &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>policy</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Policy</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---9.51.40.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<hr>
<p>Step 2. &#x5EFA;&#x7ACB; Policy</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Compliance</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Assign policy</code> &#x9078;&#x9805;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---9.54.26.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7; <code>Scope</code>
<ul>
<li>&#x9078;&#x64C7; <code>Scope</code> &#x6B04;&#x4F4D;&#x7684;&#x53F3;&#x908A;&#x6309;&#x9215;</li>
<li><code>Subscription</code> &#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x8A02;&#x95B1;&#x5E33;&#x6236;</li>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x9078;&#x64C7;&#x6240;&#x8981;&#x9650;&#x5236;&#x9650;&#x984D;&#x7684;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;</li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x9078;&#x64C7;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>Select</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---9.57.11.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7; <code>Policy definition</code>
<ul>
<li>&#x9078;&#x64C7; <code>Policy definition</code> &#x6B04;&#x4F4D;&#x7684;&#x53F3;&#x908A;&#x6309;&#x9215;</li>
<li>&#x641C;&#x5C0B;&#x8F38;&#x5165;&#x6846;&#x8F38;&#x5165; <code>size</code></li>
<li>&#x9078;&#x64C7; <code>Allowed virtual machine size SKUs</code> &#x7684; Policy Name</li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x9078;&#x64C7;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>Add</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---10.05.34.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7; <code>Parameters</code> &#x9801;&#x7C64;
<ul>
<li><code>Allowed Size SKUs</code> &#x6B04;&#x4F4D;&#x9078;&#x64C7;&#x53EF;&#x5141;&#x8A31;&#x5EFA;&#x7ACB;&#x7684; VM &#x898F;&#x683C;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x9078;&#x64C7; <code>Standard_F2s_v2</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---11.15.30.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7; <code>Non-compliance messages</code> &#x9801;&#x7C64;
<ul>
<li><code>Non-compliance message</code> &#x6B04;&#x4F4D;&#x8F38;&#x5165;&#x8A0A;&#x606F;&#x4EE5;&#x63D0;&#x793A;&#x4F7F;&#x7528;&#x8005;&#x6240;&#x9078;&#x7684;&#x898F;&#x683C;&#x4E0D;&#x7B26;&#x8981;&#x6C42;&#x6240;&#x8981;&#x51FA;&#x73FE;&#x7684;&#x5167;&#x5BB9;</li>
<li>&#x4EE5;&#x4E0A;&#x6B04;&#x4F4D;&#x9078;&#x64C7;&#x5B8C;&#x6210;&#x5F8C;&#xFF0C;&#x9EDE;&#x9078; <code>Review + create</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---11.20.15.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<ul>
<li>&#x78BA;&#x8A8D;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;&#x5F8C;&#x9EDE;&#x9078; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-25---6.31.35.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---10.32.11-1.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---11.17.13.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E7%AC%AC-2-%E5%8F%B0-azure-vm">&#x5EFA;&#x7ACB;&#x7B2C; 2 &#x53F0; Azure VM</h2>
<p>Step 1. &#x9078;&#x64C7; VM &#x670D;&#x52D9;</p>
<ul>
<li>&#x65BC;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>vm</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Virtual machines</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---9.17.54.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<hr>
<p>Step 2. &#x5EFA;&#x7ACB; VM</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x4E0A;&#x65B9;&#x7684; <code>+ Create</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Azure virtual machine</code> &#x9078;&#x9805;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---9.21.46.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<hr>
<p>Step 3. &#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; Policy &#x6BB5;&#x843D;&#x6240;&#x9650;&#x5B9A;&#x7684;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>vm-policy-size-sample-rg</code></li>
<li><code>Virtual machine name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; <code>policy-sample-vm2</code></li>
<li><code>Size</code> &#x7684;&#x4E0B;&#x62C9;&#x9078;&#x55AE;&#x53EA;&#x80FD;&#x9078;&#x64C7; Policy &#x5145;&#x8A31;&#x53EF;&#x4F7F;&#x7528;&#x7684;&#x898F;&#x683C;</li>
<li>&#x5176;&#x4ED6;&#x6B04;&#x4F4D;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Review + create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---12.58.26.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---12.58.36.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---1.00.56.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---1.02.38.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---1.06.09.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x904E;&#x7A0B;&#x4E2D;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---1.05.16.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<ul>
<li>&#x5EFA;&#x7ACB;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---1.07.51.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---2.56.05.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%AF%A6%E9%A9%97%E8%A7%80%E5%AF%9F">&#x5BE6;&#x9A57;&#x89C0;&#x5BDF;</h2>
<ul>
<li>&#x5C0D; Resource Group &#x5EFA;&#x7ACB;&#x53EF;&#x7528; VM &#x898F;&#x683C;&#x7684; Azure Policy
<ul>
<li>Azure Policy &#x53EA;&#x5C0D;&#x65B0;&#x5EFA;&#x7ACB;&#x7684; VM &#x5957;&#x7528;&#xFF0C;&#x4E0D;&#x80FD;&#x5EFA;&#x7ACB;&#x4E0D;&#x7B26;&#x5408; Policy &#x7684;&#x898F;&#x683C;&#xFF0C;&#x800C;&#x539F;&#x6709;&#x5DF2;&#x5EFA;&#x7ACB;&#x7684; VM &#x53EA;&#x9032;&#x884C;&#x5408;&#x898F;&#x6AA2;&#x9A57;&#x4E14;&#x539F;&#x6709;&#x7684; VM &#x9084;&#x662F;&#x6703;&#x5B58;&#x5728;&#xFF0C;&#x4E5F;&#x9084;&#x80FD;&#x6B63;&#x5E38;&#x4F7F;&#x7528;
<ul>
<li>&#x65B0;&#x5EFA;&#x7ACB;&#x7684; VM &#x5728;&#x672C;&#x7BC4;&#x4F8B;&#x70BA; policy-sample-vm2</li>
<li>&#x539F;&#x6709;&#x5DF2;&#x5EFA;&#x7ACB;&#x7684; VM &#x5728;&#x672C;&#x7BC4;&#x4F8B;&#x70BA; policy-sample-vm1<br>
<img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---1.24.35.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"><br>
<img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---1.54.37-1.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></li>
</ul>
</li>
<li>&#x5982;&#x679C;&#x5C07;&#x539F;&#x6709;&#x5DF2;&#x5EFA;&#x7ACB;&#x7684; VM &#x91CD;&#x65B0; Resize &#x6210;&#x53E6;&#x4E00;&#x500B; <code>&#x975E; Policy &#x6240;&#x5141;&#x8A31;&#x7684;&#x898F;&#x683C;</code>&#xFF0C;&#x5247;&#x6703;&#x51FA;&#x73FE;&#x932F;&#x8AA4;&#x8A0A;&#x606F;&#x3002;<br>
<img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-24---1.57.24.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy"></li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/08/buy-me-a-coffee-5.png" class="kg-image" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Azure Policy &#x8A2D;&#x5B9A;&#x8CC7;&#x6E90;&#x7FA4;&#x7D44;&#x7BC4;&#x570D;&#x4EE5;&#x9650;&#x5236; VM &#x898F;&#x683C;" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】透過 Python 上傳與複製檔案到 Azure Blob]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x53D6;&#x5F97; Storage accounts &#x7684; Connection string</li>
<li>&#x5C07;&#x672C;&#x5730;&#x7AEF;&#x96FB;&#x8166;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x4E0A;&#x50B3;&#x5230; Azure Storage accounts</li>
<li>&#x5C07; Byte Image &#x6A94;&#x6848;&#x76F4;&#x63A5;&#x4E0A;&#x50B3;&#x5230; Azure Blob</li>
<li>&#x900F;&#x904E;&#x6A94;</li></ul>]]></description><link>https://learningsky.io/uploading-and-copying-files-to-azure-blob-via-python/</link><guid isPermaLink="false">64e568812099ca142fa4e31f</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Wed, 23 Aug 2023 06:16:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1581498692102-eae0b781e672?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDExNHx8Qm9saXZpYXxlbnwwfHx8fDE2OTI3NzEzMTh8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x53D6;&#x5F97; Storage accounts &#x7684; Connection string</li>
<li>&#x5C07;&#x672C;&#x5730;&#x7AEF;&#x96FB;&#x8166;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x4E0A;&#x50B3;&#x5230; Azure Storage accounts</li>
<li>&#x5C07; Byte Image &#x6A94;&#x6848;&#x76F4;&#x63A5;&#x4E0A;&#x50B3;&#x5230; Azure Blob</li>
<li>&#x900F;&#x904E;&#x6A94;&#x6848;&#x7684; URL &#x4F86;&#x4E0A;&#x50B3;&#x5230; Azure Blob</li>
<li>&#x53D6;&#x7684;&#x4F86;&#x6E90;&#x7AEF; Container &#x4E2D;&#x6A94;&#x6848;&#x7684; URL &#x4E26;&#x900F;&#x904E;&#x6B64; URL &#x4E0A;&#x50B3;&#x5230;&#x76EE;&#x5730;&#x7AEF;&#x7684; Container</li>
<li>&#x6383;&#x63CF; Azure Blob &#x4F86;&#x6E90;&#x7AEF;&#x7279;&#x5B9A;&#x7684;&#x8CC7;&#x6599;&#x593E;&#xFF0C;&#x4E26;&#x4F9D;&#x4F86;&#x6E90;&#x7AEF;&#x7684;&#x6A94;&#x6848;&#x7D50;&#x69CB;&#x4E0A;&#x50B3;&#x5230;&#x76EE;&#x5730;&#x7AEF;&#x7684; Container</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;
<ul>
<li><a href="https://portal.azure.com/">https://portal.azure.com/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC; Azure &#x5EFA;&#x7ACB; <code>Storage accounts</code> &#x8207; <code>Container</code></li>
<li>&#x5DF2;&#x65BC;&#x96FB;&#x8166;&#x7AEF;&#x5B89;&#x88DD; Python
<ul>
<li><a href="https://www.python.org/downloads/">https://www.python.org/downloads/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC;&#x96FB;&#x8166;&#x7AEF;&#x5B89;&#x88DD; IDE&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; Visual Studio Code ( VSCode )
<ul>
<li><a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a></li>
</ul>
</li>
<li>&#x5B89;&#x88DD; Python &#x76F8;&#x4F9D;&#x5957;&#x4EF6;&#xFF0C;&#x6307;&#x4EE4;&#x5982;&#x4E0B;&#xFF1A;<pre><code>pip install azure-storage-blob python-dotenv
</code></pre>
</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%8F%96%E5%BE%97-storage-accounts-%E7%9A%84-connection-string">&#x53D6;&#x5F97; Storage accounts &#x7684; Connection string</h2>
<img src="https://images.unsplash.com/photo-1581498692102-eae0b781e672?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDExNHx8Qm9saXZpYXxlbnwwfHx8fDE2OTI3NzEzMTh8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob"><p>Step 1. &#x9EDE;&#x9078; <code>Access keys</code> &gt; &#x9EDE;&#x9078; <code>Connection string</code> &#x53F3;&#x908A;&#x7684; <code>Show</code> &#x5373;&#x53EF;&#x53D6;&#x5F97; <code>Connection string</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---10.11.03.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<hr>
<p>Step 2. &#x65BC;&#x672C;&#x5730;&#x7AEF;&#x96FB;&#x8166;&#x4E2D;&#x7684;&#x7A0B;&#x5F0F;&#x8CC7;&#x6599;&#x593E;&#x5EFA;&#x7ACB; <code>.env</code> &#x6A94;&#x6848;</p>
<ul>
<li>&#x8ACB;&#x65BC; <code>.env</code> &#x6A94;&#x6848;&#x4E2D;&#x8F38;&#x5165;&#x4EE5;&#x4E0B;&#x8CC7;&#x8A0A;</li>
</ul>
<script src="https://gist.github.com/ArcherHuang/115319181fc656e11be418447e91c48d.js"></script><!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%B0%87%E6%9C%AC%E5%9C%B0%E7%AB%AF%E9%9B%BB%E8%85%A6%E4%B8%AD%E7%9A%84%E6%AA%94%E6%A1%88%E4%B8%8A%E5%82%B3%E5%88%B0-azure-storage-accounts">&#x5C07;&#x672C;&#x5730;&#x7AEF;&#x96FB;&#x8166;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x4E0A;&#x50B3;&#x5230; Azure Storage accounts</h2>
<p>Step 1. &#x672C;&#x5730;&#x7AEF;&#x96FB;&#x8166;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x7D50;&#x69CB;</p>
<ul>
<li>&#x5C07;&#x672C;&#x5730;&#x7AEF;&#x96FB;&#x8166;&#x4E2D; <code>Datasets</code> &#x8CC7;&#x6599;&#x593E;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x4E26;&#x4F9D; <code>Datasets</code> &#x8CC7;&#x6599;&#x593E;&#x4E2D;&#x7684;&#x6A94;&#x6848;&#x7D50;&#x69CB;&#x4E0A;&#x50B3;&#x5230; Azure Blob</li>
</ul>
<pre><code>.
&#x251C;&#x2500;&#x2500; .env
&#x251C;&#x2500;&#x2500; app.py
&#x2514;&#x2500;&#x2500; Datasets
    &#x251C;&#x2500;&#x2500; 6.txt
    &#x251C;&#x2500;&#x2500; 7.txt
    &#x251C;&#x2500;&#x2500; folder-1
    &#x2502;   &#x251C;&#x2500;&#x2500; 1.txt
    &#x2502;   &#x251C;&#x2500;&#x2500; 2.txt
    &#x2502;   &#x2514;&#x2500;&#x2500; folder-3
    &#x2502;       &#x251C;&#x2500;&#x2500; 8.txt
    &#x2502;       &#x2514;&#x2500;&#x2500; 9.txt
    &#x2514;&#x2500;&#x2500; folder-2
        &#x251C;&#x2500;&#x2500; 3.txt
        &#x2514;&#x2500;&#x2500; 5.txt
</code></pre>
<hr>
<p>Step 2. &#x64B0;&#x5BEB;&#x4E0A;&#x50B3;&#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x5EFA;&#x7ACB; <code>app.py</code> &#x6A94;&#x6848;&#x4E26;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x7A0B;&#x5F0F;
<ul>
<li>&#x4FEE;&#x6539;&#x7B2C; 7 &#x884C;&#x6210;&#x8981;&#x4E0A;&#x50B3;&#x5230; Azure Blob &#x4E2D;&#x7684;&#x54EA;&#x500B; Container</li>
</ul>
</li>
</ul>
<script src="https://gist.github.com/ArcherHuang/555ceede2c3987f611c977e3bd8580a6.js"></script>
<hr>
<p>Step 3. &#x57F7;&#x884C;&#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>python app.py
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---10.42.30.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<hr>
<p>Step 4. &#x67E5;&#x770B; Azure Blob &#x4E0A;&#x50B3;&#x7D50;&#x679C;</p>
<pre><code>.
&#x2514;&#x2500;&#x2500; files
    &#x251C;&#x2500;&#x2500; 6.txt
    &#x251C;&#x2500;&#x2500; 7.txt
    &#x251C;&#x2500;&#x2500; folder-1
    &#x2502;   &#x251C;&#x2500;&#x2500; 1.txt
    &#x2502;   &#x251C;&#x2500;&#x2500; 2.txt
    &#x2502;   &#x2514;&#x2500;&#x2500; folder-3
    &#x2502;       &#x251C;&#x2500;&#x2500; 8.txt
    &#x2502;       &#x2514;&#x2500;&#x2500; 9.txt
    &#x2514;&#x2500;&#x2500; folder-2
        &#x251C;&#x2500;&#x2500; 3.txt
        &#x2514;&#x2500;&#x2500; 5.txt
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---10.50.42.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---10.52.06.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---10.52.13.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---10.52.23.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%B0%87-byte-image-%E6%AA%94%E6%A1%88%E7%9B%B4%E6%8E%A5%E4%B8%8A%E5%82%B3%E5%88%B0-azure-blob">&#x5C07; Byte Image &#x6A94;&#x6848;&#x76F4;&#x63A5;&#x4E0A;&#x50B3;&#x5230; Azure Blob</h2>
<p>Step 1. &#x64B0;&#x5BEB;&#x4E0A;&#x50B3;&#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x5EFA;&#x7ACB; <code>app.py</code> &#x6A94;&#x6848;&#x4E26;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x7A0B;&#x5F0F;
<ul>
<li>&#x4FEE;&#x6539;&#x7B2C; 17 &#x884C;&#x6210;&#x8981;&#x4E0A;&#x50B3;&#x5230; Azure Blob &#x4E2D;&#x7684;&#x54EA;&#x500B; Container</li>
</ul>
</li>
</ul>
<script src="https://gist.github.com/ArcherHuang/ded0c9c5ec6496bbd3b2497521dee7d7.js"></script>
<hr>
<p>Step 2. &#x57F7;&#x884C;&#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>python app.py
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---1.31.11.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<hr>
<p>Step 3. &#x67E5;&#x770B; Azure Blob &#x4E0A;&#x50B3;&#x7D50;&#x679C;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---1.31.44.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%80%8F%E9%81%8E%E6%AA%94%E6%A1%88%E7%9A%84-url-%E4%BE%86%E4%B8%8A%E5%82%B3%E5%88%B0-azure-blob">&#x900F;&#x904E;&#x6A94;&#x6848;&#x7684; URL &#x4F86;&#x4E0A;&#x50B3;&#x5230; Azure Blob</h2>
<p>Step 1. &#x64B0;&#x5BEB;&#x4E0A;&#x50B3;&#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x5EFA;&#x7ACB; <code>app.py</code> &#x6A94;&#x6848;&#x4E26;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x7A0B;&#x5F0F;
<ul>
<li>&#x4FEE;&#x6539;&#x7B2C; 8 &#x884C;&#x6210;&#x8981;&#x4E0A;&#x50B3;&#x5230; Azure Blob &#x4E2D;&#x7684;&#x54EA;&#x500B; Container</li>
<li>&#x4FEE;&#x6539;&#x7B2C; 9 &#x884C;&#x6210;&#x4E0A;&#x50B3;&#x5230; Azure Blob &#x5F8C;&#x7684;&#x6A94;&#x6848;&#x540D;&#x7A31;</li>
<li>&#x4FEE;&#x6539;&#x7B2C; 15 &#x884C;&#x6210;&#x53D6;&#x5F97;&#x4F86;&#x6E90;&#x6A94;&#x6848;&#x7684; URL</li>
</ul>
</li>
</ul>
<script src="https://gist.github.com/ArcherHuang/814ce34b42de055db895e316a9ee0503.js"></script>
<hr>
<p>Step 2. &#x57F7;&#x884C;&#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>python app.py
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---1.37.13.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<hr>
<p>Step 3. &#x67E5;&#x770B; Azure Blob &#x4E0A;&#x50B3;&#x7D50;&#x679C;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---1.31.44.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%8F%96%E7%9A%84%E4%BE%86%E6%BA%90%E7%AB%AF-container-%E4%B8%AD%E6%AA%94%E6%A1%88%E7%9A%84-url-%E4%B8%A6%E9%80%8F%E9%81%8E%E6%AD%A4-url-%E4%B8%8A%E5%82%B3%E5%88%B0%E7%9B%AE%E5%9C%B0%E7%AB%AF%E7%9A%84-container">&#x53D6;&#x7684;&#x4F86;&#x6E90;&#x7AEF; Container &#x4E2D;&#x6A94;&#x6848;&#x7684; URL &#x4E26;&#x900F;&#x904E;&#x6B64; URL &#x4E0A;&#x50B3;&#x5230;&#x76EE;&#x5730;&#x7AEF;&#x7684; Container</h2>
<p>Step 1. Azure Blob &#x7684; <code>&#x4F86;&#x6E90;</code>&#x8207;<code>&#x76EE;&#x7684;&#x5730;</code>&#x7684; Container &#x4E4B;&#x6A94;&#x6848;&#x7D50;&#x69CB;</p>
<pre><code>.
&#x2514;&#x2500;&#x2500; source
&#x2502;   &#x251C;&#x2500;&#x2500; 6.txt
&#x2502;   &#x251C;&#x2500;&#x2500; 7.txt
&#x2502;   &#x251C;&#x2500;&#x2500; folder-1
&#x2502;   &#x2502;   &#x251C;&#x2500;&#x2500; 1.txt
&#x2502;   &#x2502;   &#x251C;&#x2500;&#x2500; 2.txt
&#x2502;   &#x2502;   &#x2514;&#x2500;&#x2500; folder-3
&#x2502;   &#x2502;       &#x251C;&#x2500;&#x2500; 8.txt
&#x2502;   &#x2502;       &#x2514;&#x2500;&#x2500; 9.txt
&#x2502;   &#x2514;&#x2500;&#x2500; folder-2
&#x2502;       &#x251C;&#x2500;&#x2500; 3.txt
&#x2502;       &#x2514;&#x2500;&#x2500; 5.txt
&#x2514;&#x2500;&#x2500; destination
</code></pre>
<hr>
<p>Step 2. &#x64B0;&#x5BEB;&#x4E0A;&#x50B3;&#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x5EFA;&#x7ACB; <code>app.py</code> &#x6A94;&#x6848;&#x4E26;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x7A0B;&#x5F0F;
<ul>
<li>&#x4FEE;&#x6539;&#x7B2C; 9 &#x884C;&#x6210;&#x4F86;&#x6E90;&#x7AEF; Container &#x540D;&#x7A31;</li>
<li>&#x4FEE;&#x6539;&#x7B2C; 10 &#x884C;&#x6210;&#x76EE;&#x5730;&#x7AEF; Container &#x540D;&#x7A31;</li>
</ul>
</li>
</ul>
<script src="https://gist.github.com/ArcherHuang/2df26c8ed36aeb90e6db0b2c62b75347.js"></script>
<hr>
<p>Step 3. &#x57F7;&#x884C;&#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>python app.py
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---1.55.20.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<hr>
<p>Step 4. &#x67E5;&#x770B; Azure Blob &#x4E0A;&#x50B3;&#x7D50;&#x679C;</p>
<pre><code>.
&#x2514;&#x2500;&#x2500; source
&#x2502;   &#x251C;&#x2500;&#x2500; 6.txt
&#x2502;   &#x251C;&#x2500;&#x2500; 7.txt
&#x2502;   &#x251C;&#x2500;&#x2500; folder-1
&#x2502;   &#x2502;   &#x251C;&#x2500;&#x2500; 1.txt
&#x2502;   &#x2502;   &#x251C;&#x2500;&#x2500; 2.txt
&#x2502;   &#x2502;   &#x2514;&#x2500;&#x2500; folder-3
&#x2502;   &#x2502;       &#x251C;&#x2500;&#x2500; 8.txt
&#x2502;   &#x2502;       &#x2514;&#x2500;&#x2500; 9.txt
&#x2502;   &#x2514;&#x2500;&#x2500; folder-2
&#x2502;       &#x251C;&#x2500;&#x2500; 3.txt
&#x2502;       &#x2514;&#x2500;&#x2500; 5.txt
&#x2514;&#x2500;&#x2500; destination
    &#x251C;&#x2500;&#x2500; 6.txt
    &#x251C;&#x2500;&#x2500; 7.txt
    &#x251C;&#x2500;&#x2500; folder-1
    &#x2502;   &#x251C;&#x2500;&#x2500; 1.txt
    &#x2502;   &#x251C;&#x2500;&#x2500; 2.txt
    &#x2502;   &#x2514;&#x2500;&#x2500; folder-3
    &#x2502;       &#x251C;&#x2500;&#x2500; 8.txt
    &#x2502;       &#x2514;&#x2500;&#x2500; 9.txt
    &#x2514;&#x2500;&#x2500; folder-2
        &#x251C;&#x2500;&#x2500; 3.txt
        &#x2514;&#x2500;&#x2500; 5.txt
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---1.55.50.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%8E%83%E6%8F%8F-azure-blob-%E4%BE%86%E6%BA%90%E7%AB%AF%E7%89%B9%E5%AE%9A%E7%9A%84%E8%B3%87%E6%96%99%E5%A4%BE%EF%BC%8C%E4%B8%A6%E4%BE%9D%E4%BE%86%E6%BA%90%E7%AB%AF%E7%9A%84%E6%AA%94%E6%A1%88%E7%B5%90%E6%A7%8B%E4%B8%8A%E5%82%B3%E5%88%B0%E7%9B%AE%E5%9C%B0%E7%AB%AF%E7%9A%84-container">&#x6383;&#x63CF; Azure Blob &#x4F86;&#x6E90;&#x7AEF;&#x7279;&#x5B9A;&#x7684;&#x8CC7;&#x6599;&#x593E;&#xFF0C;&#x4E26;&#x4F9D;&#x4F86;&#x6E90;&#x7AEF;&#x7684;&#x6A94;&#x6848;&#x7D50;&#x69CB;&#x4E0A;&#x50B3;&#x5230;&#x76EE;&#x5730;&#x7AEF;&#x7684; Container</h2>
<p>Step 1. Azure Blob &#x7684; <code>&#x4F86;&#x6E90;</code>&#x8207;<code>&#x76EE;&#x7684;&#x5730;</code>&#x7684; Container &#x4E4B;&#x6A94;&#x6848;&#x7D50;&#x69CB;</p>
<pre><code>.
&#x2514;&#x2500;&#x2500; source
&#x2502;   &#x251C;&#x2500;&#x2500; 6.txt
&#x2502;   &#x251C;&#x2500;&#x2500; 7.txt
&#x2502;   &#x251C;&#x2500;&#x2500; folder-1
&#x2502;   &#x2502;   &#x251C;&#x2500;&#x2500; 1.txt
&#x2502;   &#x2502;   &#x251C;&#x2500;&#x2500; 2.txt
&#x2502;   &#x2502;   &#x2514;&#x2500;&#x2500; folder-3
&#x2502;   &#x2502;       &#x251C;&#x2500;&#x2500; 8.txt
&#x2502;   &#x2502;       &#x2514;&#x2500;&#x2500; 9.txt
&#x2502;   &#x2514;&#x2500;&#x2500; folder-2
&#x2502;       &#x251C;&#x2500;&#x2500; 3.txt
&#x2502;       &#x2514;&#x2500;&#x2500; 5.txt
&#x2514;&#x2500;&#x2500; destination
</code></pre>
<hr>
<p>Step 2. &#x64B0;&#x5BEB;&#x4E0A;&#x50B3;&#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x5EFA;&#x7ACB; <code>app.py</code> &#x6A94;&#x6848;&#x4E26;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x7A0B;&#x5F0F;
<ul>
<li>&#x4FEE;&#x6539;&#x7B2C; 10 &#x884C;&#x6210;&#x4F86;&#x6E90;&#x7AEF; Container &#x540D;&#x7A31;</li>
<li>&#x4FEE;&#x6539;&#x7B2C; 11 &#x884C;&#x6210;&#x76EE;&#x5730;&#x7AEF; Container &#x540D;&#x7A31;</li>
<li>&#x4FEE;&#x6539;&#x7B2C; 12 &#x884C;&#x6210;&#x958B;&#x59CB;&#x6383;&#x63CF;&#x7684;&#x8CC7;&#x6599;&#x593E;&#x540D;&#x7A31;&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x50B3;&#x9001; <code>folder-1/folder-3</code> &#x8CC7;&#x6599;&#x593E;&#x4E2D;&#x7684;&#x6A94;&#x6848;</li>
</ul>
</li>
</ul>
<script src="https://gist.github.com/ArcherHuang/8dfda5b6235250dab42e34169e4370da.js"></script>
<hr>
<p>Step 3. &#x57F7;&#x884C;&#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x8ACB;&#x65BC;&#x7D42;&#x7AEF;&#x6A5F;&#x8F38;&#x5165;&#x4E0B;&#x65B9;&#x6307;&#x4EE4;</li>
</ul>
<pre><code>python app.py
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---2.02.29.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<hr>
<p>Step 4. &#x67E5;&#x770B; Azure Blob &#x4E0A;&#x50B3;&#x7D50;&#x679C;</p>
<pre><code>.
&#x2514;&#x2500;&#x2500; source
&#x2502;   &#x251C;&#x2500;&#x2500; 6.txt
&#x2502;   &#x251C;&#x2500;&#x2500; 7.txt
&#x2502;   &#x251C;&#x2500;&#x2500; folder-1
&#x2502;   &#x2502;   &#x251C;&#x2500;&#x2500; 1.txt
&#x2502;   &#x2502;   &#x251C;&#x2500;&#x2500; 2.txt
&#x2502;   &#x2502;   &#x2514;&#x2500;&#x2500; folder-3
&#x2502;   &#x2502;       &#x251C;&#x2500;&#x2500; 8.txt
&#x2502;   &#x2502;       &#x2514;&#x2500;&#x2500; 9.txt
&#x2502;   &#x2514;&#x2500;&#x2500; folder-2
&#x2502;       &#x251C;&#x2500;&#x2500; 3.txt
&#x2502;       &#x2514;&#x2500;&#x2500; 5.txt
&#x2514;&#x2500;&#x2500; destination
    &#x2514;&#x2500;&#x2500; folder-1
        &#x2514;&#x2500;&#x2500; folder-3
            &#x251C;&#x2500;&#x2500; 8.txt
            &#x2514;&#x2500;&#x2500; 9.txt
</code></pre>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-23---2.02.55.png" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/08/buy-me-a-coffee-4.png" class="kg-image" alt="&#x3010; Cloud &#x3011;&#x900F;&#x904E; Python &#x4E0A;&#x50B3;&#x8207;&#x8907;&#x88FD;&#x6A94;&#x6848;&#x5230; Azure Blob" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】設定 Azure App Service 的 Configuration 與 Azure Key Vault 透過 Vault access policy 連結 ( Python )]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB; Azure App Service</li>
<li>&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</li>
<li>&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration</li>
<li>&#x90E8;&#x7F72; Python &#x7A0B;&#x5F0F;&#x5230; Azure App</li></ul>]]></description><link>https://learningsky.io/linking-azure-app-service-configuration-with-azure-key-vault-access-policy-python/</link><guid isPermaLink="false">64cb41852099ca142fa4e2f8</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><category><![CDATA[Front-end & Back-end & Programming Language]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Thu, 03 Aug 2023 06:12:09 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1584098181992-e7f35b51f85a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDI4fHxjdWJhfGVufDB8fHx8MTY5MTA0MzA3M3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB; Azure App Service</li>
<li>&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</li>
<li>&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration</li>
<li>&#x90E8;&#x7F72; Python &#x7A0B;&#x5F0F;&#x5230; Azure App Service</li>
<li>&#x6E2C;&#x8A66;&#x8207;&#x9A57;&#x8B49;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%AD%B8%E7%BF%92%E7%9B%AE%E6%A8%99">&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</h2>
<ul>
<li>&#x5982;&#x4F55;&#x5728; <code>Azure App Service</code> &#x4E2D;&#x7684; <code>Configuration</code> &#x900F;&#x904E; <code>Azure role-based access control ( Vault access policy )</code> &#x8B80;&#x53D6; <code>Azure Key Vault</code> &#x8CC7;&#x8A0A;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;</li>
<li>&#x5DF2;&#x65BC;&#x96FB;&#x8166;&#x7AEF;&#x5B89;&#x88DD; IDE&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; Visual Studio Code ( VScode )
<ul>
<li><a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC; VScode &#x5B89;&#x88DD; Azure App Service Extension
<ul>
<li><a href="https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice">https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC; VScode &#x767B;&#x5165;&#x5230; Azure</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E6%9C%8D%E5%8B%99%E6%89%80%E4%BD%BF%E7%94%A8%E7%9A%84%E5%90%8D%E7%A8%B1">&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</h2>
<table>
<thead>
<tr>
<th style="text-align:center">&#x5C6C;&#x6027;</th>
<th style="text-align:center">&#x540D;&#x7A31;</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">Resource group</td>
<td style="text-align:center">app-secret-rg</td>
</tr>
<tr>
<td style="text-align:center">Azure App Service</td>
<td style="text-align:center">app-sample168</td>
</tr>
<tr>
<td style="text-align:center">Azure Key Vault</td>
<td style="text-align:center">secret-sample168</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-azure-app-service">&#x5EFA;&#x7ACB; Azure App Service</h2>
<img src="https://images.unsplash.com/photo-1584098181992-e7f35b51f85a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDI4fHxjdWJhfGVufDB8fHx8MTY5MTA0MzA3M3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )"><p>Step 1. &#x65BC; <code>Azure Portal</code> &#x4E2D;&#x7684;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>App Service</code> &gt; &#x9EDE;&#x9078; <code>App Services</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.14.31.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 2. &#x9EDE;&#x9078;&#x5DE6;&#x4E0A;&#x89D2; <code>+ Create</code> &#x6309;&#x9215;&#x4E2D;&#x7684; <code>+ Web App</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.17.24.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 3. &#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Publish</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Code</code>&#x3002;</li>
<li><code>Runtime stack</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Python</code>&#x3002;</li>
<li><code>Region</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x670D;&#x52D9;&#x7684;&#x6240;&#x5728;&#x4F4D;&#x7F6E;&#x3002;</li>
<li><code>Linux Plan</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684; Plan&#x3002;</li>
<li><code>Pricing Plan</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x898F;&#x683C;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Review + Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.21.44-1.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.27.05.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 4. &#x78BA;&#x8A8D;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x78BA;&#x8A8D;&#x5B8C;&#x6210;&#x5F8C;&#x8ACB;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.27.46.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 5. &#x5EFA;&#x7ACB;&#x904E;&#x7A0B;&#x4E2D;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.37.17.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 6. &#x5EFA;&#x7ACB;&#x5B8C;&#x6210;&#xFF0C;&#x9EDE;&#x9078; <code>Go to resource</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.38.24.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 7. &#x555F;&#x7528; Managed identity</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Identity</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>On</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.41.17.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Save</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.42.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Yes</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.44.04.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E8%88%87%E8%A8%AD%E5%AE%9A-azure-key-vault">&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</h2>
<p>Step 1. &#x65BC; <code>Azure Portal</code> &#x4E2D;&#x7684;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>Key Vault</code> &gt; &#x9EDE;&#x9078; <code>Key Vaults</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.46.55.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 2. &#x9EDE;&#x9078;&#x5DE6;&#x4E0A;&#x89D2; <code>+ Create</code> &#x6309;&#x9215;&#x4E2D;&#x7684; <code>+ Web App</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.48.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 3. &#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Key vault name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Region</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x670D;&#x52D9;&#x7684;&#x6240;&#x5728;&#x4F4D;&#x7F6E;&#x3002;</li>
<li><code>Pricing tier</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x898F;&#x683C;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Next</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.50.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.52.50.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7; <code>Vault access policy</code> &#x5F8C;&#x518D;&#x9EDE;&#x9078; <code>Review + create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.37.08.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 4. &#x78BA;&#x8A8D;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x78BA;&#x8A8D;&#x5B8C;&#x6210;&#x5F8C;&#x8ACB;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.38.29.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 5. &#x5EFA;&#x7ACB;&#x904E;&#x7A0B;&#x4E2D;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.55.23.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 6. &#x5EFA;&#x7ACB;&#x5B8C;&#x6210;&#xFF0C;&#x9EDE;&#x9078; <code>Go to resource</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.56.10.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 7. &#x8A2D;&#x5B9A;&#x7D66; App Service &#x7684;&#x5B58;&#x53D6;&#x6B0A;&#x9650;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Access configuration</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Go to access control (IAM)</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.59.12.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>+ Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.40.40.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Secret permissions</code> &#x4E2D;&#x7684; <code>Get</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Next</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.42.21.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x65BC;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165;&#x6240;&#x5EFA;&#x7ACB;&#x7684; App Service &#x540D;&#x7A31; ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> ) &gt; &#x9EDE;&#x9078;&#x6240;&#x51FA;&#x73FE;&#x7684;&#x7D50;&#x679C; &gt; &#x518D;&#x9EDE;&#x9078; <code>Next</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-08-03---1.45.00.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.45.00-1.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.47.23.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Next</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.48.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x78BA;&#x8A8D;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;&#x5F8C;&#x9EDE;&#x9078; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.49.19.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x5B58;&#x53D6;&#x6B0A;&#x9650;&#x8A2D;&#x5B9A;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.50.23.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 8. &#x8A2D;&#x5B9A; Secret</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Secrets</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>+ Generate/Import</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.30.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165; Secret &#x8CC7;&#x8A0A;
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>db-connection-string</code></li>
<li><code>Secret value</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>test_from_web</code></li>
<li>&#x7576;&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x65B9;&#x7684; <code>Create</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.33.31.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.34.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 9. &#x53D6;&#x5F97; <code>CURRENT VERSION</code> &#x8207; <code>Secret Identifier</code></p>
<ul>
<li>&#x9EDE;&#x9078;&#x6240;&#x5EFA;&#x7ACB;&#x7684; <code>db-connection-string</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.36.25.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x53D6;&#x5F97; <code>CURRENT VERSION</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.37.13.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x53D6;&#x5F97; <code>Secret Identifier</code>
<ul>
<li>&#x9EDE;&#x9078;&#x51FA;&#x73FE;&#x7684; CURRENT VERSION</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.37.13.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.38.55.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E8%A8%AD%E5%AE%9A-azure-app-service-%E7%9A%84-configuration">&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration</h2>
<p>Step 1. &#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB;&#x7684; Azure App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> ) &gt; &#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Configuration</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ New application setting</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.42.04.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 2. &#x8A2D;&#x5B9A; setting &#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8F38;&#x5165; <code>DB_CONNECTION_STRING</code></li>
<li><code>Value</code> &#x6B04;&#x4F4D;&#x8F38;&#x5165; <code>@Microsoft.KeyVault(SecretUri=Value_From_Secret_Identifier)</code>&#xFF0C;&#x8ACB;&#x4FEE;&#x6539; <code>Value_From_Secret_Identifier</code> &#x70BA; <code>&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</code> &#x6BB5;&#x843D; <code>Step 9</code> &#x6240;&#x53D6;&#x5F97;&#x7684; <code>Secret Identifier</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>OK</code></li>
<li>&#x329F; <code>@Microsoft.KeyVault(referenceString)</code> &#x4E2D;&#x7684; <code>referenceString</code> &#x7684;&#x683C;&#x5F0F;&#x53EF;&#x70BA;&#x4EE5;&#x4E0B;&#x5169;&#x7A2E;&#xFF1A;</li>
</ul>
</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">referenceString</th>
<th style="text-align:center">&#x8AAA;&#x660E;</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">SecretUri= secretUri</td>
<td style="text-align:center">SecretUri &#x70BA; Secret &#x7684;&#x5B8C;&#x6574; URI &#x6216;&#x9078;&#x64C7;&#x6027;&#x5730;&#x5305;&#x542B;&#x7248;&#x672C;&#xFF0C;&#x4F8B;&#x5982; <a href="https://myvault.vault.azure.net/secrets/mysecret/">https://myvault.vault.azure.net/secrets/mysecret/</a>  &#x6216; <a href="https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931">https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931</a></td>
</tr>
<tr>
<td style="text-align:center">VaultName= vaultName ;SecretName= secretName ;SecretVersion= secretVersion</td>
<td style="text-align:center">VaultName &#x662F;&#x5FC5;&#x8981;&#x7684;&#xFF0C;&#x800C;&#x4E14;&#x662F;&#x4FDD;&#x5B58;&#x5EAB;&#x540D;&#x7A31;&#x3002; <br>SecretName &#x662F;&#x5FC5;&#x8981;&#x7684;&#xFF0C;&#x800C;&#x4E14;&#x662F;&#x79D8;&#x5BC6;&#x540D;&#x7A31;&#x3002; <br>SecretVersion &#x70BA;&#x9078;&#x64C7;&#x6027;&#xFF0C;&#x986F;&#x793A;&#x6642;&#x8868;&#x793A;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x79D8;&#x5BC6;&#x7248;&#x672C;&#x3002;</td>
</tr>
</tbody>
</table>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.49.47.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Save</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.51.40.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Continue</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.52.28.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%83%A8%E7%BD%B2-python-%E7%A8%8B%E5%BC%8F%E5%88%B0-azure-app-service">&#x90E8;&#x7F72; Python &#x7A0B;&#x5F0F;&#x5230; Azure App Service</h2>
<p>Step 1. &#x4E0B;&#x8F09;&#x7BC4;&#x4F8B;&#x7A0B;&#x5F0F;</p>
<ul>
<li><a href="https://github.com/ArcherHuang/Azure-App-Service-Key-Vault">https://github.com/ArcherHuang/Azure-App-Service-Key-Vault</a></li>
</ul>
<hr>
<p>Step 2. &#x90E8;&#x7F72; Python &#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>Python</code> &#x8CC7;&#x6599;&#x593E;&#x53F3;&#x9375; &gt; &#x9EDE;&#x9078; <code>Deploy to Web App...</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.31.38.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7;&#x6240;&#x5EFA;&#x7ACB;&#x7684; App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> )</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.32.11.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Deploy</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.33.04.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x90E8;&#x7F72;&#x904E;&#x7A0B;&#x4E2D;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.33.27.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x90E8;&#x7F72;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.34.23.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%B8%AC%E8%A9%A6%E8%88%87%E9%A9%97%E8%AD%89">&#x6E2C;&#x8A66;&#x8207;&#x9A57;&#x8B49;</h2>
<p>Step 1. &#x53D6;&#x5F97; App Service &#x7684; <code>Default domain</code></p>
<ul>
<li>&#x5230;&#x6240;&#x5EFA;&#x7ACB;&#x7684; App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> )</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/1.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 2. &#x958B;&#x555F;&#x6E2C;&#x8A66;&#x9801;&#x9762;</p>
<ul>
<li>&#x65BC;&#x700F;&#x89BD;&#x5668;&#x958B;&#x555F;&#x65B0;&#x7684;&#x9801;&#x7C64;&#xFF0C;&#x8F38;&#x5165; <code>https://Default-Domain/secret</code>&#xFF0C;&#x8ACB;&#x4FEE;&#x6539; <code>Default-Domain</code> &#x70BA;&#x4E0A;&#x6B65;&#x9A5F;&#x6240;&#x53D6;&#x5F97;&#x7684; <code>Default domain</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.05.57.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="reference">Reference</h2>
<ul>
<li><a href="https://learn.microsoft.com/zh-tw/azure/app-service/app-service-key-vault-references?tabs=azure-cli#source-app-settings-from-key-vault">https://learn.microsoft.com/zh-tw/azure/app-service/app-service-key-vault-references?tabs=azure-cli#source-app-settings-from-key-vault</a></li>
</ul>
<h2 id="sample-code">Sample Code</h2>
<ul>
<li><a href="https://github.com/ArcherHuang/Azure-App-Service-Key-Vault">https://github.com/ArcherHuang/Azure-App-Service-Key-Vault</a></li>
</ul>
<h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/08/buy-me-a-coffee-3.png" class="kg-image" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Python )" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】設定 Azure App Service 的 Configuration 與 Azure Key Vault 透過 Vault access policy 連結 ( Node.js )]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB; Azure App Service</li>
<li>&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</li>
<li>&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration</li>
<li>&#x90E8;&#x7F72; Node.js &#x7A0B;&#x5F0F;&#x5230; Azure</li></ul>]]></description><link>https://learningsky.io/linking-azure-app-service-configuration-with-azure-key-vault-access-policy-nodejs/</link><guid isPermaLink="false">64cb3a232099ca142fa4e277</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><category><![CDATA[Front-end & Back-end & Programming Language]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Thu, 03 Aug 2023 06:11:01 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1600520611035-84157ad4084d?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxlZ3lwdHxlbnwwfHx8fDE2OTEwNDI1MjR8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB; Azure App Service</li>
<li>&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</li>
<li>&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration</li>
<li>&#x90E8;&#x7F72; Node.js &#x7A0B;&#x5F0F;&#x5230; Azure App Service</li>
<li>&#x6E2C;&#x8A66;&#x8207;&#x9A57;&#x8B49;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%AD%B8%E7%BF%92%E7%9B%AE%E6%A8%99">&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</h2>
<ul>
<li>&#x5982;&#x4F55;&#x5728; <code>Azure App Service</code> &#x4E2D;&#x7684; <code>Configuration</code> &#x900F;&#x904E; <code>Azure role-based access control ( Vault access policy )</code> &#x8B80;&#x53D6; <code>Azure Key Vault</code> &#x8CC7;&#x8A0A;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;</li>
<li>&#x5DF2;&#x65BC;&#x96FB;&#x8166;&#x7AEF;&#x5B89;&#x88DD; IDE&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; Visual Studio Code ( VScode )
<ul>
<li><a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC; VScode &#x5B89;&#x88DD; Azure App Service Extension
<ul>
<li><a href="https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice">https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC; VScode &#x767B;&#x5165;&#x5230; Azure</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E6%9C%8D%E5%8B%99%E6%89%80%E4%BD%BF%E7%94%A8%E7%9A%84%E5%90%8D%E7%A8%B1">&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</h2>
<table>
<thead>
<tr>
<th style="text-align:center">&#x5C6C;&#x6027;</th>
<th style="text-align:center">&#x540D;&#x7A31;</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">Resource group</td>
<td style="text-align:center">app-secret-rg</td>
</tr>
<tr>
<td style="text-align:center">Azure App Service</td>
<td style="text-align:center">app-sample168</td>
</tr>
<tr>
<td style="text-align:center">Azure Key Vault</td>
<td style="text-align:center">secret-sample168</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-azure-app-service">&#x5EFA;&#x7ACB; Azure App Service</h2>
<img src="https://images.unsplash.com/photo-1600520611035-84157ad4084d?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxlZ3lwdHxlbnwwfHx8fDE2OTEwNDI1MjR8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )"><p>Step 1. &#x65BC; <code>Azure Portal</code> &#x4E2D;&#x7684;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>App Service</code> &gt; &#x9EDE;&#x9078; <code>App Services</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.14.31.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x9EDE;&#x9078;&#x5DE6;&#x4E0A;&#x89D2; <code>+ Create</code> &#x6309;&#x9215;&#x4E2D;&#x7684; <code>+ Web App</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.17.24.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 3. &#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Publish</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Code</code>&#x3002;</li>
<li><code>Runtime stack</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Node 18 LTS</code>&#x3002;</li>
<li><code>Region</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x670D;&#x52D9;&#x7684;&#x6240;&#x5728;&#x4F4D;&#x7F6E;&#x3002;</li>
<li><code>Linux Plan</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684; Plan&#x3002;</li>
<li><code>Pricing Plan</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x898F;&#x683C;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Review + create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.21.44-1.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.26.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 4. &#x78BA;&#x8A8D;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x78BA;&#x8A8D;&#x5B8C;&#x6210;&#x5F8C;&#x8ACB;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.27.46.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 5. &#x5EFA;&#x7ACB;&#x904E;&#x7A0B;&#x4E2D;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.37.17.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 6. &#x5EFA;&#x7ACB;&#x5B8C;&#x6210;&#xFF0C;&#x9EDE;&#x9078; <code>Go to resource</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.38.24.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 7. &#x555F;&#x7528; Managed identity</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Identity</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>On</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.41.17.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Save</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.42.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Yes</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.44.04.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E8%88%87%E8%A8%AD%E5%AE%9A-azure-key-vault">&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</h2>
<p>Step 1. &#x65BC; <code>Azure Portal</code> &#x4E2D;&#x7684;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>Key Vault</code> &gt; &#x9EDE;&#x9078; <code>Key Vaults</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.46.55.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x9EDE;&#x9078;&#x5DE6;&#x4E0A;&#x89D2; <code>+ Create</code> &#x6309;&#x9215;&#x4E2D;&#x7684; <code>+ Web App</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.48.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 3. &#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Key vault name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Region</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x670D;&#x52D9;&#x7684;&#x6240;&#x5728;&#x4F4D;&#x7F6E;&#x3002;</li>
<li><code>Pricing tier</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x898F;&#x683C;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Next</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.50.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.52.50.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7; <code>Vault access policy</code> &#x5F8C;&#x518D;&#x9EDE;&#x9078; <code>Review + create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.37.08.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 4. &#x78BA;&#x8A8D;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x78BA;&#x8A8D;&#x5B8C;&#x6210;&#x5F8C;&#x8ACB;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.38.29.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 5. &#x5EFA;&#x7ACB;&#x904E;&#x7A0B;&#x4E2D;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.55.23.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 6. &#x5EFA;&#x7ACB;&#x5B8C;&#x6210;&#xFF0C;&#x9EDE;&#x9078; <code>Go to resource</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.56.10.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 7. &#x8A2D;&#x5B9A;&#x7D66; App Service &#x7684;&#x5B58;&#x53D6;&#x6B0A;&#x9650;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Access configuration</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Go to access control (IAM)</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.59.12.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>+ Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.40.40.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Secret permissions</code> &#x4E2D;&#x7684; <code>Get</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Next</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.42.21.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x65BC;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165;&#x6240;&#x5EFA;&#x7ACB;&#x7684; App Service &#x540D;&#x7A31; ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> ) &gt; &#x9EDE;&#x9078;&#x6240;&#x51FA;&#x73FE;&#x7684;&#x7D50;&#x679C; &gt; &#x518D;&#x9EDE;&#x9078; <code>Next</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/09/---2023-08-03---1.45.00-1.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.45.00-1.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.47.23.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Next</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.48.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x78BA;&#x8A8D;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;&#x5F8C;&#x9EDE;&#x9078; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.49.19.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x5B58;&#x53D6;&#x6B0A;&#x9650;&#x8A2D;&#x5B9A;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---1.50.23.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 8. &#x8A2D;&#x5B9A; Secret</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Secrets</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>+ Generate/Import</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.30.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165; Secret &#x8CC7;&#x8A0A;
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>db-connection-string</code></li>
<li><code>Secret value</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>test_from_web</code></li>
<li>&#x7576;&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x65B9;&#x7684; <code>Create</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.33.31.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.34.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 9. &#x53D6;&#x5F97; <code>CURRENT VERSION</code> &#x8207; <code>Secret Identifier</code></p>
<ul>
<li>&#x9EDE;&#x9078;&#x6240;&#x5EFA;&#x7ACB;&#x7684; <code>db-connection-string</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.36.25.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x53D6;&#x5F97; <code>CURRENT VERSION</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.37.13.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x53D6;&#x5F97; <code>Secret Identifier</code>
<ul>
<li>&#x9EDE;&#x9078;&#x51FA;&#x73FE;&#x7684; CURRENT VERSION</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.37.13.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.38.55.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E8%A8%AD%E5%AE%9A-azure-app-service-%E7%9A%84-configuration">&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration</h2>
<p>Step 1. &#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB;&#x7684; Azure App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> ) &gt; &#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Configuration</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ New application setting</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.42.04.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x8A2D;&#x5B9A; setting &#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8F38;&#x5165; <code>DB_CONNECTION_STRING</code></li>
<li><code>Value</code> &#x6B04;&#x4F4D;&#x8F38;&#x5165; <code>@Microsoft.KeyVault(SecretUri=Value_From_Secret_Identifier)</code>&#xFF0C;&#x8ACB;&#x4FEE;&#x6539; <code>Value_From_Secret_Identifier</code> &#x70BA; <code>&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</code> &#x6BB5;&#x843D; <code>Step 9</code> &#x6240;&#x53D6;&#x5F97;&#x7684; <code>Secret Identifier</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>OK</code></li>
<li>&#x329F; <code>@Microsoft.KeyVault(referenceString)</code> &#x4E2D;&#x7684; <code>referenceString</code> &#x7684;&#x683C;&#x5F0F;&#x53EF;&#x70BA;&#x4EE5;&#x4E0B;&#x5169;&#x7A2E;&#xFF1A;</li>
</ul>
</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">referenceString</th>
<th style="text-align:center">&#x8AAA;&#x660E;</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">SecretUri= secretUri</td>
<td style="text-align:center">SecretUri &#x70BA; Secret &#x7684;&#x5B8C;&#x6574; URI &#x6216;&#x9078;&#x64C7;&#x6027;&#x5730;&#x5305;&#x542B;&#x7248;&#x672C;&#xFF0C;&#x4F8B;&#x5982; <a href="https://myvault.vault.azure.net/secrets/mysecret/">https://myvault.vault.azure.net/secrets/mysecret/</a>  &#x6216; <a href="https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931">https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931</a></td>
</tr>
<tr>
<td style="text-align:center">VaultName= vaultName ;SecretName= secretName ;SecretVersion= secretVersion</td>
<td style="text-align:center">VaultName &#x662F;&#x5FC5;&#x8981;&#x7684;&#xFF0C;&#x800C;&#x4E14;&#x662F;&#x4FDD;&#x5B58;&#x5EAB;&#x540D;&#x7A31;&#x3002; <br>SecretName &#x662F;&#x5FC5;&#x8981;&#x7684;&#xFF0C;&#x800C;&#x4E14;&#x662F;&#x79D8;&#x5BC6;&#x540D;&#x7A31;&#x3002; <br>SecretVersion &#x70BA;&#x9078;&#x64C7;&#x6027;&#xFF0C;&#x986F;&#x793A;&#x6642;&#x8868;&#x793A;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x79D8;&#x5BC6;&#x7248;&#x672C;&#x3002;</td>
</tr>
</tbody>
</table>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.49.47.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Save</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.51.40.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Continue</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.52.28.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%83%A8%E7%BD%B2-nodejs-%E7%A8%8B%E5%BC%8F%E5%88%B0-azure-app-service">&#x90E8;&#x7F72; Node.js &#x7A0B;&#x5F0F;&#x5230; Azure App Service</h2>
<p>Step 1. &#x4E0B;&#x8F09;&#x7BC4;&#x4F8B;&#x7A0B;&#x5F0F;</p>
<ul>
<li><a href="https://github.com/ArcherHuang/Azure-App-Service-Key-Vault">https://github.com/ArcherHuang/Azure-App-Service-Key-Vault</a></li>
</ul>
<hr>
<p>Step 2. &#x90E8;&#x7F72; Node.js &#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>Nodejs</code> &#x8CC7;&#x6599;&#x593E;&#x53F3;&#x9375; &gt; &#x9EDE;&#x9078; <code>Deploy to Web App...</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.57.08.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7;&#x6240;&#x5EFA;&#x7ACB;&#x7684; App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> )</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.58.10.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Deploy</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.59.38.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x90E8;&#x7F72;&#x904E;&#x7A0B;&#x4E2D;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.00.17.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x90E8;&#x7F72;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.00.48.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%B8%AC%E8%A9%A6%E8%88%87%E9%A9%97%E8%AD%89">&#x6E2C;&#x8A66;&#x8207;&#x9A57;&#x8B49;</h2>
<p>Step 1. &#x53D6;&#x5F97; App Service &#x7684; <code>Default domain</code></p>
<ul>
<li>&#x5230;&#x6240;&#x5EFA;&#x7ACB;&#x7684; App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> )</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/1.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x958B;&#x555F;&#x6E2C;&#x8A66;&#x9801;&#x9762;</p>
<ul>
<li>&#x65BC;&#x700F;&#x89BD;&#x5668;&#x958B;&#x555F;&#x65B0;&#x7684;&#x9801;&#x7C64;&#xFF0C;&#x8F38;&#x5165; <code>https://Default-Domain/secret</code>&#xFF0C;&#x8ACB;&#x4FEE;&#x6539; <code>Default-Domain</code> &#x70BA;&#x4E0A;&#x6B65;&#x9A5F;&#x6240;&#x53D6;&#x5F97;&#x7684; <code>Default domain</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.05.57.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="reference">Reference</h2>
<ul>
<li><a href="https://learn.microsoft.com/zh-tw/azure/app-service/app-service-key-vault-references?tabs=azure-cli#source-app-settings-from-key-vault">https://learn.microsoft.com/zh-tw/azure/app-service/app-service-key-vault-references?tabs=azure-cli#source-app-settings-from-key-vault</a></li>
</ul>
<h2 id="sample-code">Sample Code</h2>
<ul>
<li><a href="https://github.com/ArcherHuang/Azure-App-Service-Key-Vault">https://github.com/ArcherHuang/Azure-App-Service-Key-Vault</a></li>
</ul>
<h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/08/buy-me-a-coffee-2.png" class="kg-image" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; Vault access policy &#x9023;&#x7D50; ( Node.js )" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】設定 Azure App Service 的 Configuration 與 Azure Key Vault 透過 RBAC 連結 ( Python )]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB; Azure App Service</li>
<li>&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</li>
<li>&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration</li>
<li>&#x90E8;&#x7F72; Python &#x7A0B;&#x5F0F;&#x5230; Azure App</li></ul>]]></description><link>https://learningsky.io/linking-azure-app-service-configuration-with-azure-key-vault-rbac-python/</link><guid isPermaLink="false">64cb0dd72099ca142fa4e20f</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><category><![CDATA[Front-end & Back-end & Programming Language]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Thu, 03 Aug 2023 02:47:13 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1595267688272-883f691e4af8?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDl8fE5ldGhlcmxhbmRzfGVufDB8fHx8MTY5MTAzMDE2M3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB; Azure App Service</li>
<li>&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</li>
<li>&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration</li>
<li>&#x90E8;&#x7F72; Python &#x7A0B;&#x5F0F;&#x5230; Azure App Service</li>
<li>&#x6E2C;&#x8A66;&#x8207;&#x9A57;&#x8B49;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%AD%B8%E7%BF%92%E7%9B%AE%E6%A8%99">&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</h2>
<ul>
<li>&#x5982;&#x4F55;&#x5728; <code>Azure App Service</code> &#x4E2D;&#x7684; <code>Configuration</code> &#x900F;&#x904E; <code>Azure role-based access control ( RBAC )</code> &#x8B80;&#x53D6; <code>Azure Key Vault</code> &#x8CC7;&#x8A0A;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;</li>
<li>&#x5DF2;&#x65BC;&#x96FB;&#x8166;&#x7AEF;&#x5B89;&#x88DD; IDE&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; Visual Studio Code ( VScode )
<ul>
<li><a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC; VScode &#x5B89;&#x88DD; Azure App Service Extension
<ul>
<li><a href="https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice">https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC; VScode &#x767B;&#x5165;&#x5230; Azure</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E6%9C%8D%E5%8B%99%E6%89%80%E4%BD%BF%E7%94%A8%E7%9A%84%E5%90%8D%E7%A8%B1">&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</h2>
<table>
<thead>
<tr>
<th style="text-align:center">&#x5C6C;&#x6027;</th>
<th style="text-align:center">&#x540D;&#x7A31;</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">Resource group</td>
<td style="text-align:center">app-secret-rg</td>
</tr>
<tr>
<td style="text-align:center">Azure App Service</td>
<td style="text-align:center">app-sample168</td>
</tr>
<tr>
<td style="text-align:center">Azure Key Vault</td>
<td style="text-align:center">secret-sample168</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-azure-app-service">&#x5EFA;&#x7ACB; Azure App Service</h2>
<img src="https://images.unsplash.com/photo-1595267688272-883f691e4af8?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDl8fE5ldGhlcmxhbmRzfGVufDB8fHx8MTY5MTAzMDE2M3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )"><p>Step 1. &#x65BC; <code>Azure Portal</code> &#x4E2D;&#x7684;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>App Service</code> &gt; &#x9EDE;&#x9078; <code>App Services</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.14.31.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 2. &#x9EDE;&#x9078;&#x5DE6;&#x4E0A;&#x89D2; <code>+ Create</code> &#x6309;&#x9215;&#x4E2D;&#x7684; <code>+ Web App</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.17.24.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 3. &#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Publish</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Code</code>&#x3002;</li>
<li><code>Runtime stack</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Python</code>&#x3002;</li>
<li><code>Region</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x670D;&#x52D9;&#x7684;&#x6240;&#x5728;&#x4F4D;&#x7F6E;&#x3002;</li>
<li><code>Linux Plan</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684; Plan&#x3002;</li>
<li><code>Pricing Plan</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x898F;&#x683C;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Review + Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.21.44-1.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.27.05.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 4. &#x78BA;&#x8A8D;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x78BA;&#x8A8D;&#x5B8C;&#x6210;&#x5F8C;&#x8ACB;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.27.46.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 5. &#x5EFA;&#x7ACB;&#x904E;&#x7A0B;&#x4E2D;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.37.17.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 6. &#x5EFA;&#x7ACB;&#x5B8C;&#x6210;&#xFF0C;&#x9EDE;&#x9078; <code>Go to resource</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.38.24.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 7. &#x555F;&#x7528; Managed identity</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Identity</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>On</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.41.17.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Save</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.42.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Yes</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.44.04.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E8%88%87%E8%A8%AD%E5%AE%9A-azure-key-vault">&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</h2>
<p>Step 1. &#x65BC; <code>Azure Portal</code> &#x4E2D;&#x7684;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>Key Vault</code> &gt; &#x9EDE;&#x9078; <code>Key Vaults</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.46.55.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 2. &#x9EDE;&#x9078;&#x5DE6;&#x4E0A;&#x89D2; <code>+ Create</code> &#x6309;&#x9215;&#x4E2D;&#x7684; <code>+ Web App</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.48.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 3. &#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Key vault name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Region</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x670D;&#x52D9;&#x7684;&#x6240;&#x5728;&#x4F4D;&#x7F6E;&#x3002;</li>
<li><code>Pricing tier</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x898F;&#x683C;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Review + Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.50.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.52.50.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 4. &#x78BA;&#x8A8D;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x78BA;&#x8A8D;&#x5B8C;&#x6210;&#x5F8C;&#x8ACB;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.54.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 5. &#x5EFA;&#x7ACB;&#x904E;&#x7A0B;&#x4E2D;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.55.23.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 6. &#x5EFA;&#x7ACB;&#x5B8C;&#x6210;&#xFF0C;&#x9EDE;&#x9078; <code>Go to resource</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.56.10.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 7. &#x8A2D;&#x5B9A;&#x7D66; App Service &#x7684;&#x5B58;&#x53D6;&#x6B0A;&#x9650;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Access configuration</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Go to access control (IAM)</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.59.12.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Add</code> &#x4E2D;&#x7684; <code>Add role assignment</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.02.19.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Key Vault Secrets User</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Next</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.04.39.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Managed identity</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ Select members</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.06.34.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li><code>Managed identity</code> &#x6B04;&#x4F4D;&#x9078;&#x64C7; <code>App Service</code>&#x3001;<code>Select</code> &#x6B04;&#x4F4D;&#x9078;&#x64C7;&#x6240;&#x5EFA;&#x7ACB;&#x7684; App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> )</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.08.05.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Select</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.11.00.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Review + assign</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.12.49.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Review + assign</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.14.31.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 8. &#x8A2D;&#x5B9A;&#x7BA1;&#x7406; Secrets &#x7684; User &#x4E4B;&#x5B58;&#x53D6;&#x6B0A;&#x9650;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Add</code> &#x4E2D;&#x7684; <code>Add role assignment</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.02.19.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Key Vault Secrets Officer</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Next</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.18.37.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>User, group, or service principal</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ Select members</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.22.13.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7;&#x6240;&#x8981;&#x7BA1;&#x7406; Secrets &#x7684;&#x4F7F;&#x7528;&#x8005;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.23.49.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Select</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.25.11.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Review + assign</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.26.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Review + assign</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.27.45.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 9. &#x8A2D;&#x5B9A; Secret</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Secrets</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>+ Generate/Import</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.30.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165; Secret &#x8CC7;&#x8A0A;
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>db-connection-string</code></li>
<li><code>Secret value</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>test_from_web</code></li>
<li>&#x7576;&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x65B9;&#x7684; <code>Create</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.33.31.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.34.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 10. &#x53D6;&#x5F97; <code>CURRENT VERSION</code> &#x8207; <code>Secret Identifier</code></p>
<ul>
<li>&#x9EDE;&#x9078;&#x6240;&#x5EFA;&#x7ACB;&#x7684; <code>db-connection-string</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.36.25.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x53D6;&#x5F97; <code>CURRENT VERSION</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.37.13.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x53D6;&#x5F97; <code>Secret Identifier</code>
<ul>
<li>&#x9EDE;&#x9078;&#x51FA;&#x73FE;&#x7684; CURRENT VERSION</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.37.13.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.38.55.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E8%A8%AD%E5%AE%9A-azure-app-service-%E7%9A%84-configuration">&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration</h2>
<p>Step 1. &#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB;&#x7684; Azure App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> ) &gt; &#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Configuration</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ New application setting</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.42.04.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 2. &#x8A2D;&#x5B9A; setting &#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8F38;&#x5165; <code>DB_CONNECTION_STRING</code></li>
<li><code>Value</code> &#x6B04;&#x4F4D;&#x8F38;&#x5165; <code>@Microsoft.KeyVault(SecretUri=Value_From_Secret_Identifier)</code>&#xFF0C;&#x8ACB;&#x4FEE;&#x6539; <code>Value_From_Secret_Identifier</code> &#x70BA; <code>&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</code> &#x6BB5;&#x843D; <code>Step 10</code> &#x6240;&#x53D6;&#x5F97;&#x7684; <code>Secret Identifier</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>OK</code></li>
<li>&#x329F; <code>@Microsoft.KeyVault(referenceString)</code> &#x4E2D;&#x7684; <code>referenceString</code> &#x7684;&#x683C;&#x5F0F;&#x53EF;&#x70BA;&#x4EE5;&#x4E0B;&#x5169;&#x7A2E;&#xFF1A;</li>
</ul>
</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">referenceString</th>
<th style="text-align:center">&#x8AAA;&#x660E;</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">SecretUri= secretUri</td>
<td style="text-align:center">SecretUri &#x70BA; Secret &#x7684;&#x5B8C;&#x6574; URI &#x6216;&#x9078;&#x64C7;&#x6027;&#x5730;&#x5305;&#x542B;&#x7248;&#x672C;&#xFF0C;&#x4F8B;&#x5982; <a href="https://myvault.vault.azure.net/secrets/mysecret/">https://myvault.vault.azure.net/secrets/mysecret/</a>  &#x6216; <a href="https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931">https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931</a></td>
</tr>
<tr>
<td style="text-align:center">VaultName= vaultName ;SecretName= secretName ;SecretVersion= secretVersion</td>
<td style="text-align:center">VaultName &#x662F;&#x5FC5;&#x8981;&#x7684;&#xFF0C;&#x800C;&#x4E14;&#x662F;&#x4FDD;&#x5B58;&#x5EAB;&#x540D;&#x7A31;&#x3002; <br>SecretName &#x662F;&#x5FC5;&#x8981;&#x7684;&#xFF0C;&#x800C;&#x4E14;&#x662F;&#x79D8;&#x5BC6;&#x540D;&#x7A31;&#x3002; <br>SecretVersion &#x70BA;&#x9078;&#x64C7;&#x6027;&#xFF0C;&#x986F;&#x793A;&#x6642;&#x8868;&#x793A;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x79D8;&#x5BC6;&#x7248;&#x672C;&#x3002;</td>
</tr>
</tbody>
</table>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.49.47.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Save</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.51.40.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Continue</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.52.28.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%83%A8%E7%BD%B2-python-%E7%A8%8B%E5%BC%8F%E5%88%B0-azure-app-service">&#x90E8;&#x7F72; Python &#x7A0B;&#x5F0F;&#x5230; Azure App Service</h2>
<p>Step 1. &#x4E0B;&#x8F09;&#x7BC4;&#x4F8B;&#x7A0B;&#x5F0F;</p>
<ul>
<li><a href="https://github.com/ArcherHuang/Azure-App-Service-Key-Vault">https://github.com/ArcherHuang/Azure-App-Service-Key-Vault</a></li>
</ul>
<hr>
<p>Step 2. &#x90E8;&#x7F72; Python &#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>Python</code> &#x8CC7;&#x6599;&#x593E;&#x53F3;&#x9375; &gt; &#x9EDE;&#x9078; <code>Deploy to Web App...</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.31.38.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7;&#x6240;&#x5EFA;&#x7ACB;&#x7684; App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> )</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.32.11.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Deploy</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.33.04.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x90E8;&#x7F72;&#x904E;&#x7A0B;&#x4E2D;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.33.27.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<ul>
<li>&#x90E8;&#x7F72;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.34.23.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%B8%AC%E8%A9%A6%E8%88%87%E9%A9%97%E8%AD%89">&#x6E2C;&#x8A66;&#x8207;&#x9A57;&#x8B49;</h2>
<p>Step 1. &#x53D6;&#x5F97; App Service &#x7684; <code>Default domain</code></p>
<ul>
<li>&#x5230;&#x6240;&#x5EFA;&#x7ACB;&#x7684; App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> )</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/1.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<hr>
<p>Step 2. &#x958B;&#x555F;&#x6E2C;&#x8A66;&#x9801;&#x9762;</p>
<ul>
<li>&#x65BC;&#x700F;&#x89BD;&#x5668;&#x958B;&#x555F;&#x65B0;&#x7684;&#x9801;&#x7C64;&#xFF0C;&#x8F38;&#x5165; <code>https://Default-Domain/secret</code>&#xFF0C;&#x8ACB;&#x4FEE;&#x6539; <code>Default-Domain</code> &#x70BA;&#x4E0A;&#x6B65;&#x9A5F;&#x6240;&#x53D6;&#x5F97;&#x7684; <code>Default domain</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.05.57.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="reference">Reference</h2>
<ul>
<li><a href="https://learn.microsoft.com/zh-tw/azure/app-service/app-service-key-vault-references?tabs=azure-cli#source-app-settings-from-key-vault">https://learn.microsoft.com/zh-tw/azure/app-service/app-service-key-vault-references?tabs=azure-cli#source-app-settings-from-key-vault</a></li>
</ul>
<h2 id="sample-code">Sample Code</h2>
<ul>
<li><a href="https://github.com/ArcherHuang/Azure-App-Service-Key-Vault">https://github.com/ArcherHuang/Azure-App-Service-Key-Vault</a></li>
</ul>
<h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/08/buy-me-a-coffee.png" class="kg-image" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Python )" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item><item><title><![CDATA[【 Cloud 】設定 Azure App Service 的 Configuration 與 Azure Key Vault 透過 RBAC 連結 ( Node.js )]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB; Azure App Service</li>
<li>&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</li>
<li>&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration</li>
<li>&#x90E8;&#x7F72; Node.js &#x7A0B;&#x5F0F;&#x5230; Azure</li></ul>]]></description><link>https://learningsky.io/linking-azure-app-service-configuration-with-azure-key-vault-rbac-nodejs/</link><guid isPermaLink="false">64caeca62099ca142fa4e008</guid><category><![CDATA[AIoT & Cloud & Edge & Machine Learning]]></category><category><![CDATA[Front-end & Back-end & Programming Language]]></category><dc:creator><![CDATA[Archer]]></dc:creator><pubDate>Thu, 03 Aug 2023 02:45:09 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1533929736458-ca588d08c8be?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDR8fExvbmRvbnxlbnwwfHx8fDE2OTEwMzAyNjh8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E5%85%A7%E5%AE%B9">&#x5167;&#x5BB9;</h2>
<ul>
<li>&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</li>
<li>&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</li>
<li>&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</li>
<li>&#x5EFA;&#x7ACB; Azure App Service</li>
<li>&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</li>
<li>&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration</li>
<li>&#x90E8;&#x7F72; Node.js &#x7A0B;&#x5F0F;&#x5230; Azure App Service</li>
<li>&#x6E2C;&#x8A66;&#x8207;&#x9A57;&#x8B49;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%AD%B8%E7%BF%92%E7%9B%AE%E6%A8%99">&#x5B78;&#x7FD2;&#x76EE;&#x6A19;</h2>
<ul>
<li>&#x5982;&#x4F55;&#x5728; <code>Azure App Service</code> &#x4E2D;&#x7684; <code>Configuration</code> &#x900F;&#x904E; <code>Azure role-based access control ( RBAC )</code> &#x8B80;&#x53D6; <code>Azure Key Vault</code> &#x8CC7;&#x8A0A;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%89%8D%E7%BD%AE%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD">&#x524D;&#x7F6E;&#x6E96;&#x5099;&#x4F5C;&#x696D;</h2>
<ul>
<li>&#x5DF2;&#x5EFA;&#x7ACB; Azure &#x5E33;&#x865F;&#x4E26;&#x80FD;&#x6B63;&#x5E38;&#x767B;&#x5165;</li>
<li>&#x5DF2;&#x65BC;&#x96FB;&#x8166;&#x7AEF;&#x5B89;&#x88DD; IDE&#xFF0C;&#x672C;&#x7BC4;&#x4F8B;&#x4F7F;&#x7528; Visual Studio Code ( VScode )
<ul>
<li><a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC; VScode &#x5B89;&#x88DD; Azure App Service Extension
<ul>
<li><a href="https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice">https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice</a></li>
</ul>
</li>
<li>&#x5DF2;&#x65BC; VScode &#x767B;&#x5165;&#x5230; Azure</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E6%9C%8D%E5%8B%99%E6%89%80%E4%BD%BF%E7%94%A8%E7%9A%84%E5%90%8D%E7%A8%B1">&#x5EFA;&#x7ACB;&#x670D;&#x52D9;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x540D;&#x7A31;</h2>
<table>
<thead>
<tr>
<th style="text-align:center">&#x5C6C;&#x6027;</th>
<th style="text-align:center">&#x540D;&#x7A31;</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">Resource group</td>
<td style="text-align:center">app-secret-rg</td>
</tr>
<tr>
<td style="text-align:center">Azure App Service</td>
<td style="text-align:center">app-sample168</td>
</tr>
<tr>
<td style="text-align:center">Azure Key Vault</td>
<td style="text-align:center">secret-sample168</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B-azure-app-service">&#x5EFA;&#x7ACB; Azure App Service</h2>
<img src="https://images.unsplash.com/photo-1533929736458-ca588d08c8be?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDR8fExvbmRvbnxlbnwwfHx8fDE2OTEwMzAyNjh8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )"><p>Step 1. &#x65BC; <code>Azure Portal</code> &#x4E2D;&#x7684;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>App Service</code> &gt; &#x9EDE;&#x9078; <code>App Services</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.14.31.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x9EDE;&#x9078;&#x5DE6;&#x4E0A;&#x89D2; <code>+ Create</code> &#x6309;&#x9215;&#x4E2D;&#x7684; <code>+ Web App</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.17.24.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 3. &#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Publish</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Code</code>&#x3002;</li>
<li><code>Runtime stack</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7; <code>Node 18 LTS</code>&#x3002;</li>
<li><code>Region</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x670D;&#x52D9;&#x7684;&#x6240;&#x5728;&#x4F4D;&#x7F6E;&#x3002;</li>
<li><code>Linux Plan</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684; Plan&#x3002;</li>
<li><code>Pricing Plan</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x898F;&#x683C;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Review + Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.21.44-1.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.26.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 4. &#x78BA;&#x8A8D;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x78BA;&#x8A8D;&#x5B8C;&#x6210;&#x5F8C;&#x8ACB;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.27.45.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 5. &#x5EFA;&#x7ACB;&#x904E;&#x7A0B;&#x4E2D;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.37.17.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 6. &#x5EFA;&#x7ACB;&#x5B8C;&#x6210;&#xFF0C;&#x9EDE;&#x9078; <code>Go to resource</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.38.24.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 7. &#x555F;&#x7528; Managed identity</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Identity</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>On</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.41.17.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Save</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.42.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Yes</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.44.04.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E5%BB%BA%E7%AB%8B%E8%88%87%E8%A8%AD%E5%AE%9A-azure-key-vault">&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</h2>
<p>Step 1. &#x65BC; <code>Azure Portal</code> &#x4E2D;&#x7684;&#x4E0A;&#x65B9;&#x641C;&#x5C0B;&#x6846;&#x8F38;&#x5165; <code>Key Vault</code> &gt; &#x9EDE;&#x9078; <code>Key Vaults</code> &#x7684;&#x641C;&#x5C0B;&#x7D50;&#x679C;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.46.55.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x9EDE;&#x9078;&#x5DE6;&#x4E0A;&#x89D2; <code>+ Create</code> &#x6309;&#x9215;&#x4E2D;&#x7684; <code>+ Web App</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.48.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 3. &#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li><code>Resource group</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Key vault name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165;&#x552F;&#x4E00;&#x4E14;&#x53EF;&#x8B58;&#x5225;&#x7684;&#x540D;&#x7A31;&#x3002;</li>
<li><code>Region</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x670D;&#x52D9;&#x7684;&#x6240;&#x5728;&#x4F4D;&#x7F6E;&#x3002;</li>
<li><code>Pricing tier</code> &#x6B04;&#x4F4D;&#x8ACB;&#x9078;&#x64C7;&#x6240;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x898F;&#x683C;&#x3002;</li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Review + Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.50.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.52.50.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 4. &#x78BA;&#x8A8D;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x78BA;&#x8A8D;&#x5B8C;&#x6210;&#x5F8C;&#x8ACB;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x89D2;&#x7684; <code>Create</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.54.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 5. &#x5EFA;&#x7ACB;&#x904E;&#x7A0B;&#x4E2D;</p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.55.23.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 6. &#x5EFA;&#x7ACB;&#x5B8C;&#x6210;&#xFF0C;&#x9EDE;&#x9078; <code>Go to resource</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.56.10.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 7. &#x8A2D;&#x5B9A;&#x7D66; App Service &#x7684;&#x5B58;&#x53D6;&#x6B0A;&#x9650;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Access configuration</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Go to access control (IAM)</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---8.59.12.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Add</code> &#x4E2D;&#x7684; <code>Add role assignment</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.02.19.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Key Vault Secrets User</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Next</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.04.39.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Managed identity</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ Select members</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.06.34.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li><code>Managed identity</code> &#x6B04;&#x4F4D;&#x9078;&#x64C7; <code>App Service</code>&#x3001;<code>Select</code> &#x6B04;&#x4F4D;&#x9078;&#x64C7;&#x6240;&#x5EFA;&#x7ACB;&#x7684; App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> )</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.08.05.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Select</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.11.00.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Review + assign</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.12.49.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Review + assign</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.14.31.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 8. &#x8A2D;&#x5B9A;&#x7BA1;&#x7406; Secrets &#x7684; User &#x4E4B;&#x5B58;&#x53D6;&#x6B0A;&#x9650;</p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Add</code> &#x4E2D;&#x7684; <code>Add role assignment</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.02.19.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Key Vault Secrets Officer</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>Next</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.18.37.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>User, group, or service principal</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ Select members</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.22.13.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7;&#x6240;&#x8981;&#x7BA1;&#x7406; Secrets &#x7684;&#x4F7F;&#x7528;&#x8005;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.23.49.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Select</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.25.11.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Review + assign</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.26.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0B;&#x65B9;&#x7684; <code>Review + assign</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.27.45.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 9. &#x8A2D;&#x5B9A; Secret</p>
<ul>
<li>&#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Secrets</code> &gt; &#x518D;&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>+ Generate/Import</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.30.15.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x8F38;&#x5165; Secret &#x8CC7;&#x8A0A;
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>db-connection-string</code></li>
<li><code>Secret value</code> &#x6B04;&#x4F4D;&#x8ACB;&#x8F38;&#x5165; <code>test_from_web</code></li>
<li>&#x7576;&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078;&#x5DE6;&#x4E0B;&#x65B9;&#x7684; <code>Create</code></li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.33.31.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.34.35.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 10. &#x53D6;&#x5F97; <code>CURRENT VERSION</code> &#x8207; <code>Secret Identifier</code></p>
<ul>
<li>&#x9EDE;&#x9078;&#x6240;&#x5EFA;&#x7ACB;&#x7684; <code>db-connection-string</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.36.25.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x53D6;&#x5F97; <code>CURRENT VERSION</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.37.13.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x53D6;&#x5F97; <code>Secret Identifier</code>
<ul>
<li>&#x9EDE;&#x9078;&#x51FA;&#x73FE;&#x7684; CURRENT VERSION</li>
</ul>
</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.37.13.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.38.55.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E8%A8%AD%E5%AE%9A-azure-app-service-%E7%9A%84-configuration">&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration</h2>
<p>Step 1. &#x56DE;&#x5230;&#x6240;&#x5EFA;&#x7ACB;&#x7684; Azure App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> ) &gt; &#x9EDE;&#x9078;&#x5DE6;&#x5074;&#x7684; <code>Configuration</code> &gt; &#x518D;&#x9EDE;&#x9078; <code>+ New application setting</code></p>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.42.04.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x8A2D;&#x5B9A; setting &#x8CC7;&#x8A0A;</p>
<ul>
<li>&#x8F38;&#x5165;&#x76F8;&#x95DC;&#x8CC7;&#x8A0A;
<ul>
<li><code>Name</code> &#x6B04;&#x4F4D;&#x8F38;&#x5165; <code>DB_CONNECTION_STRING</code></li>
<li><code>Value</code> &#x6B04;&#x4F4D;&#x8F38;&#x5165; <code>@Microsoft.KeyVault(SecretUri=Value_From_Secret_Identifier)</code>&#xFF0C;&#x8ACB;&#x4FEE;&#x6539; <code>Value_From_Secret_Identifier</code> &#x70BA; <code>&#x5EFA;&#x7ACB;&#x8207;&#x8A2D;&#x5B9A; Azure Key Vault</code> &#x6BB5;&#x843D; <code>Step 10</code> &#x6240;&#x53D6;&#x5F97;&#x7684; <code>Secret Identifier</code></li>
<li>&#x4EE5;&#x4E0A;&#x8CC7;&#x8A0A;&#x8F38;&#x5165;&#x5B8C;&#x6210;&#x5F8C;&#x9EDE;&#x9078; <code>OK</code></li>
<li>&#x329F; <code>@Microsoft.KeyVault(referenceString)</code> &#x4E2D;&#x7684; <code>referenceString</code> &#x7684;&#x683C;&#x5F0F;&#x53EF;&#x70BA;&#x4EE5;&#x4E0B;&#x5169;&#x7A2E;&#xFF1A;</li>
</ul>
</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">referenceString</th>
<th style="text-align:center">&#x8AAA;&#x660E;</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">SecretUri= secretUri</td>
<td style="text-align:center">SecretUri &#x70BA; Secret &#x7684;&#x5B8C;&#x6574; URI &#x6216;&#x9078;&#x64C7;&#x6027;&#x5730;&#x5305;&#x542B;&#x7248;&#x672C;&#xFF0C;&#x4F8B;&#x5982; <a href="https://myvault.vault.azure.net/secrets/mysecret/">https://myvault.vault.azure.net/secrets/mysecret/</a>  &#x6216; <a href="https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931">https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931</a></td>
</tr>
<tr>
<td style="text-align:center">VaultName= vaultName ;SecretName= secretName ;SecretVersion= secretVersion</td>
<td style="text-align:center">VaultName &#x662F;&#x5FC5;&#x8981;&#x7684;&#xFF0C;&#x800C;&#x4E14;&#x662F;&#x4FDD;&#x5B58;&#x5EAB;&#x540D;&#x7A31;&#x3002; <br>SecretName &#x662F;&#x5FC5;&#x8981;&#x7684;&#xFF0C;&#x800C;&#x4E14;&#x662F;&#x79D8;&#x5BC6;&#x540D;&#x7A31;&#x3002; <br>SecretVersion &#x70BA;&#x9078;&#x64C7;&#x6027;&#xFF0C;&#x986F;&#x793A;&#x6642;&#x8868;&#x793A;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x79D8;&#x5BC6;&#x7248;&#x672C;&#x3002;</td>
</tr>
</tbody>
</table>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.49.47.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078;&#x4E0A;&#x65B9;&#x7684; <code>Save</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.51.40.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Continue</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.52.28.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E9%83%A8%E7%BD%B2-nodejs-%E7%A8%8B%E5%BC%8F%E5%88%B0-azure-app-service">&#x90E8;&#x7F72; Node.js &#x7A0B;&#x5F0F;&#x5230; Azure App Service</h2>
<p>Step 1. &#x4E0B;&#x8F09;&#x7BC4;&#x4F8B;&#x7A0B;&#x5F0F;</p>
<ul>
<li><a href="https://github.com/ArcherHuang/Azure-App-Service-Key-Vault">https://github.com/ArcherHuang/Azure-App-Service-Key-Vault</a></li>
</ul>
<hr>
<p>Step 2. &#x90E8;&#x7F72; Node.js &#x7A0B;&#x5F0F;</p>
<ul>
<li>&#x9EDE;&#x9078; <code>Nodejs</code> &#x8CC7;&#x6599;&#x593E;&#x53F3;&#x9375; &gt; &#x9EDE;&#x9078; <code>Deploy to Web App...</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.57.08.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9078;&#x64C7;&#x6240;&#x5EFA;&#x7ACB;&#x7684; App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> )</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.58.10.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x9EDE;&#x9078; <code>Deploy</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---9.59.38.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x90E8;&#x7F72;&#x904E;&#x7A0B;&#x4E2D;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.00.17.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<ul>
<li>&#x90E8;&#x7F72;&#x5B8C;&#x6210;</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.00.48.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E6%B8%AC%E8%A9%A6%E8%88%87%E9%A9%97%E8%AD%89">&#x6E2C;&#x8A66;&#x8207;&#x9A57;&#x8B49;</h2>
<p>Step 1. &#x53D6;&#x5F97; App Service &#x7684; <code>Default domain</code></p>
<ul>
<li>&#x5230;&#x6240;&#x5EFA;&#x7ACB;&#x7684; App Service ( &#x672C;&#x7BC4;&#x4F8B;&#x70BA; <code>app-sample168</code> )</li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/1.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<hr>
<p>Step 2. &#x958B;&#x555F;&#x6E2C;&#x8A66;&#x9801;&#x9762;</p>
<ul>
<li>&#x65BC;&#x700F;&#x89BD;&#x5668;&#x958B;&#x555F;&#x65B0;&#x7684;&#x9801;&#x7C64;&#xFF0C;&#x8F38;&#x5165; <code>https://Default-Domain/secret</code>&#xFF0C;&#x8ACB;&#x4FEE;&#x6539; <code>Default-Domain</code> &#x70BA;&#x4E0A;&#x6B65;&#x9A5F;&#x6240;&#x53D6;&#x5F97;&#x7684; <code>Default domain</code></li>
</ul>
<p><img src="https://s3.amazonaws.com/learningsky/2023/08/---2023-08-03---10.05.57.png" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="reference">Reference</h2>
<ul>
<li><a href="https://learn.microsoft.com/zh-tw/azure/app-service/app-service-key-vault-references?tabs=azure-cli#source-app-settings-from-key-vault">https://learn.microsoft.com/zh-tw/azure/app-service/app-service-key-vault-references?tabs=azure-cli#source-app-settings-from-key-vault</a></li>
</ul>
<h2 id="sample-code">Sample Code</h2>
<ul>
<li><a href="https://github.com/ArcherHuang/Azure-App-Service-Key-Vault">https://github.com/ArcherHuang/Azure-App-Service-Key-Vault</a></li>
</ul>
<h2 id="github">GitHub</h2>
<ul>
<li><a href="https://github.com/archerhuang">ArcherHuang @ GitHub</a></li>
</ul>
<h2 id="list-of-blogs">List of blogs</h2>
<ul>
<li><a href="https://learningsky.io/author/archer/">https://learningsky.io/author/archer/</a></li>
<li><a href="https://medium.com/@mmosconii">https://medium.com/@mmosconii</a></li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><a href="https://www.buymeacoffee.com/mmosconii"><img src="https://s3.amazonaws.com/learningsky/2023/08/buy-me-a-coffee-1.png" class="kg-image" alt="&#x3010; Cloud &#x3011;&#x8A2D;&#x5B9A; Azure App Service &#x7684; Configuration &#x8207; Azure Key Vault &#x900F;&#x904E; RBAC &#x9023;&#x7D50; ( Node.js )" loading="lazy" width="545" height="153"></a></figure>]]></content:encoded></item></channel></rss>