Π·Π΅Ρ€ΠΊΠ°Π»ΠΎ ΠΈΠ·
1
0
Π€ΠΎΡ€ΠΊΠ½ΡƒΡ‚ΡŒ 0

Deploying to gh-pages from @ c9fda5ddaf155d6274826332f617541475ca68b4 πŸš€

This commit is contained in:
erjuntun75 2022-06-08 15:03:05 +00:00
Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ e6253b1a69
ΠšΠΎΠΌΠΌΠΈΡ‚ ccba915713
663 ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²: 1403 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΉ ΠΈ 1331 ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΉ

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ»

@ -1 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{450:function(t,e,r){"use strict";r.r(e);var a=r(69),o=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),r("p",[t._v("πŸ’‘ Learn more : "),r("a",{attrs:{href:"https://docs.microsoft.com/azure/azure-portal?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Portal Documentation"),r("OutboundLink")],1),t._v(".")]),t._v(" "),r("p",[t._v("πŸ“Ί Watch the video : "),r("a",{attrs:{href:"https://www.youtube.com/watch?v=A0uXwdLDzf4&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=1?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("How to use keyboard shortcuts in the Azure portal"),r("OutboundLink")],1),t._v(".")])]),t._v(" "),r("h3",{attrs:{id:"use-keyboard-shortcuts-in-the-azure-portal"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#use-keyboard-shortcuts-in-the-azure-portal"}},[t._v("#")]),t._v(" Use Keyboard Shortcuts in the Azure Portal")]),t._v(" "),r("h4",{attrs:{id:"azure-portal-keyboard-shortcuts"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#azure-portal-keyboard-shortcuts"}},[t._v("#")]),t._v(" Azure Portal Keyboard Shortcuts")]),t._v(" "),r("p",[t._v("Developers love keyboard shortcuts and there are plenty keyboard shortcuts in the Azure platform. You can see a list by going to Help and then Keyboard Shortcuts in the portal as shown below.")]),t._v(" "),r("img",{attrs:{src:t.$withBase("/files/azuretip1.gif")}}),t._v(" "),r("p",[t._v("You will see that you have the following keyboard shortcuts available:")]),t._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",[r("code",[t._v("Keyboard shortcuts\n\nACTIONS\n\nCTRL+/\tSearch blade menu items\nG+/ \tSearch resources (global)\nG+N \tCreate a new resource\nG+B \tOpen the 'More services' pane\n\nNAVIGATION\n\nG+, \tMove focus to command bar\nG+.\t\tToggle focus between top bar and side bar\n\nGO TO\n\nG+D \t Go to dashboard\nG+A \t Go to all resources\nG+R \t Go to resource groups\nG+number Open the item pinned to the favorites bar at this position\n")])])])])}),[],!1,null,null,null);e.default=o.exports}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{452:function(t,e,r){"use strict";r.r(e);var a=r(69),o=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),r("p",[t._v("πŸ’‘ Learn more : "),r("a",{attrs:{href:"https://docs.microsoft.com/azure/azure-portal?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Portal Documentation"),r("OutboundLink")],1),t._v(".")]),t._v(" "),r("p",[t._v("πŸ“Ί Watch the video : "),r("a",{attrs:{href:"https://www.youtube.com/watch?v=A0uXwdLDzf4&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=1?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("How to use keyboard shortcuts in the Azure portal"),r("OutboundLink")],1),t._v(".")])]),t._v(" "),r("h3",{attrs:{id:"use-keyboard-shortcuts-in-the-azure-portal"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#use-keyboard-shortcuts-in-the-azure-portal"}},[t._v("#")]),t._v(" Use Keyboard Shortcuts in the Azure Portal")]),t._v(" "),r("h4",{attrs:{id:"azure-portal-keyboard-shortcuts"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#azure-portal-keyboard-shortcuts"}},[t._v("#")]),t._v(" Azure Portal Keyboard Shortcuts")]),t._v(" "),r("p",[t._v("Developers love keyboard shortcuts and there are plenty keyboard shortcuts in the Azure platform. You can see a list by going to Help and then Keyboard Shortcuts in the portal as shown below.")]),t._v(" "),r("img",{attrs:{src:t.$withBase("/files/azuretip1.gif")}}),t._v(" "),r("p",[t._v("You will see that you have the following keyboard shortcuts available:")]),t._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",[r("code",[t._v("Keyboard shortcuts\n\nACTIONS\n\nCTRL+/\tSearch blade menu items\nG+/ \tSearch resources (global)\nG+N \tCreate a new resource\nG+B \tOpen the 'More services' pane\n\nNAVIGATION\n\nG+, \tMove focus to command bar\nG+.\t\tToggle focus between top bar and side bar\n\nGO TO\n\nG+D \t Go to dashboard\nG+A \t Go to all resources\nG+R \t Go to resource groups\nG+number Open the item pinned to the favorites bar at this position\n")])])])])}),[],!1,null,null,null);e.default=o.exports}}]);

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ»

@ -1 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{451:function(t,e,a){"use strict";a.r(e);var n=a(69),o=Object(n.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("πŸ’‘ Learn more : "),a("a",{attrs:{href:"https://docs.microsoft.com/azure/virtual-machines/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Virtual Machines"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("p",[t._v("πŸ“Ί Watch the video : "),a("a",{attrs:{href:"https://www.youtube.com/watch?v=7pmn6luCwQ4&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=8?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("How to quickly connect to a Linux VM with SSH"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("h3",{attrs:{id:"quickly-connect-to-a-linux-vm-with-ssh"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#quickly-connect-to-a-linux-vm-with-ssh"}},[t._v("#")]),t._v(" Quickly Connect to a Linux VM with SSH")]),t._v(" "),a("p",[t._v('You can quickly connect to an existing Linux Virtual Machine by navigating to the "Virtual Machine" blade in the Azure Portal. Once you are on the page, click the "Connect" button at the top of the page. It will provide a command that you can copy and paste into BASH or anywhere that supports SSH. After you paste the command, then it will connect to your Linux Virtual Machine. Provide your username and password and you are logged into your new Virtual Machine. In the example below, I logged into my Ubuntu Linux VM.')]),t._v(" "),a("img",{attrs:{src:t.$withBase("/files/azuretip10.gif")}})])}),[],!1,null,null,null);e.default=o.exports}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{453:function(t,e,a){"use strict";a.r(e);var n=a(69),o=Object(n.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("πŸ’‘ Learn more : "),a("a",{attrs:{href:"https://docs.microsoft.com/azure/virtual-machines/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Virtual Machines"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("p",[t._v("πŸ“Ί Watch the video : "),a("a",{attrs:{href:"https://www.youtube.com/watch?v=7pmn6luCwQ4&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=8?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("How to quickly connect to a Linux VM with SSH"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("h3",{attrs:{id:"quickly-connect-to-a-linux-vm-with-ssh"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#quickly-connect-to-a-linux-vm-with-ssh"}},[t._v("#")]),t._v(" Quickly Connect to a Linux VM with SSH")]),t._v(" "),a("p",[t._v('You can quickly connect to an existing Linux Virtual Machine by navigating to the "Virtual Machine" blade in the Azure Portal. Once you are on the page, click the "Connect" button at the top of the page. It will provide a command that you can copy and paste into BASH or anywhere that supports SSH. After you paste the command, then it will connect to your Linux Virtual Machine. Provide your username and password and you are logged into your new Virtual Machine. In the example below, I logged into my Ubuntu Linux VM.')]),t._v(" "),a("img",{attrs:{src:t.$withBase("/files/azuretip10.gif")}})])}),[],!1,null,null,null);e.default=o.exports}}]);

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ»

@ -1 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[120],{685:function(e,t,a){"use strict";a.r(t);var s=a(69),o=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("πŸ’‘ Learn more : "),a("a",{attrs:{href:"https://docs.microsoft.com/azure/app-service?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("App Service Documentation"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("πŸ“Ί Watch the video : "),a("a",{attrs:{href:"https://www.youtube.com/watch?v=Wy97gLq7xZU&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=17?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to Work with Extensions in Azure App Service"),a("OutboundLink")],1),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"adding-extensions-to-web-apps-in-azure-app-service"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-extensions-to-web-apps-in-azure-app-service"}},[e._v("#")]),e._v(" Adding Extensions to Web Apps in Azure App Service")]),e._v(" "),a("p",[e._v("We've recently created a "),a("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip19.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("web app"),a("OutboundLink")],1),e._v(" and uploaded it to Azure App Service. We also took a look at "),a("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip20.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("multiple ways"),a("OutboundLink")],1),e._v(" to examine those files through the Azure portal interface. In this post, we'll take a look at extensions that you can add to Azure app services to add additional functionality.")]),e._v(" "),a("h5",{attrs:{id:"back-in-the-azure-portal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#back-in-the-azure-portal"}},[e._v("#")]),e._v(" Back in the Azure Portal")]),e._v(" "),a("p",[e._v("I can go to the Azure Portal and select my App Service and click on "),a("strong",[e._v("Extensions")]),e._v(" under "),a("strong",[e._v("Development Tools")]),e._v(" to get started. Then click on the "),a("strong",[e._v("Add")]),e._v(" button.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/webappext1.png")}}),e._v(" "),a("p",[e._v("In the choose extension screen, you have a vast variety of extensions to select from. Some are from MS and others are from independent authors.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/webappext2.gif")}}),e._v(" "),a("p",[e._v("Select "),a("code",[e._v("Azure Web Apps Disk Usage")]),e._v(" by Rajrang Rapuri and agree to the terms and press OK. It should only take a moment to install and then navigate back to Extensions.")]),e._v(" "),a("p",[a("strong",[e._v("What does this thing do?")]),e._v(" Azure Web Apps Disk Usage is a web based File Explorer which lists all folders for your website with size. It provides detailed information about files and folders name, size, number of files, last date modified and percentage of disk usage. This tool provides a tree like folder view for easier parsing.")]),e._v(" "),a("p",[e._v("If you right-click on the item that you just installed, then you'll see that you can pin, browse, update or delete it.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/webappext3.png")}}),e._v(" "),a("p",[e._v("We'll select browse and it will redirect us to the extension that we installed.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/webappext4.png")}}),e._v(" "),a("p",[e._v("Cool! We're able to see the extension working.")]),e._v(" "),a("h5",{attrs:{id:"exploring-the-extension-in-the-file-system"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#exploring-the-extension-in-the-file-system"}},[e._v("#")]),e._v(" Exploring the Extension in the File System")]),e._v(" "),a("p",[e._v("You may be wondering what happened when we clicked on the Extension. Well, if we click on the "),a("em",[e._v("Kudu Advanced Tools")]),e._v("* option in the Azure Portal, then navigate inside "),a("code",[e._v("SiteExtensions")]),e._v(" and then "),a("code",[e._v("DiskUsage")]),e._v(", then we'll see that here is where the extension was installed into.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/webappext5.png")}}),e._v(" "),a("p",[a("strong",[e._v("Source Code")]),e._v(" The source code to the extension that we installed can be found "),a("a",{attrs:{href:"https://github.com/rajkumar-rangaraj/MAWSFileExplorer?WT.mc_id=github-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=o.exports}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([[120],{573:function(e,t,a){"use strict";a.r(t);var s=a(69),o=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("πŸ’‘ Learn more : "),a("a",{attrs:{href:"https://docs.microsoft.com/azure/app-service?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("App Service Documentation"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("πŸ“Ί Watch the video : "),a("a",{attrs:{href:"https://www.youtube.com/watch?v=Wy97gLq7xZU&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=17?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to Work with Extensions in Azure App Service"),a("OutboundLink")],1),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"adding-extensions-to-web-apps-in-azure-app-service"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-extensions-to-web-apps-in-azure-app-service"}},[e._v("#")]),e._v(" Adding Extensions to Web Apps in Azure App Service")]),e._v(" "),a("p",[e._v("We've recently created a "),a("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip19.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("web app"),a("OutboundLink")],1),e._v(" and uploaded it to Azure App Service. We also took a look at "),a("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip20.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("multiple ways"),a("OutboundLink")],1),e._v(" to examine those files through the Azure portal interface. In this post, we'll take a look at extensions that you can add to Azure app services to add additional functionality.")]),e._v(" "),a("h5",{attrs:{id:"back-in-the-azure-portal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#back-in-the-azure-portal"}},[e._v("#")]),e._v(" Back in the Azure Portal")]),e._v(" "),a("p",[e._v("I can go to the Azure Portal and select my App Service and click on "),a("strong",[e._v("Extensions")]),e._v(" under "),a("strong",[e._v("Development Tools")]),e._v(" to get started. Then click on the "),a("strong",[e._v("Add")]),e._v(" button.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/webappext1.png")}}),e._v(" "),a("p",[e._v("In the choose extension screen, you have a vast variety of extensions to select from. Some are from MS and others are from independent authors.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/webappext2.gif")}}),e._v(" "),a("p",[e._v("Select "),a("code",[e._v("Azure Web Apps Disk Usage")]),e._v(" by Rajrang Rapuri and agree to the terms and press OK. It should only take a moment to install and then navigate back to Extensions.")]),e._v(" "),a("p",[a("strong",[e._v("What does this thing do?")]),e._v(" Azure Web Apps Disk Usage is a web based File Explorer which lists all folders for your website with size. It provides detailed information about files and folders name, size, number of files, last date modified and percentage of disk usage. This tool provides a tree like folder view for easier parsing.")]),e._v(" "),a("p",[e._v("If you right-click on the item that you just installed, then you'll see that you can pin, browse, update or delete it.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/webappext3.png")}}),e._v(" "),a("p",[e._v("We'll select browse and it will redirect us to the extension that we installed.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/webappext4.png")}}),e._v(" "),a("p",[e._v("Cool! We're able to see the extension working.")]),e._v(" "),a("h5",{attrs:{id:"exploring-the-extension-in-the-file-system"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#exploring-the-extension-in-the-file-system"}},[e._v("#")]),e._v(" Exploring the Extension in the File System")]),e._v(" "),a("p",[e._v("You may be wondering what happened when we clicked on the Extension. Well, if we click on the "),a("em",[e._v("Kudu Advanced Tools")]),e._v("* option in the Azure Portal, then navigate inside "),a("code",[e._v("SiteExtensions")]),e._v(" and then "),a("code",[e._v("DiskUsage")]),e._v(", then we'll see that here is where the extension was installed into.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/webappext5.png")}}),e._v(" "),a("p",[a("strong",[e._v("Source Code")]),e._v(" The source code to the extension that we installed can be found "),a("a",{attrs:{href:"https://github.com/rajkumar-rangaraj/MAWSFileExplorer?WT.mc_id=github-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=o.exports}}]);

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ»

@ -1 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[123],{559:function(e,t,o){"use strict";o.r(t);var r=o(69),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("div",{staticClass:"custom-block tip"},[o("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),o("p",[e._v("πŸ‘Š that ⭐️ button on the official "),o("a",{attrs:{href:"https://github.com/Microsoft/AzureTipsAndTricks/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub repo"),o("OutboundLink")],1),e._v(" to stay up to date.")]),e._v(" "),o("p",[e._v("πŸ’‘ Learn more : "),o("a",{attrs:{href:"https://azure.microsoft.com/en-us/blog/soft-delete-for-azure-storage-blobs-ga?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Soft delete for Azure Storage"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("p",[e._v("This post was brought to you by "),o("strong",[o("a",{attrs:{href:"https://twitter.com/kumarallamraju",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kumar Allamraju"),o("OutboundLink")],1)]),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"how-to-restore-accidental-deletion-of-your-azure-storage-blobs"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#how-to-restore-accidental-deletion-of-your-azure-storage-blobs"}},[e._v("#")]),e._v(" How to restore accidental deletion of your Azure Storage Blobs")]),e._v(" "),o("h4",{attrs:{id:"soft-delete-for-azure-storage-blobs"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#soft-delete-for-azure-storage-blobs"}},[e._v("#")]),e._v(" Soft delete for Azure Storage Blobs")]),e._v(" "),o("p",[e._v("Azure Storage offers soft delete for blob objects so that you can more easily recover your data when it is erroneously modified or deleted by an application or other storage account user. When turned on, soft delete enables you to save and recover your data where blobs or blob snapshots are deleted. This protection extends to blob data that is erased as the result of an overwrite.")]),e._v(" "),o("h4",{attrs:{id:"enable-soft-delete-feature-in-azure-storage"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#enable-soft-delete-feature-in-azure-storage"}},[e._v("#")]),e._v(" Enable Soft delete feature in Azure Storage")]),e._v(" "),o("ol",[o("li",[o("p",[e._v("Create a Storage Container inside the Storage account.")])]),e._v(" "),o("li",[o("p",[e._v("Go to Soft delete under Blob service section")])])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd-1.jpg")}}),e._v(" "),o("ol",{attrs:{start:"3"}},[o("li",[e._v('Enable the "Soft delete" option. By default it\'s disabled and the retention policy is 7 days. You can increase the retention period up to 365 days.')])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd1.jpg")}}),e._v(" "),o("ol",{attrs:{start:"4"}},[o("li",[e._v("Go back to your storage container and upload some files.")])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd2.jpg")}}),e._v(" "),o("ol",{attrs:{start:"5"}},[o("li",[e._v('To validate the "Soft delete" feature, delete the uploaded files.')])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd3.jpg")}}),e._v(" "),o("ol",{attrs:{start:"6"}},[o("li",[e._v('Under your Storage container, check the "Show deleted blobs" option. It will show all the previously deleted blobs.')])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd4.jpg")}}),e._v(" "),o("ol",{attrs:{start:"7"}},[o("li",[e._v('Click on the "context menu" (extreme right) and select the "Undelete" option.')])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd5.jpg")}}),e._v(" "),o("ol",{attrs:{start:"8"}},[o("li",[e._v('This will put the deleted blob file(s) back in "Active" state as shown below.')])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd6.jpg")}}),e._v(" "),o("h4",{attrs:{id:"conclusion"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[e._v("#")]),e._v(" Conclusion")]),e._v(" "),o("p",[e._v("Azure Storage offers soft delete for blob objects so that you can more easily recover your data when it is erroneously modified or deleted by an application or other storage account user. We encourage you to explore this Azure tip to restore/recover the deleted blobs.")]),e._v(" "),o("p",[e._v("Don't forget to "),o("a",{attrs:{href:"https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-soft-delete?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("learn more about Soft delete for Azure Storage blobs on our docs"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=a.exports}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([[123],{561:function(e,t,o){"use strict";o.r(t);var r=o(69),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("div",{staticClass:"custom-block tip"},[o("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),o("p",[e._v("πŸ‘Š that ⭐️ button on the official "),o("a",{attrs:{href:"https://github.com/Microsoft/AzureTipsAndTricks/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub repo"),o("OutboundLink")],1),e._v(" to stay up to date.")]),e._v(" "),o("p",[e._v("πŸ’‘ Learn more : "),o("a",{attrs:{href:"https://azure.microsoft.com/en-us/blog/soft-delete-for-azure-storage-blobs-ga?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Soft delete for Azure Storage"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("p",[e._v("This post was brought to you by "),o("strong",[o("a",{attrs:{href:"https://twitter.com/kumarallamraju",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kumar Allamraju"),o("OutboundLink")],1)]),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"how-to-restore-accidental-deletion-of-your-azure-storage-blobs"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#how-to-restore-accidental-deletion-of-your-azure-storage-blobs"}},[e._v("#")]),e._v(" How to restore accidental deletion of your Azure Storage Blobs")]),e._v(" "),o("h4",{attrs:{id:"soft-delete-for-azure-storage-blobs"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#soft-delete-for-azure-storage-blobs"}},[e._v("#")]),e._v(" Soft delete for Azure Storage Blobs")]),e._v(" "),o("p",[e._v("Azure Storage offers soft delete for blob objects so that you can more easily recover your data when it is erroneously modified or deleted by an application or other storage account user. When turned on, soft delete enables you to save and recover your data where blobs or blob snapshots are deleted. This protection extends to blob data that is erased as the result of an overwrite.")]),e._v(" "),o("h4",{attrs:{id:"enable-soft-delete-feature-in-azure-storage"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#enable-soft-delete-feature-in-azure-storage"}},[e._v("#")]),e._v(" Enable Soft delete feature in Azure Storage")]),e._v(" "),o("ol",[o("li",[o("p",[e._v("Create a Storage Container inside the Storage account.")])]),e._v(" "),o("li",[o("p",[e._v("Go to Soft delete under Blob service section")])])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd-1.jpg")}}),e._v(" "),o("ol",{attrs:{start:"3"}},[o("li",[e._v('Enable the "Soft delete" option. By default it\'s disabled and the retention policy is 7 days. You can increase the retention period up to 365 days.')])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd1.jpg")}}),e._v(" "),o("ol",{attrs:{start:"4"}},[o("li",[e._v("Go back to your storage container and upload some files.")])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd2.jpg")}}),e._v(" "),o("ol",{attrs:{start:"5"}},[o("li",[e._v('To validate the "Soft delete" feature, delete the uploaded files.')])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd3.jpg")}}),e._v(" "),o("ol",{attrs:{start:"6"}},[o("li",[e._v('Under your Storage container, check the "Show deleted blobs" option. It will show all the previously deleted blobs.')])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd4.jpg")}}),e._v(" "),o("ol",{attrs:{start:"7"}},[o("li",[e._v('Click on the "context menu" (extreme right) and select the "Undelete" option.')])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd5.jpg")}}),e._v(" "),o("ol",{attrs:{start:"8"}},[o("li",[e._v('This will put the deleted blob file(s) back in "Active" state as shown below.')])]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/sd6.jpg")}}),e._v(" "),o("h4",{attrs:{id:"conclusion"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[e._v("#")]),e._v(" Conclusion")]),e._v(" "),o("p",[e._v("Azure Storage offers soft delete for blob objects so that you can more easily recover your data when it is erroneously modified or deleted by an application or other storage account user. We encourage you to explore this Azure tip to restore/recover the deleted blobs.")]),e._v(" "),o("p",[e._v("Don't forget to "),o("a",{attrs:{href:"https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-soft-delete?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("learn more about Soft delete for Azure Storage blobs on our docs"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=a.exports}}]);

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ»

@ -1 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[126],{563:function(e,t,s){"use strict";s.r(t);var r=s(69),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),s("p",[e._v("πŸ’‘ Learn more : "),s("a",{attrs:{href:"https://docs.microsoft.com/en-us/azure/virtual-network/manage-network-security-group/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Network Security Groups"),s("OutboundLink")],1)])]),e._v(" "),s("p",[e._v("This post was brought to you by "),s("strong",[s("a",{attrs:{href:"https://twitter.com/kumarallamraju",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kumar Allamraju"),s("OutboundLink")],1)]),e._v(".")]),e._v(" "),s("h3",{attrs:{id:"reusing-network-service-groups-across-virtual-machines"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reusing-network-service-groups-across-virtual-machines"}},[e._v("#")]),e._v(" Reusing Network Service Groups across Virtual Machines")]),e._v(" "),s("p",[e._v("Have you ever wondered that your NSG blade was cluttered with too many Network Security Groups? See my NSG blade.")]),e._v(" "),s("img",{attrs:{src:e.$withBase("/files/file1-nsg.png")}}),e._v(" "),s("p",[e._v("Shocking huh? This list was even bigger in my customer's environment. When you create a new Virtual Machine from Azure Portal or CLI, a new network security group is created for each VM. This is by design. However there's a way to specify an existing NSG assuming you want to apply the same inbound and outbound rules for a group of virtual machines.")]),e._v(" "),s("p",[e._v('This can be done by choosing the Advanced option in the Networking tab. The default option is "None".')]),e._v(" "),s("img",{attrs:{src:e.$withBase("/files/file2-nsg.png")}}),e._v(" "),s("p",[e._v('When you select Advanced option, you will have an option to select the existing NSGs. I have created a network security group called "mynsg1" with a set of inbound and outbound rules prior to creating a VM. See the screenshot below.')]),e._v(" "),s("img",{attrs:{src:e.$withBase("/files/file3-nsg.png")}}),e._v(" "),s("p",[e._v("In this case, I'm allowing access to my VMs only from my Home and Office IPs. You can further fine tune the NGSG by the protocol and specific ports and re-use the same NSG.")]),e._v(" "),s("p",[e._v("When you create a VM using az CLI, you have an option to specify the NSG. See below.")]),e._v(" "),s("p",[e._v("The following example creates a simple Ubuntu Linux VM with a public IP address, DNS entry, wih an existing NSG, two data disks (10GB and 20GB), and then generates ssh key pairs.")]),e._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("az vm create -n MyVm -g MyResourceGroup --nsg mynsg1 --public-ip-address-dns-name MyUniqueDnsName --image ubuntults --data-disk-sizes-gb 10 20 --size Standard_DS2_v2 \\\n--generate-ssh-keys\n")])]),e._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[e._v("1")]),s("br"),s("span",{staticClass:"line-number"},[e._v("2")]),s("br")])]),s("p",[e._v("Now if you want to apply this NSG to all your VMs that shares the same set of allow/deny rules, you can stop the VM, go to the vNet blade attached to your VM, click on the device under Connected Devices, under Network Security Group blade click on Edit icon and select the new NSG that was created above and restart your VM(s). The same rule applies to existing VMs as well.")]),e._v(" "),s("h4",{attrs:{id:"conclusion"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[e._v("#")]),e._v(" Conclusion")]),e._v(" "),s("p",[e._v("Network Security Groups is an important feature in Azure Virtual Networking that allows you to filter traffic to and from Internet and across Azure resources. The intent of this article is to share a quick Azure tip but NSG shouldn't be used as a first line of defense to your Azure resources.")]),e._v(" "),s("ul",[s("li",[s("p",[s("a",{attrs:{href:"https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-vnet-plan-design-arm/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Virtual Networks"),s("OutboundLink")],1)])]),e._v(" "),s("li",[s("p",[s("a",{attrs:{href:"https://docs.microsoft.com/en-us/cli/azure/network/nsg?view=azure-cli-latest/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("az CLI nsg"),s("OutboundLink")],1)])])])])}),[],!1,null,null,null);t.default=a.exports}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([[126],{564:function(e,t,s){"use strict";s.r(t);var r=s(69),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),s("p",[e._v("πŸ’‘ Learn more : "),s("a",{attrs:{href:"https://docs.microsoft.com/en-us/azure/virtual-network/manage-network-security-group/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Network Security Groups"),s("OutboundLink")],1)])]),e._v(" "),s("p",[e._v("This post was brought to you by "),s("strong",[s("a",{attrs:{href:"https://twitter.com/kumarallamraju",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kumar Allamraju"),s("OutboundLink")],1)]),e._v(".")]),e._v(" "),s("h3",{attrs:{id:"reusing-network-service-groups-across-virtual-machines"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reusing-network-service-groups-across-virtual-machines"}},[e._v("#")]),e._v(" Reusing Network Service Groups across Virtual Machines")]),e._v(" "),s("p",[e._v("Have you ever wondered that your NSG blade was cluttered with too many Network Security Groups? See my NSG blade.")]),e._v(" "),s("img",{attrs:{src:e.$withBase("/files/file1-nsg.png")}}),e._v(" "),s("p",[e._v("Shocking huh? This list was even bigger in my customer's environment. When you create a new Virtual Machine from Azure Portal or CLI, a new network security group is created for each VM. This is by design. However there's a way to specify an existing NSG assuming you want to apply the same inbound and outbound rules for a group of virtual machines.")]),e._v(" "),s("p",[e._v('This can be done by choosing the Advanced option in the Networking tab. The default option is "None".')]),e._v(" "),s("img",{attrs:{src:e.$withBase("/files/file2-nsg.png")}}),e._v(" "),s("p",[e._v('When you select Advanced option, you will have an option to select the existing NSGs. I have created a network security group called "mynsg1" with a set of inbound and outbound rules prior to creating a VM. See the screenshot below.')]),e._v(" "),s("img",{attrs:{src:e.$withBase("/files/file3-nsg.png")}}),e._v(" "),s("p",[e._v("In this case, I'm allowing access to my VMs only from my Home and Office IPs. You can further fine tune the NGSG by the protocol and specific ports and re-use the same NSG.")]),e._v(" "),s("p",[e._v("When you create a VM using az CLI, you have an option to specify the NSG. See below.")]),e._v(" "),s("p",[e._v("The following example creates a simple Ubuntu Linux VM with a public IP address, DNS entry, wih an existing NSG, two data disks (10GB and 20GB), and then generates ssh key pairs.")]),e._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("az vm create -n MyVm -g MyResourceGroup --nsg mynsg1 --public-ip-address-dns-name MyUniqueDnsName --image ubuntults --data-disk-sizes-gb 10 20 --size Standard_DS2_v2 \\\n--generate-ssh-keys\n")])]),e._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[e._v("1")]),s("br"),s("span",{staticClass:"line-number"},[e._v("2")]),s("br")])]),s("p",[e._v("Now if you want to apply this NSG to all your VMs that shares the same set of allow/deny rules, you can stop the VM, go to the vNet blade attached to your VM, click on the device under Connected Devices, under Network Security Group blade click on Edit icon and select the new NSG that was created above and restart your VM(s). The same rule applies to existing VMs as well.")]),e._v(" "),s("h4",{attrs:{id:"conclusion"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[e._v("#")]),e._v(" Conclusion")]),e._v(" "),s("p",[e._v("Network Security Groups is an important feature in Azure Virtual Networking that allows you to filter traffic to and from Internet and across Azure resources. The intent of this article is to share a quick Azure tip but NSG shouldn't be used as a first line of defense to your Azure resources.")]),e._v(" "),s("ul",[s("li",[s("p",[s("a",{attrs:{href:"https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-vnet-plan-design-arm/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Virtual Networks"),s("OutboundLink")],1)])]),e._v(" "),s("li",[s("p",[s("a",{attrs:{href:"https://docs.microsoft.com/en-us/cli/azure/network/nsg?view=azure-cli-latest/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("az CLI nsg"),s("OutboundLink")],1)])])])])}),[],!1,null,null,null);t.default=a.exports}}]);

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ»

@ -1 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[135],{572:function(e,t,a){"use strict";a.r(t);var r=a(69),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("πŸ’‘ Learn more : "),a("a",{attrs:{href:"https://docs.microsoft.com/en-us/azure/networking/networking-overview/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Virtual Networking"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("This post was brought to you by "),a("strong",[a("a",{attrs:{href:"https://twitter.com/kumarallamraju",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kumar Allamraju"),a("OutboundLink")],1)]),e._v(".")]),e._v(" "),a("h3",{attrs:{id:"how-to-add-a-new-cidr-to-an-existing-virtual-network"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-to-add-a-new-cidr-to-an-existing-virtual-network"}},[e._v("#")]),e._v(" How to add a new CIDR to an existing Virtual Network")]),e._v(" "),a("p",[e._v("Azure Networking (VNet) allows customers to expand their Virtual Networkx by adding secondary IPv4 address ranges (CIDRs) to their VNets. Customers can add the secondary CIDR blocks to the VNet directly from the Azure Portal or by using the Azure CLI, Powershell.")]),e._v(" "),a("h4",{attrs:{id:"adding-a-new-cidr-to-an-existing-virtual-network"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-new-cidr-to-an-existing-virtual-network"}},[e._v("#")]),e._v(" Adding a new CIDR to an existing Virtual Network")]),e._v(" "),a("ol",[a("li",[e._v("Sign in to Azure Portal (https://portal.azure.com)")]),e._v(" "),a("li",[e._v("Navigate to Virtual Network blade. Choose your existing VNet. e.g. myvNet")]),e._v(" "),a("li",[e._v("Click on Settings >> Address Space")]),e._v(" "),a("li",[e._v("Add a new CIDR space e.g. I already have 10.0.0.0/16 configured as primary CIDR. So I add 192.168.0.0/16 as secondary CIDR block.")]),e._v(" "),a("li",[e._v("Click Save button to save the changes.")])]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/azurevnetcidr-file1.jpg")}}),e._v(" "),a("ol",{attrs:{start:"6"}},[a("li",[e._v("Click on Settings >> Subnets, +Subnet")]),e._v(" "),a("li",[e._v("Add a new subnet e.g. Subnet Name: subnetB, enter a new subnet range that falls under the secondary CIDR space i.e. 192.168.0.0/24. Save the changes.")])]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/azurevnetcidr-file2.jpg")}}),e._v(" "),a("ol",{attrs:{start:"8"}},[a("li",[e._v("Now provision a new virtual machine using the subnetB that was created above.")])]),e._v(" "),a("h4",{attrs:{id:"a-sample-architecture-with-one-cidr-and-two-cidrs-is-shown-below"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#a-sample-architecture-with-one-cidr-and-two-cidrs-is-shown-below"}},[e._v("#")]),e._v(" A sample architecture with one CIDR and two CIDRs is shown below")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/azurevnetcidr-file3.jpg")}}),e._v(" "),a("h4",{attrs:{id:"conclusion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[e._v("#")]),e._v(" Conclusion")]),e._v(" "),a("p",[e._v("Adding a new CIDR to an existing VNet has two key benefits. First, customers, who are launching more and more resources in their VNets, can now scale up their VNets on-demand. Second, customers no longer have to over-allocate private IPv4 space to their VNets - they can allocate only what is required at the VNet creation time, and later expand it as needed. With these benefits, this feature can make it significantly easier for customers to manage their private IPv4 address space. There is no additional charge to use this feature. This feature is available in all Azure regions.")]),e._v(" "),a("ul",[a("li",[a("p",[a("a",{attrs:{href:"https://docs.microsoft.com/en-us/azure/virtual-network/quick-create-portal?toc=%2fazure%2fnetworking%2ftoc.json?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Creating a Virtual Network using Azure Portal"),a("OutboundLink")],1)])]),e._v(" "),a("li",[a("p",[a("a",{attrs:{href:"https://docs.microsoft.com/en-us/cli/azure/network/vnet?view=azure-cli-latest#az-network-vnet-create?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Creating a Virtual Network using Azure CLI"),a("OutboundLink")],1)])])])])}),[],!1,null,null,null);t.default=s.exports}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([[135],{574:function(e,t,a){"use strict";a.r(t);var r=a(69),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("πŸ’‘ Learn more : "),a("a",{attrs:{href:"https://docs.microsoft.com/en-us/azure/networking/networking-overview/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Virtual Networking"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("This post was brought to you by "),a("strong",[a("a",{attrs:{href:"https://twitter.com/kumarallamraju",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kumar Allamraju"),a("OutboundLink")],1)]),e._v(".")]),e._v(" "),a("h3",{attrs:{id:"how-to-add-a-new-cidr-to-an-existing-virtual-network"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-to-add-a-new-cidr-to-an-existing-virtual-network"}},[e._v("#")]),e._v(" How to add a new CIDR to an existing Virtual Network")]),e._v(" "),a("p",[e._v("Azure Networking (VNet) allows customers to expand their Virtual Networkx by adding secondary IPv4 address ranges (CIDRs) to their VNets. Customers can add the secondary CIDR blocks to the VNet directly from the Azure Portal or by using the Azure CLI, Powershell.")]),e._v(" "),a("h4",{attrs:{id:"adding-a-new-cidr-to-an-existing-virtual-network"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adding-a-new-cidr-to-an-existing-virtual-network"}},[e._v("#")]),e._v(" Adding a new CIDR to an existing Virtual Network")]),e._v(" "),a("ol",[a("li",[e._v("Sign in to Azure Portal (https://portal.azure.com)")]),e._v(" "),a("li",[e._v("Navigate to Virtual Network blade. Choose your existing VNet. e.g. myvNet")]),e._v(" "),a("li",[e._v("Click on Settings >> Address Space")]),e._v(" "),a("li",[e._v("Add a new CIDR space e.g. I already have 10.0.0.0/16 configured as primary CIDR. So I add 192.168.0.0/16 as secondary CIDR block.")]),e._v(" "),a("li",[e._v("Click Save button to save the changes.")])]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/azurevnetcidr-file1.jpg")}}),e._v(" "),a("ol",{attrs:{start:"6"}},[a("li",[e._v("Click on Settings >> Subnets, +Subnet")]),e._v(" "),a("li",[e._v("Add a new subnet e.g. Subnet Name: subnetB, enter a new subnet range that falls under the secondary CIDR space i.e. 192.168.0.0/24. Save the changes.")])]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/azurevnetcidr-file2.jpg")}}),e._v(" "),a("ol",{attrs:{start:"8"}},[a("li",[e._v("Now provision a new virtual machine using the subnetB that was created above.")])]),e._v(" "),a("h4",{attrs:{id:"a-sample-architecture-with-one-cidr-and-two-cidrs-is-shown-below"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#a-sample-architecture-with-one-cidr-and-two-cidrs-is-shown-below"}},[e._v("#")]),e._v(" A sample architecture with one CIDR and two CIDRs is shown below")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/azurevnetcidr-file3.jpg")}}),e._v(" "),a("h4",{attrs:{id:"conclusion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[e._v("#")]),e._v(" Conclusion")]),e._v(" "),a("p",[e._v("Adding a new CIDR to an existing VNet has two key benefits. First, customers, who are launching more and more resources in their VNets, can now scale up their VNets on-demand. Second, customers no longer have to over-allocate private IPv4 space to their VNets - they can allocate only what is required at the VNet creation time, and later expand it as needed. With these benefits, this feature can make it significantly easier for customers to manage their private IPv4 address space. There is no additional charge to use this feature. This feature is available in all Azure regions.")]),e._v(" "),a("ul",[a("li",[a("p",[a("a",{attrs:{href:"https://docs.microsoft.com/en-us/azure/virtual-network/quick-create-portal?toc=%2fazure%2fnetworking%2ftoc.json?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Creating a Virtual Network using Azure Portal"),a("OutboundLink")],1)])]),e._v(" "),a("li",[a("p",[a("a",{attrs:{href:"https://docs.microsoft.com/en-us/cli/azure/network/vnet?view=azure-cli-latest#az-network-vnet-create?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Creating a Virtual Network using Azure CLI"),a("OutboundLink")],1)])])])])}),[],!1,null,null,null);t.default=s.exports}}]);

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ»

@ -1 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[183],{620:function(e,t,a){"use strict";a.r(t);var o=a(69),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("πŸ’‘ Learn more : "),a("a",{attrs:{href:"https://docs.microsoft.com/azure/app-service?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("App Service Documentation"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("πŸ“Ί Watch the video : "),a("a",{attrs:{href:"https://www.youtube.com/watch?v=uQXDkW1pCzs&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=23?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to Configure a Backup for Your Azure App Service"),a("OutboundLink")],1),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"configure-a-backup-for-your-azure-app-service-and-database"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configure-a-backup-for-your-azure-app-service-and-database"}},[e._v("#")]),e._v(" Configure a Backup for your Azure App Service and Database")]),e._v(" "),a("p",[e._v("Most folks don't realize how easy it is to configure a backup copy of your Azure App Service to ensure you have restorable archive copies of your app and database. In order to take advantage of this, you'll need to log into your Azure account and go to your App Service that you created and look under "),a("strong",[e._v("Settings")]),e._v(" then you will see "),a("strong",[e._v("Backup")]),e._v(".")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/backupazure1.png")}}),e._v(" "),a("p",[e._v("Open it and select "),a("strong",[e._v("Configure")]),e._v(" and you'll see the following screen.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/backupazure2.png")}}),e._v(" "),a("p",[e._v("You'll want to configure the "),a("strong",[e._v("Backup Storage")]),e._v(" first as that sets the container that you'll use to store your backup.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/backupazure3.png")}}),e._v(" "),a("p",[e._v("I simply gave it a name, used stardard performance and setup replication and location.")]),e._v(" "),a("p",[e._v("Now you'll need to configure a container to store your backup.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/backupazure4.png")}}),e._v(" "),a("p",[e._v("Next, you'll want to make sure that "),a("strong",[e._v("Scheduled backup")]),e._v(" is set to "),a("strong",[e._v("On")]),e._v(". You'll want to configure the Days and Hours and then the current schedule that it should backup from. I set mine to backup every "),a("strong",[e._v("7")]),e._v(" days and starting from now. You'll also want to set the retention and by default it will keep as least one backup. If you have a database, then you can also add it with just a checkmark.")]),e._v(" "),a("p",[e._v("Once everything is set, you can see whatn the next backup is configured and can either force it manually or restore from an existing backup with just a visit to the Azure Portal.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/backupazure5.png")}}),e._v(" "),a("p",[e._v("Once it completed, you can click on the backup and see a feature called "),a("strong",[e._v("Snapshot")]),e._v(" which automatically create periodic restore points of your app when hosted in a Premium App Service plan. You can even download a zip of the app.")])])}),[],!1,null,null,null);t.default=r.exports}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([[183],{622:function(e,t,a){"use strict";a.r(t);var o=a(69),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("πŸ’‘ Learn more : "),a("a",{attrs:{href:"https://docs.microsoft.com/azure/app-service?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("App Service Documentation"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("πŸ“Ί Watch the video : "),a("a",{attrs:{href:"https://www.youtube.com/watch?v=uQXDkW1pCzs&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=23?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to Configure a Backup for Your Azure App Service"),a("OutboundLink")],1),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"configure-a-backup-for-your-azure-app-service-and-database"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configure-a-backup-for-your-azure-app-service-and-database"}},[e._v("#")]),e._v(" Configure a Backup for your Azure App Service and Database")]),e._v(" "),a("p",[e._v("Most folks don't realize how easy it is to configure a backup copy of your Azure App Service to ensure you have restorable archive copies of your app and database. In order to take advantage of this, you'll need to log into your Azure account and go to your App Service that you created and look under "),a("strong",[e._v("Settings")]),e._v(" then you will see "),a("strong",[e._v("Backup")]),e._v(".")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/backupazure1.png")}}),e._v(" "),a("p",[e._v("Open it and select "),a("strong",[e._v("Configure")]),e._v(" and you'll see the following screen.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/backupazure2.png")}}),e._v(" "),a("p",[e._v("You'll want to configure the "),a("strong",[e._v("Backup Storage")]),e._v(" first as that sets the container that you'll use to store your backup.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/backupazure3.png")}}),e._v(" "),a("p",[e._v("I simply gave it a name, used stardard performance and setup replication and location.")]),e._v(" "),a("p",[e._v("Now you'll need to configure a container to store your backup.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/backupazure4.png")}}),e._v(" "),a("p",[e._v("Next, you'll want to make sure that "),a("strong",[e._v("Scheduled backup")]),e._v(" is set to "),a("strong",[e._v("On")]),e._v(". You'll want to configure the Days and Hours and then the current schedule that it should backup from. I set mine to backup every "),a("strong",[e._v("7")]),e._v(" days and starting from now. You'll also want to set the retention and by default it will keep as least one backup. If you have a database, then you can also add it with just a checkmark.")]),e._v(" "),a("p",[e._v("Once everything is set, you can see whatn the next backup is configured and can either force it manually or restore from an existing backup with just a visit to the Azure Portal.")]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/backupazure5.png")}}),e._v(" "),a("p",[e._v("Once it completed, you can click on the backup and see a feature called "),a("strong",[e._v("Snapshot")]),e._v(" which automatically create periodic restore points of your app when hosted in a Premium App Service plan. You can even download a zip of the app.")])])}),[],!1,null,null,null);t.default=r.exports}}]);

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

Различия Ρ„Π°ΠΉΠ»ΠΎΠ² скрыты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько строк слишком Π΄Π»ΠΈΠ½Π½Ρ‹

НСкоторыС Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΈΠ·-Π·Π° слишком большого количСства ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ большС