Deploying to gh-pages from @ 79e7c7c060659a7d53e5e00467c24d6de9355ea2 π
This commit is contained in:
Π ΠΎΠ΄ΠΈΡΠ΅Π»Ρ
ccba915713
ΠΠΎΠΌΠΌΠΈΡ
9c412ef8ee
4
404.html
4
404.html
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
|
@ -1 +1 @@
|
|||
(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}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[120],{775: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],{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}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[123],{562: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],{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}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[126],{565: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([[263],{702:function(e,t,n){"use strict";n.r(t);var s=n(69),a=Object(s.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),n("p",[e._v("π‘ Learn more : "),n("a",{attrs:{href:"https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Functions Documentation"),n("OutboundLink")],1),e._v(".")]),e._v(" "),n("p",[e._v("πΊ Watch the video : "),n("a",{attrs:{href:"https://www.youtube.com/watch?v=v67yVTLEu3U&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=30?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to renew or revoke Azure Functions keys"),n("OutboundLink")],1),e._v(".")])]),e._v(" "),n("h3",{attrs:{id:"quickly-renew-or-revoke-azure-functions-keys"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#quickly-renew-or-revoke-azure-functions-keys"}},[e._v("#")]),e._v(" Quickly Renew or Revoke Azure Functions Keys")]),e._v(" "),n("p",[e._v("There are times when you've created a new Azure Function HTTP Trigger where your Function Key needs to be changed. For example, here is my Function URL:")]),e._v(" "),n("img",{attrs:{src:e.$withBase("/files/funckey1.png")}}),e._v(" "),n("p",[n("code",[e._v("https://mynewtestapp100.azurewebsites.net/api/HttpTriggerCSharp1?code=FJmHHtDmvqwp4wn0zXCS9J70NbakcmNDYCwM6trPOCTK3TdiCVg8pA==")])]),e._v(" "),n("p",[e._v("If you go to that page, you'll see the Trigger was activated as you passed the key:")]),e._v(" "),n("div",{staticClass:"language- line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[e._v('This XML file does not appear to have any style information associated with it. The document tree is shown below.\n<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/\')">\nPlease pass a name on the query string or in the request body\n</string>\n')])]),e._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[e._v("1")]),n("br"),n("span",{staticClass:"line-number"},[e._v("2")]),n("br"),n("span",{staticClass:"line-number"},[e._v("3")]),n("br"),n("span",{staticClass:"line-number"},[e._v("4")]),n("br")])]),n("p",[e._v("If something happens and someone gets the key, then you should go back to your Function and click "),n("strong",[e._v("Manage")]),e._v(", then press "),n("strong",[e._v("Revoke")]),e._v(". Now you can quickly gneerate a new key with the "),n("strong",[e._v("Add new function key")]),e._v(". You'll need to provide the name "),n("strong",[e._v("default")]),e._v(" and can leave the value empty. Now simply click "),n("strong",[e._v("Save")]),e._v(" and if you go back to your Function and click on "),n("strong",[e._v("Get Function URL")]),e._v(", then you'll notice the new key is in place.")]),e._v(" "),n("img",{attrs:{src:e.$withBase("/files/funckey2.png")}})])}),[],!1,null,null,null);t.default=a.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[263],{701:function(e,t,n){"use strict";n.r(t);var s=n(69),a=Object(s.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),n("p",[e._v("π‘ Learn more : "),n("a",{attrs:{href:"https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Functions Documentation"),n("OutboundLink")],1),e._v(".")]),e._v(" "),n("p",[e._v("πΊ Watch the video : "),n("a",{attrs:{href:"https://www.youtube.com/watch?v=v67yVTLEu3U&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=30?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to renew or revoke Azure Functions keys"),n("OutboundLink")],1),e._v(".")])]),e._v(" "),n("h3",{attrs:{id:"quickly-renew-or-revoke-azure-functions-keys"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#quickly-renew-or-revoke-azure-functions-keys"}},[e._v("#")]),e._v(" Quickly Renew or Revoke Azure Functions Keys")]),e._v(" "),n("p",[e._v("There are times when you've created a new Azure Function HTTP Trigger where your Function Key needs to be changed. For example, here is my Function URL:")]),e._v(" "),n("img",{attrs:{src:e.$withBase("/files/funckey1.png")}}),e._v(" "),n("p",[n("code",[e._v("https://mynewtestapp100.azurewebsites.net/api/HttpTriggerCSharp1?code=FJmHHtDmvqwp4wn0zXCS9J70NbakcmNDYCwM6trPOCTK3TdiCVg8pA==")])]),e._v(" "),n("p",[e._v("If you go to that page, you'll see the Trigger was activated as you passed the key:")]),e._v(" "),n("div",{staticClass:"language- line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[e._v('This XML file does not appear to have any style information associated with it. The document tree is shown below.\n<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/\')">\nPlease pass a name on the query string or in the request body\n</string>\n')])]),e._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[e._v("1")]),n("br"),n("span",{staticClass:"line-number"},[e._v("2")]),n("br"),n("span",{staticClass:"line-number"},[e._v("3")]),n("br"),n("span",{staticClass:"line-number"},[e._v("4")]),n("br")])]),n("p",[e._v("If something happens and someone gets the key, then you should go back to your Function and click "),n("strong",[e._v("Manage")]),e._v(", then press "),n("strong",[e._v("Revoke")]),e._v(". Now you can quickly gneerate a new key with the "),n("strong",[e._v("Add new function key")]),e._v(". You'll need to provide the name "),n("strong",[e._v("default")]),e._v(" and can leave the value empty. Now simply click "),n("strong",[e._v("Save")]),e._v(" and if you go back to your Function and click on "),n("strong",[e._v("Get Function URL")]),e._v(", then you'll notice the new key is in place.")]),e._v(" "),n("img",{attrs:{src:e.$withBase("/files/funckey2.png")}})])}),[],!1,null,null,null);t.default=a.exports}}]);
|
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[278],{717:function(o,e,t){"use strict";t.r(e);var r=t(69),s=Object(r.a)({},(function(){var o=this,e=o.$createElement,t=o._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":o.$parent.slotKey}},[t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[o._v("TIP")]),o._v(" "),t("p",[o._v("π‘ Learn more : "),t("a",{attrs:{href:"https://docs.microsoft.com/azure/logic-apps/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[o._v("Azure Logic Apps Documentation"),t("OutboundLink")],1),o._v(".")]),o._v(" "),t("p",[o._v("πΊ Watch the video : "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=AqInZgTY57Y&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=33?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[o._v("How to quickly roll back versions of Azure Logic Apps"),t("OutboundLink")],1),o._v(".")])]),o._v(" "),t("h3",{attrs:{id:"quickly-roll-back-to-a-previous-version-of-an-azure-logic-app"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#quickly-roll-back-to-a-previous-version-of-an-azure-logic-app"}},[o._v("#")]),o._v(" Quickly Roll Back to a Previous Version of an Azure Logic App")]),o._v(" "),t("p",[o._v("This one seems to come up a lot, so I'll add it here. If you have created an Azure Logic App and would like to go back to a previous version, then you can do so very easily. Go ahead and open your logic app and look under "),t("strong",[o._v("Development Tools")]),o._v(" then "),t("strong",[o._v("Versions")]),o._v(" and select a previous version.")]),o._v(" "),t("img",{attrs:{src:o.$withBase("/files/versionlogic1.png")}}),o._v(" "),t("p",[o._v("Once you select a previous version, you'll see "),t("strong",[o._v("History")]),o._v(".")]),o._v(" "),t("img",{attrs:{src:o.$withBase("/files/versionlogic2.png")}}),o._v(" "),t("p",[o._v("From here you can hit the "),t("strong",[o._v("Promote")]),o._v(" button and "),t("strong",[o._v("Save")]),o._v(" to use this version in production.")])])}),[],!1,null,null,null);e.default=s.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[279],{718:function(o,e,t){"use strict";t.r(e);var r=t(69),s=Object(r.a)({},(function(){var o=this,e=o.$createElement,t=o._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":o.$parent.slotKey}},[t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[o._v("TIP")]),o._v(" "),t("p",[o._v("π‘ Learn more : "),t("a",{attrs:{href:"https://docs.microsoft.com/azure/logic-apps/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[o._v("Azure Logic Apps Documentation"),t("OutboundLink")],1),o._v(".")]),o._v(" "),t("p",[o._v("πΊ Watch the video : "),t("a",{attrs:{href:"https://www.youtube.com/watch?v=AqInZgTY57Y&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=33?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[o._v("How to quickly roll back versions of Azure Logic Apps"),t("OutboundLink")],1),o._v(".")])]),o._v(" "),t("h3",{attrs:{id:"quickly-roll-back-to-a-previous-version-of-an-azure-logic-app"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#quickly-roll-back-to-a-previous-version-of-an-azure-logic-app"}},[o._v("#")]),o._v(" Quickly Roll Back to a Previous Version of an Azure Logic App")]),o._v(" "),t("p",[o._v("This one seems to come up a lot, so I'll add it here. If you have created an Azure Logic App and would like to go back to a previous version, then you can do so very easily. Go ahead and open your logic app and look under "),t("strong",[o._v("Development Tools")]),o._v(" then "),t("strong",[o._v("Versions")]),o._v(" and select a previous version.")]),o._v(" "),t("img",{attrs:{src:o.$withBase("/files/versionlogic1.png")}}),o._v(" "),t("p",[o._v("Once you select a previous version, you'll see "),t("strong",[o._v("History")]),o._v(".")]),o._v(" "),t("img",{attrs:{src:o.$withBase("/files/versionlogic2.png")}}),o._v(" "),t("p",[o._v("From here you can hit the "),t("strong",[o._v("Promote")]),o._v(" button and "),t("strong",[o._v("Save")]),o._v(" to use this version in production.")])])}),[],!1,null,null,null);e.default=s.exports}}]);
|
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[279],{718:function(t,e,o){"use strict";o.r(e);var n=o(69),i=Object(n.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("div",{staticClass:"custom-block tip"},[o("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),o("p",[t._v("π‘ Learn more : "),o("a",{attrs:{href:"https://docs.microsoft.com/azure/logic-apps/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Logic Apps Documentation"),o("OutboundLink")],1),t._v(".")]),t._v(" "),o("p",[t._v("πΊ Watch the video : "),o("a",{attrs:{href:"https://www.youtube.com/watch?v=M99wMqOvRGM&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=34?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("How to edit an existing API Connection with Azure Logic Apps"),o("OutboundLink")],1),t._v(".")])]),t._v(" "),o("h3",{attrs:{id:"modifying-an-existing-api-connection-with-azure-logic-app"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#modifying-an-existing-api-connection-with-azure-logic-app"}},[t._v("#")]),t._v(" Modifying an existing API Connection with Azure Logic App")]),t._v(" "),o("p",[t._v("If you have created an Azure Logic App, and have an existing API Connection that you would like to modify, then you can do so very easily. Go ahead and open your logic app and look under "),o("strong",[t._v("Development Tools")]),t._v(" then "),o("strong",[t._v("API Connections")]),t._v(" and you'll see a list of API connections associated with the logic app.")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/logicappconn1.png")}}),t._v(" "),o("p",[t._v("Under "),o("strong",[t._v("General")]),t._v(", you'll see "),o("strong",[t._v("Edit API Connection")]),t._v(".")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/logicappconn2.png")}}),t._v(" "),o("p",[t._v("Now you can edit the API information and then press "),o("strong",[t._v("Authorize")]),t._v(" to change the API connection associated with your Logic App.")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/logicappconn3.png")}})])}),[],!1,null,null,null);e.default=i.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[280],{719:function(t,e,o){"use strict";o.r(e);var n=o(69),i=Object(n.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("div",{staticClass:"custom-block tip"},[o("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),o("p",[t._v("π‘ Learn more : "),o("a",{attrs:{href:"https://docs.microsoft.com/azure/logic-apps/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Logic Apps Documentation"),o("OutboundLink")],1),t._v(".")]),t._v(" "),o("p",[t._v("πΊ Watch the video : "),o("a",{attrs:{href:"https://www.youtube.com/watch?v=M99wMqOvRGM&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=34?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("How to edit an existing API Connection with Azure Logic Apps"),o("OutboundLink")],1),t._v(".")])]),t._v(" "),o("h3",{attrs:{id:"modifying-an-existing-api-connection-with-azure-logic-app"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#modifying-an-existing-api-connection-with-azure-logic-app"}},[t._v("#")]),t._v(" Modifying an existing API Connection with Azure Logic App")]),t._v(" "),o("p",[t._v("If you have created an Azure Logic App, and have an existing API Connection that you would like to modify, then you can do so very easily. Go ahead and open your logic app and look under "),o("strong",[t._v("Development Tools")]),t._v(" then "),o("strong",[t._v("API Connections")]),t._v(" and you'll see a list of API connections associated with the logic app.")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/logicappconn1.png")}}),t._v(" "),o("p",[t._v("Under "),o("strong",[t._v("General")]),t._v(", you'll see "),o("strong",[t._v("Edit API Connection")]),t._v(".")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/logicappconn2.png")}}),t._v(" "),o("p",[t._v("Now you can edit the API information and then press "),o("strong",[t._v("Authorize")]),t._v(" to change the API connection associated with your Logic App.")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/logicappconn3.png")}})])}),[],!1,null,null,null);e.default=i.exports}}]);
|
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[282],{721:function(e,t,o){"use strict";o.r(t);var a=o(69),r=Object(a.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("π‘ Learn more : "),o("a",{attrs:{href:"https://docs.microsoft.com/azure/cloud-shell/overview?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Overview of Azure Cloud Shell"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("πΊ Watch the video : "),o("a",{attrs:{href:"https://www.youtube.com/watch?v=pB_xjSg7fcQ&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=43?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to Add the Azure Cloud Shell to Visual Studio Code"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("h3",{attrs:{id:"add-azure-cloud-shell-to-visual-studio-code"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#add-azure-cloud-shell-to-visual-studio-code"}},[e._v("#")]),e._v(" Add Azure Cloud Shell to Visual Studio Code")]),e._v(" "),o("p",[e._v("I'm a big fan of "),o("a",{attrs:{href:"http://twitter.com/code?WT.mc_id=twitter-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Visual Studio Code"),o("OutboundLink")],1),e._v(" and "),o("a",{attrs:{href:"https://azure.microsoft.com/features/cloud-shell?WT.mc_id=azure-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Cloud Shell"),o("OutboundLink")],1),e._v(" and recently saw this "),o("a",{attrs:{href:"https://twitter.com/fiveisprime/status/928774771763900416?WT.mc_id=twitter-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("tweet"),o("OutboundLink")],1),e._v(" by Matt Hernandez and had to add it to this Azure Tips and Trick list. If you've been following the series, then you'd know that I covered Azure Cloud Shell and MS Docs back in "),o("RouterLink",{attrs:{to:"/blog/tip11/"}},[e._v("post 11")]),e._v(" and how to use PowerShell in Azure Cloud Shell in "),o("RouterLink",{attrs:{to:"/blog/tip17/"}},[e._v("post 17")]),e._v(". Today, we'll cover how to add Azure Cloud Shell to Visual Studio Code.")],1),e._v(" "),o("p",[e._v("It is fairly easy as all you need to do is open VS Code, click on Extensions and search for "),o("code",[e._v("azure account")]),e._v(" and install it as shown below.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azurevscode1.png")}}),e._v(" "),o("p",[e._v("Once installed, go to View -> Command Palette and type "),o("code",[e._v("Open Bash in Cloud Shell")]),e._v(".")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azurevscode2.png")}}),e._v(" "),o("p",[o("strong",[e._v("Note:")]),e._v(" You can also open PowerShell in Cloud Shell with this extension!")]),e._v(" "),o("p",[e._v("You'll need to sign in first and VS Code makes that simple by opening the browser and copying your device authentication code. Once that is complete, you'll see:")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azurevscode3.png")}}),e._v(" "),o("p",[e._v("Go back to View -> Command Palette and select "),o("code",[e._v("Open Bash in Cloud Shell")]),e._v(" again and it should spin up as shown below.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azurevscode4.png")}})])}),[],!1,null,null,null);t.default=r.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[283],{722:function(e,t,o){"use strict";o.r(t);var a=o(69),r=Object(a.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("π‘ Learn more : "),o("a",{attrs:{href:"https://docs.microsoft.com/azure/cloud-shell/overview?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Overview of Azure Cloud Shell"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("πΊ Watch the video : "),o("a",{attrs:{href:"https://www.youtube.com/watch?v=pB_xjSg7fcQ&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=43?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to Add the Azure Cloud Shell to Visual Studio Code"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("h3",{attrs:{id:"add-azure-cloud-shell-to-visual-studio-code"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#add-azure-cloud-shell-to-visual-studio-code"}},[e._v("#")]),e._v(" Add Azure Cloud Shell to Visual Studio Code")]),e._v(" "),o("p",[e._v("I'm a big fan of "),o("a",{attrs:{href:"http://twitter.com/code?WT.mc_id=twitter-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Visual Studio Code"),o("OutboundLink")],1),e._v(" and "),o("a",{attrs:{href:"https://azure.microsoft.com/features/cloud-shell?WT.mc_id=azure-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Cloud Shell"),o("OutboundLink")],1),e._v(" and recently saw this "),o("a",{attrs:{href:"https://twitter.com/fiveisprime/status/928774771763900416?WT.mc_id=twitter-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("tweet"),o("OutboundLink")],1),e._v(" by Matt Hernandez and had to add it to this Azure Tips and Trick list. If you've been following the series, then you'd know that I covered Azure Cloud Shell and MS Docs back in "),o("RouterLink",{attrs:{to:"/blog/tip11/"}},[e._v("post 11")]),e._v(" and how to use PowerShell in Azure Cloud Shell in "),o("RouterLink",{attrs:{to:"/blog/tip17/"}},[e._v("post 17")]),e._v(". Today, we'll cover how to add Azure Cloud Shell to Visual Studio Code.")],1),e._v(" "),o("p",[e._v("It is fairly easy as all you need to do is open VS Code, click on Extensions and search for "),o("code",[e._v("azure account")]),e._v(" and install it as shown below.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azurevscode1.png")}}),e._v(" "),o("p",[e._v("Once installed, go to View -> Command Palette and type "),o("code",[e._v("Open Bash in Cloud Shell")]),e._v(".")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azurevscode2.png")}}),e._v(" "),o("p",[o("strong",[e._v("Note:")]),e._v(" You can also open PowerShell in Cloud Shell with this extension!")]),e._v(" "),o("p",[e._v("You'll need to sign in first and VS Code makes that simple by opening the browser and copying your device authentication code. Once that is complete, you'll see:")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azurevscode3.png")}}),e._v(" "),o("p",[e._v("Go back to View -> Command Palette and select "),o("code",[e._v("Open Bash in Cloud Shell")]),e._v(" again and it should spin up as shown below.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azurevscode4.png")}})])}),[],!1,null,null,null);t.default=r.exports}}]);
|
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[283],{722:function(t,e,s){"use strict";s.r(e);var a=s(69),r=Object(a.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("π‘ Learn more : "),s("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"),s("OutboundLink")],1),t._v(".")])]),t._v(" "),s("h3",{attrs:{id:"custom-tile-sizes-in-the-azure-dashboard"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#custom-tile-sizes-in-the-azure-dashboard"}},[t._v("#")]),t._v(" Custom Tile Sizes in the Azure Dashboard")]),t._v(" "),s("p",[t._v("We learned in the last Azure tip and Trick that the Azure dashboard supports drag and drop and re-size tiles in the Azure dashboard. We also learned that you can customize charts (such as the ones seen in Virtual Machines) to include stats such as CPU when you pin it to the dashboard.")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azuretip4.gif")}}),t._v(" "),s("p",[t._v("But some tiles support custom tile sizes which you can locate by looking in the bottom right hand corner. If you see a corner arrow then you can resize the tile!")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azuretip5.gif")}})])}),[],!1,null,null,null);e.default=r.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[284],{723:function(t,e,s){"use strict";s.r(e);var a=s(69),r=Object(a.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("π‘ Learn more : "),s("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"),s("OutboundLink")],1),t._v(".")])]),t._v(" "),s("h3",{attrs:{id:"custom-tile-sizes-in-the-azure-dashboard"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#custom-tile-sizes-in-the-azure-dashboard"}},[t._v("#")]),t._v(" Custom Tile Sizes in the Azure Dashboard")]),t._v(" "),s("p",[t._v("We learned in the last Azure tip and Trick that the Azure dashboard supports drag and drop and re-size tiles in the Azure dashboard. We also learned that you can customize charts (such as the ones seen in Virtual Machines) to include stats such as CPU when you pin it to the dashboard.")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azuretip4.gif")}}),t._v(" "),s("p",[t._v("But some tiles support custom tile sizes which you can locate by looking in the bottom right hand corner. If you see a corner arrow then you can resize the tile!")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azuretip5.gif")}})])}),[],!1,null,null,null);e.default=r.exports}}]);
|
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[284],{723:function(e,t,o){"use strict";o.r(t);var a=o(69),n=Object(a.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("π‘ Learn more : "),o("a",{attrs:{href:"https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Functions Documentation"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("πΊ Watch the video : "),o("a",{attrs:{href:"https://www.youtube.com/watch?v=F0dJz8LLF4Q&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=44?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to Create an Azure Functions Project with Visual Studio Code"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("h3",{attrs:{id:"create-an-azure-functions-project-with-visual-studio-code"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#create-an-azure-functions-project-with-visual-studio-code"}},[e._v("#")]),e._v(" Create an Azure Functions project with Visual Studio Code")]),e._v(" "),o("p",[e._v("Visual Studio Code is the best thing since coffee for developers and if you pair it with Azure Functions... well, more awesome happens. In this post, we'll look at adding an Azure Function project to Visual Studio Code.")]),e._v(" "),o("p",[e._v("It is fairly easy as all you need to do is open VS Code, click on Extensions and search for "),o("code",[e._v("azure functions")]),e._v(" and install it as shown below.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azfuncvscode1.png")}}),e._v(" "),o("p",[e._v("Once installed, you'll need to reload the extension and you should see your subscriptions.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azfuncvscode2.png")}}),e._v(" "),o("p",[e._v("You may need to sign in if Visual Studio Code hasn't already been authenticated.")]),e._v(" "),o("p",[e._v("Now you should create a project, then a function app, and select which template that you want to use. After you select a template, then you'll need to provide a name and a authorization level.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azfuncvscode3.gif")}}),e._v(" "),o("p",[e._v("Just hit F5 and you have a local Azure Function running in Visual Studio Code.")])])}),[],!1,null,null,null);t.default=n.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[285],{724:function(e,t,o){"use strict";o.r(t);var a=o(69),n=Object(a.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("π‘ Learn more : "),o("a",{attrs:{href:"https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Functions Documentation"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("πΊ Watch the video : "),o("a",{attrs:{href:"https://www.youtube.com/watch?v=F0dJz8LLF4Q&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=44?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to Create an Azure Functions Project with Visual Studio Code"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("h3",{attrs:{id:"create-an-azure-functions-project-with-visual-studio-code"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#create-an-azure-functions-project-with-visual-studio-code"}},[e._v("#")]),e._v(" Create an Azure Functions project with Visual Studio Code")]),e._v(" "),o("p",[e._v("Visual Studio Code is the best thing since coffee for developers and if you pair it with Azure Functions... well, more awesome happens. In this post, we'll look at adding an Azure Function project to Visual Studio Code.")]),e._v(" "),o("p",[e._v("It is fairly easy as all you need to do is open VS Code, click on Extensions and search for "),o("code",[e._v("azure functions")]),e._v(" and install it as shown below.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azfuncvscode1.png")}}),e._v(" "),o("p",[e._v("Once installed, you'll need to reload the extension and you should see your subscriptions.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azfuncvscode2.png")}}),e._v(" "),o("p",[e._v("You may need to sign in if Visual Studio Code hasn't already been authenticated.")]),e._v(" "),o("p",[e._v("Now you should create a project, then a function app, and select which template that you want to use. After you select a template, then you'll need to provide a name and a authorization level.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azfuncvscode3.gif")}}),e._v(" "),o("p",[e._v("Just hit F5 and you have a local Azure Function running in Visual Studio Code.")])])}),[],!1,null,null,null);t.default=n.exports}}]);
|
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[286],{725:function(e,t,o){"use strict";o.r(t);var i=o(69),n=Object(i.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h3",{attrs:{id:"deploy-azure-functions-with-visual-studio-code"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#deploy-azure-functions-with-visual-studio-code"}},[e._v("#")]),e._v(" Deploy Azure Functions with Visual Studio Code")]),e._v(" "),o("p",[e._v("We previously looked at adding an Azure Function project to Visual Studio Code in this "),o("RouterLink",{attrs:{to:"/blog/tip50.html"}},[e._v("post")]),e._v(" and then we looked at "),o("RouterLink",{attrs:{to:"/blog/tip51.html"}},[e._v("debugging it locally")]),e._v(". In this post, we'll wrap up this mini-series by deploying Azure Functions to Azure directly.")],1),e._v(" "),o("p",[e._v("Select the Azure subscription that you'd like to use and select \"Create Function App in Azure.\" You'll need to select a name and then a resource group (or create a new one). Finally, you'll need a storage account which you can also create a new one or select an existing one. Once that is complete, the Azure Function has been created in Azure.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azfuncdeploy.gif")}}),e._v(" "),o("p",[e._v("Now we'll push some code to the newly created Azure Function. Select your Azure Subscription and click deploy. You'll be asked to select the folder to deploy (which it creates a zip), then a subscription, the Function App. Press Yes when asked to overwrite and it will begin deploying.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azfuncdeploy1.gif")}}),e._v(" "),o("p",[e._v("You can switch over to your browser to verify if you want.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azfuncdeploy2.png")}})])}),[],!1,null,null,null);t.default=n.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[287],{726:function(e,t,o){"use strict";o.r(t);var i=o(69),n=Object(i.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h3",{attrs:{id:"deploy-azure-functions-with-visual-studio-code"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#deploy-azure-functions-with-visual-studio-code"}},[e._v("#")]),e._v(" Deploy Azure Functions with Visual Studio Code")]),e._v(" "),o("p",[e._v("We previously looked at adding an Azure Function project to Visual Studio Code in this "),o("RouterLink",{attrs:{to:"/blog/tip50.html"}},[e._v("post")]),e._v(" and then we looked at "),o("RouterLink",{attrs:{to:"/blog/tip51.html"}},[e._v("debugging it locally")]),e._v(". In this post, we'll wrap up this mini-series by deploying Azure Functions to Azure directly.")],1),e._v(" "),o("p",[e._v("Select the Azure subscription that you'd like to use and select \"Create Function App in Azure.\" You'll need to select a name and then a resource group (or create a new one). Finally, you'll need a storage account which you can also create a new one or select an existing one. Once that is complete, the Azure Function has been created in Azure.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azfuncdeploy.gif")}}),e._v(" "),o("p",[e._v("Now we'll push some code to the newly created Azure Function. Select your Azure Subscription and click deploy. You'll be asked to select the folder to deploy (which it creates a zip), then a subscription, the Function App. Press Yes when asked to overwrite and it will begin deploying.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azfuncdeploy1.gif")}}),e._v(" "),o("p",[e._v("You can switch over to your browser to verify if you want.")]),e._v(" "),o("img",{attrs:{src:e.$withBase("/files/azfuncdeploy2.png")}})])}),[],!1,null,null,null);t.default=n.exports}}]);
|
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[289],{728:function(e,o,t){"use strict";t.r(o);var r=t(69),a=Object(r.a)({},(function(){var e=this,o=e.$createElement,t=e._self._c||o;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("π‘ Learn more : "),t("a",{attrs:{href:"https://docs.microsoft.com/azure/containers/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure for Containers"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"deploy-a-net-core-webapi-project-to-web-app-for-containers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#deploy-a-net-core-webapi-project-to-web-app-for-containers"}},[e._v("#")]),e._v(" Deploy a .NET Core WebAPI Project to Web App for Containers")]),e._v(" "),t("h4",{attrs:{id:"use-net-core-webapi-and-docker-compose"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#use-net-core-webapi-and-docker-compose"}},[e._v("#")]),e._v(" Use .NET Core WebAPI and Docker Compose")]),e._v(" "),t("p",[e._v("How hard do you think it is to:")]),e._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/blog/tip54.html"}},[e._v("Create and Publish a .NET Core WebAPI project")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/blog/tip55.html"}},[e._v("Add it to a Docker Container using Docker Compose and push it to a Docker Hub")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/blog/tip56.html"}},[e._v("Use it in Azure with Web App for Containers")])],1)]),e._v(" "),t("p",[e._v("In this mini-series, we'll build on each part starting with creating and publishing a .NET Core WebAPI project. Yesterday, we used Docker Compose to create an image and push it to Docker Cloud and we'll wrap up today by deploying it to Azure using "),t("a",{attrs:{href:"https://azure.microsoft.com/services/app-service/containers?WT.mc_id=azure-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Web App for Containers"),t("OutboundLink")],1),e._v("?WT.mc_id=azure-azuredevtips-azureappsdev).")]),e._v(" "),t("h4",{attrs:{id:"deploy-a-net-core-webapi-project-to-web-app-for-containers-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#deploy-a-net-core-webapi-project-to-web-app-for-containers-2"}},[e._v("#")]),e._v(" Deploy a .NET Core WebAPI Project to Web App for Containers")]),e._v(" "),t("p",[e._v("In "),t("RouterLink",{attrs:{to:"/blog/tip55.html"}},[e._v("Tip 55")]),e._v(" we pushed our Docker Image to Docker Cloud. As a reminder, we created a repository in Docker Cloud and headed back to our command prompt (or terminal) and ran the following commands:")],1),e._v(" "),t("p",[t("code",[e._v("docker login")]),e._v(" to authenticate")]),e._v(" "),t("p",[t("code",[e._v("docker push mbcrump/mbcwebapi:latest")]),e._v(" to push your image to Docker Cloud.")]),e._v(" "),t("p",[e._v("Now that we have a Docker Cloud repository, we can push it to Azure using "),t("a",{attrs:{href:"https://azure.microsoft.com/services/app-service/containers?WT.mc_id=azure-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Web App for Containers"),t("OutboundLink")],1),e._v("?WT.mc_id=azure-azuredevtips-azureappsdev).")]),e._v(" "),t("p",[e._v("Go ahead and log into the Azure Portal and search for "),t("code",[e._v("Web App for Containers")]),e._v(". You should see the following:")]),e._v(" "),t("img",{attrs:{src:e.$withBase("/files/webappcont1.png")}}),e._v(" "),t("p",[e._v("Press the "),t("code",[e._v("Create")]),e._v(" button and you should see the following:")]),e._v(" "),t("img",{attrs:{src:e.$withBase("/files/webappcont2.png")}}),e._v(" "),t("p",[e._v("You should be familiar with (name, resource group, etc.) with the exception being the "),t("code",[e._v("Configure Container")]),e._v(" section.")]),e._v(" "),t("p",[e._v("Here we will use Docker Hub (think Docker Cloud), our repo is public, and the name of the image. Which follows the format "),t("code",[e._v("docker username/our app name:tag")]),e._v(". For a refresher, visit "),t("RouterLink",{attrs:{to:"/blog/tip55/"}},[e._v("Step 2 in yesterday's post")]),e._v(".")],1),e._v(" "),t("p",[e._v("After our Web App for Container is deployed, you can simply go to your new url and append "),t("code",[e._v("/api/values")]),e._v(" to see your new site.")]),e._v(" "),t("img",{attrs:{src:e.$withBase("/files/webappcont3.png")}})])}),[],!1,null,null,null);o.default=a.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[290],{729:function(e,o,t){"use strict";t.r(o);var r=t(69),a=Object(r.a)({},(function(){var e=this,o=e.$createElement,t=e._self._c||o;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("π‘ Learn more : "),t("a",{attrs:{href:"https://docs.microsoft.com/azure/containers/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure for Containers"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"deploy-a-net-core-webapi-project-to-web-app-for-containers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#deploy-a-net-core-webapi-project-to-web-app-for-containers"}},[e._v("#")]),e._v(" Deploy a .NET Core WebAPI Project to Web App for Containers")]),e._v(" "),t("h4",{attrs:{id:"use-net-core-webapi-and-docker-compose"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#use-net-core-webapi-and-docker-compose"}},[e._v("#")]),e._v(" Use .NET Core WebAPI and Docker Compose")]),e._v(" "),t("p",[e._v("How hard do you think it is to:")]),e._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/blog/tip54.html"}},[e._v("Create and Publish a .NET Core WebAPI project")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/blog/tip55.html"}},[e._v("Add it to a Docker Container using Docker Compose and push it to a Docker Hub")])],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/blog/tip56.html"}},[e._v("Use it in Azure with Web App for Containers")])],1)]),e._v(" "),t("p",[e._v("In this mini-series, we'll build on each part starting with creating and publishing a .NET Core WebAPI project. Yesterday, we used Docker Compose to create an image and push it to Docker Cloud and we'll wrap up today by deploying it to Azure using "),t("a",{attrs:{href:"https://azure.microsoft.com/services/app-service/containers?WT.mc_id=azure-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Web App for Containers"),t("OutboundLink")],1),e._v("?WT.mc_id=azure-azuredevtips-azureappsdev).")]),e._v(" "),t("h4",{attrs:{id:"deploy-a-net-core-webapi-project-to-web-app-for-containers-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#deploy-a-net-core-webapi-project-to-web-app-for-containers-2"}},[e._v("#")]),e._v(" Deploy a .NET Core WebAPI Project to Web App for Containers")]),e._v(" "),t("p",[e._v("In "),t("RouterLink",{attrs:{to:"/blog/tip55.html"}},[e._v("Tip 55")]),e._v(" we pushed our Docker Image to Docker Cloud. As a reminder, we created a repository in Docker Cloud and headed back to our command prompt (or terminal) and ran the following commands:")],1),e._v(" "),t("p",[t("code",[e._v("docker login")]),e._v(" to authenticate")]),e._v(" "),t("p",[t("code",[e._v("docker push mbcrump/mbcwebapi:latest")]),e._v(" to push your image to Docker Cloud.")]),e._v(" "),t("p",[e._v("Now that we have a Docker Cloud repository, we can push it to Azure using "),t("a",{attrs:{href:"https://azure.microsoft.com/services/app-service/containers?WT.mc_id=azure-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Web App for Containers"),t("OutboundLink")],1),e._v("?WT.mc_id=azure-azuredevtips-azureappsdev).")]),e._v(" "),t("p",[e._v("Go ahead and log into the Azure Portal and search for "),t("code",[e._v("Web App for Containers")]),e._v(". You should see the following:")]),e._v(" "),t("img",{attrs:{src:e.$withBase("/files/webappcont1.png")}}),e._v(" "),t("p",[e._v("Press the "),t("code",[e._v("Create")]),e._v(" button and you should see the following:")]),e._v(" "),t("img",{attrs:{src:e.$withBase("/files/webappcont2.png")}}),e._v(" "),t("p",[e._v("You should be familiar with (name, resource group, etc.) with the exception being the "),t("code",[e._v("Configure Container")]),e._v(" section.")]),e._v(" "),t("p",[e._v("Here we will use Docker Hub (think Docker Cloud), our repo is public, and the name of the image. Which follows the format "),t("code",[e._v("docker username/our app name:tag")]),e._v(". For a refresher, visit "),t("RouterLink",{attrs:{to:"/blog/tip55/"}},[e._v("Step 2 in yesterday's post")]),e._v(".")],1),e._v(" "),t("p",[e._v("After our Web App for Container is deployed, you can simply go to your new url and append "),t("code",[e._v("/api/values")]),e._v(" to see your new site.")]),e._v(" "),t("img",{attrs:{src:e.$withBase("/files/webappcont3.png")}})])}),[],!1,null,null,null);o.default=a.exports}}]);
|
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[290],{729:function(e,t,r){"use strict";r.r(t);var o=r(69),s=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),r("p",[e._v("π‘ Learn more : "),r("a",{attrs:{href:"https://docs.microsoft.com/azure/containers/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure for Containers"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("h3",{attrs:{id:"docker-registry-vs-docker-repository"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#docker-registry-vs-docker-repository"}},[e._v("#")]),e._v(" Docker Registry vs. Docker Repository")]),e._v(" "),r("p",[e._v("We used "),r("RouterLink",{attrs:{to:"/blog/tip55.html"}},[e._v("Docker Compose in Tip 55")]),e._v(" to create an image using our existing "),r("RouterLink",{attrs:{to:"/blog/tip54.html"}},[e._v("ASP.NET WebAPI project")]),e._v(" and push it to Docker Cloud. I also covered deploying it to Azure using "),r("RouterLink",{attrs:{to:"/blog/tip56.html"}},[e._v("Web App for Containers")]),e._v(". The bit of feedback that I feel that I didn't drive home was the difference between Docker Registry and Docker Repository. I wanted to cover that in this tip.")],1),e._v(" "),r("h4",{attrs:{id:"docker-registry"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#docker-registry"}},[e._v("#")]),e._v(" Docker Registry")]),e._v(" "),r("p",[e._v("Docker Registry is a service that "),r("strong",[e._v("stores")]),e._v(" your docker images, but it could be hosted by a third party and even private if you need so. A couple of examples are:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://azure.microsoft.com/services/container-registry?WT.mc_id=azure-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Container Registry"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://hub.docker.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Docker Hub"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://coreos.com/quay-enterprise/docs/latest/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Quay Enterprise"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("There are also other choices such as Google or AWS Container Registry.")]),e._v(" "),r("h4",{attrs:{id:"docker-repository"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#docker-repository"}},[e._v("#")]),e._v(" Docker Repository")]),e._v(" "),r("p",[e._v("A Docker Repository is a "),r("strong",[e._v("collection")]),e._v(" of related images with same name, that have different tags. Tags are an alphanumeric identifier attached to images within a repository (e.g., 1.1 or latest).")]),e._v(" "),r("p",[e._v("So the command docker "),r("code",[e._v("pull microsoft/aspnetcore:latest")]),e._v(" will download the image tagged "),r("code",[e._v("latest")]),e._v(" within the "),r("code",[e._v("microsoft/aspnetcore")]),e._v(" repository from the Docker Hub registry.")]),e._v(" "),r("p",[e._v("To wrap it up. Look at the image below. We have a Docker Repository named "),r("code",[e._v("microsoft/aspnetcore")]),e._v(" that is stored in a Docker Registry using Docker Hub.")]),e._v(" "),r("img",{attrs:{src:e.$withBase("/files/explaindocker1.png")}}),e._v(" "),r("p",[e._v("We could click on "),r("code",[e._v("tags")]),e._v(" and pull the latest version with "),r("code",[e._v("pull microsoft/aspnetcore:latest")]),e._v(" or version 1.1 with "),r("code",[e._v("pull microsoft/aspnetcore:1.1")])]),e._v(" "),r("img",{attrs:{src:e.$withBase("/files/explaindocker2.png")}})])}),[],!1,null,null,null);t.default=s.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[291],{730:function(e,t,r){"use strict";r.r(t);var o=r(69),s=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),r("p",[e._v("π‘ Learn more : "),r("a",{attrs:{href:"https://docs.microsoft.com/azure/containers/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure for Containers"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("h3",{attrs:{id:"docker-registry-vs-docker-repository"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#docker-registry-vs-docker-repository"}},[e._v("#")]),e._v(" Docker Registry vs. Docker Repository")]),e._v(" "),r("p",[e._v("We used "),r("RouterLink",{attrs:{to:"/blog/tip55.html"}},[e._v("Docker Compose in Tip 55")]),e._v(" to create an image using our existing "),r("RouterLink",{attrs:{to:"/blog/tip54.html"}},[e._v("ASP.NET WebAPI project")]),e._v(" and push it to Docker Cloud. I also covered deploying it to Azure using "),r("RouterLink",{attrs:{to:"/blog/tip56.html"}},[e._v("Web App for Containers")]),e._v(". The bit of feedback that I feel that I didn't drive home was the difference between Docker Registry and Docker Repository. I wanted to cover that in this tip.")],1),e._v(" "),r("h4",{attrs:{id:"docker-registry"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#docker-registry"}},[e._v("#")]),e._v(" Docker Registry")]),e._v(" "),r("p",[e._v("Docker Registry is a service that "),r("strong",[e._v("stores")]),e._v(" your docker images, but it could be hosted by a third party and even private if you need so. A couple of examples are:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://azure.microsoft.com/services/container-registry?WT.mc_id=azure-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Container Registry"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://hub.docker.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Docker Hub"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://coreos.com/quay-enterprise/docs/latest/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Quay Enterprise"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("There are also other choices such as Google or AWS Container Registry.")]),e._v(" "),r("h4",{attrs:{id:"docker-repository"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#docker-repository"}},[e._v("#")]),e._v(" Docker Repository")]),e._v(" "),r("p",[e._v("A Docker Repository is a "),r("strong",[e._v("collection")]),e._v(" of related images with same name, that have different tags. Tags are an alphanumeric identifier attached to images within a repository (e.g., 1.1 or latest).")]),e._v(" "),r("p",[e._v("So the command docker "),r("code",[e._v("pull microsoft/aspnetcore:latest")]),e._v(" will download the image tagged "),r("code",[e._v("latest")]),e._v(" within the "),r("code",[e._v("microsoft/aspnetcore")]),e._v(" repository from the Docker Hub registry.")]),e._v(" "),r("p",[e._v("To wrap it up. Look at the image below. We have a Docker Repository named "),r("code",[e._v("microsoft/aspnetcore")]),e._v(" that is stored in a Docker Registry using Docker Hub.")]),e._v(" "),r("img",{attrs:{src:e.$withBase("/files/explaindocker1.png")}}),e._v(" "),r("p",[e._v("We could click on "),r("code",[e._v("tags")]),e._v(" and pull the latest version with "),r("code",[e._v("pull microsoft/aspnetcore:latest")]),e._v(" or version 1.1 with "),r("code",[e._v("pull microsoft/aspnetcore:1.1")])]),e._v(" "),r("img",{attrs:{src:e.$withBase("/files/explaindocker2.png")}})])}),[],!1,null,null,null);t.default=s.exports}}]);
|
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[292],{731:function(e,t,r){"use strict";r.r(t);var a=r(69),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),r("p",[e._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"}},[e._v("Azure Portal Documentation"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("πΊ Watch the video : "),r("a",{attrs:{href:"https://www.youtube.com/watch?v=l1K3QW1jtoE&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=5?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to Add and Reorder Favorites in the Azure Dashboard"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("h3",{attrs:{id:"add-and-reorder-favorites-in-the-azure-dashboard"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#add-and-reorder-favorites-in-the-azure-dashboard"}},[e._v("#")]),e._v(" Add and Reorder Favorites in the Azure Dashboard")]),e._v(" "),r("p",[e._v("You can easily add and reorder favorites to customize your Azure service list. Another tip is that you can Shift+Space to toggle favorites after typing a name. For example if you type cosmos and press Shift+Space then you can toggle the favorite flag.")]),e._v(" "),r("img",{attrs:{src:e.$withBase("/files/azuretip6.gif")}})])}),[],!1,null,null,null);t.default=o.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[293],{732:function(e,t,r){"use strict";r.r(t);var a=r(69),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),r("p",[e._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"}},[e._v("Azure Portal Documentation"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("πΊ Watch the video : "),r("a",{attrs:{href:"https://www.youtube.com/watch?v=l1K3QW1jtoE&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=5?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to Add and Reorder Favorites in the Azure Dashboard"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("h3",{attrs:{id:"add-and-reorder-favorites-in-the-azure-dashboard"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#add-and-reorder-favorites-in-the-azure-dashboard"}},[e._v("#")]),e._v(" Add and Reorder Favorites in the Azure Dashboard")]),e._v(" "),r("p",[e._v("You can easily add and reorder favorites to customize your Azure service list. Another tip is that you can Shift+Space to toggle favorites after typing a name. For example if you type cosmos and press Shift+Space then you can toggle the favorite flag.")]),e._v(" "),r("img",{attrs:{src:e.$withBase("/files/azuretip6.gif")}})])}),[],!1,null,null,null);t.default=o.exports}}]);
|
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[295],{734:function(t,e,s){"use strict";s.r(e);var a=s(69),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("π‘ Learn more : "),s("a",{attrs:{href:"https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Functions Documentation"),s("OutboundLink")],1),t._v(".")])]),t._v(" "),s("h3",{attrs:{id:"force-https-in-azure-functions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#force-https-in-azure-functions"}},[t._v("#")]),t._v(" Force HTTPS in Azure Functions")]),t._v(" "),s("p",[t._v("I was looking into adding HTTPS to an existing Azure Function that I had and was pleasantly surprised that you can easily do this now through the Azure Portal (and I assume CLI). Simply log into the portal and select your Azure Function, go to "),s("strong",[t._v("Platform Features")]),t._v(" and then click on "),s("strong",[t._v("Custom Domains")]),t._v(" as shown below:")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azhttpsblog1.png")}}),t._v(" "),s("p",[t._v("This will bring you to the "),s("strong",[t._v("Custom Domains")]),t._v(" page and here you can switch HTTPS to On and either add a hostname or domain name. Keep in mind that you don't have to actually add a new hostname/domain to use this feature.")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azhttpsblog2.png")}}),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azhttpsblog3.png")}}),t._v(" "),s("p",[s("strong",[t._v("What if users are accessing my HTTP version?")]),t._v(" They will receive a 301 Status code and be redirected to the HTTPS site.")])])}),[],!1,null,null,null);e.default=n.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[296],{735:function(t,e,s){"use strict";s.r(e);var a=s(69),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("π‘ Learn more : "),s("a",{attrs:{href:"https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Functions Documentation"),s("OutboundLink")],1),t._v(".")])]),t._v(" "),s("h3",{attrs:{id:"force-https-in-azure-functions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#force-https-in-azure-functions"}},[t._v("#")]),t._v(" Force HTTPS in Azure Functions")]),t._v(" "),s("p",[t._v("I was looking into adding HTTPS to an existing Azure Function that I had and was pleasantly surprised that you can easily do this now through the Azure Portal (and I assume CLI). Simply log into the portal and select your Azure Function, go to "),s("strong",[t._v("Platform Features")]),t._v(" and then click on "),s("strong",[t._v("Custom Domains")]),t._v(" as shown below:")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azhttpsblog1.png")}}),t._v(" "),s("p",[t._v("This will bring you to the "),s("strong",[t._v("Custom Domains")]),t._v(" page and here you can switch HTTPS to On and either add a hostname or domain name. Keep in mind that you don't have to actually add a new hostname/domain to use this feature.")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azhttpsblog2.png")}}),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azhttpsblog3.png")}}),t._v(" "),s("p",[s("strong",[t._v("What if users are accessing my HTTP version?")]),t._v(" They will receive a 301 Status code and be redirected to the HTTPS site.")])])}),[],!1,null,null,null);e.default=n.exports}}]);
|
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[296],{735:function(t,e,n){"use strict";n.r(e);var s=n(69),o=Object(s.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("π‘ Learn more : "),n("a",{attrs:{href:"https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Functions Documentation"),n("OutboundLink")],1),t._v(".")])]),t._v(" "),n("h3",{attrs:{id:"open-an-existing-azure-function-in-visual-studio"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#open-an-existing-azure-function-in-visual-studio"}},[t._v("#")]),t._v(" Open an existing Azure Function in Visual Studio")]),t._v(" "),n("p",[t._v("I recently wanted to modify an existing Azure Function in Visual Studio 2017 and noticed this is very straightforward. Simply log into the portal and select your Azure Function, go to "),n("strong",[t._v("Overview")]),t._v(" and then click on "),n("strong",[t._v("Download app content")]),t._v(" as shown below:")]),t._v(" "),n("img",{attrs:{src:t.$withBase("/files/azvsblog1.png")}}),t._v(" "),n("p",[t._v("You'll want to select the "),n("strong",[t._v("Content and Visual Studio Project")]),t._v(" as well as "),n("strong",[t._v("Include app settings in the download")])]),t._v(" "),n("img",{attrs:{src:t.$withBase("/files/azvsblog2.png")}}),t._v(" "),n("p",[n("strong",[t._v("What is app settings?")]),t._v(" This will include a `local.settings.json file which contains your application settings.")]),t._v(" "),n("p",[t._v("Here is the content of my downloaded zip file.")]),t._v(" "),n("p",[n("strong",[t._v("What about third party .dlls?")]),t._v(" Yep, they are included.")]),t._v(" "),n("img",{attrs:{src:t.$withBase("/files/azvsblog3.png")}}),t._v(" "),n("p",[t._v("If you open Visual Studio, you can select the folder and begin working:")]),t._v(" "),n("img",{attrs:{src:t.$withBase("/files/azvsblog4.png")}}),t._v(" "),n("p",[t._v("From here, I'd probably setup continuous deployment through pushing the code to GitHub and using the "),n("strong",[t._v("Deployment options")]),t._v(" found inside "),n("strong",[t._v("Platform features")]),t._v(" in the Azure portal.")]),t._v(" "),n("img",{attrs:{src:t.$withBase("/files/azvsblog5.png")}}),t._v(" "),n("p",[n("strong",[t._v("What about C# projects?")]),t._v(" You will get a .csproj file in the output folder along with C# scripts (csx files).")])])}),[],!1,null,null,null);e.default=o.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[297],{736:function(t,e,n){"use strict";n.r(e);var s=n(69),o=Object(s.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("π‘ Learn more : "),n("a",{attrs:{href:"https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Functions Documentation"),n("OutboundLink")],1),t._v(".")])]),t._v(" "),n("h3",{attrs:{id:"open-an-existing-azure-function-in-visual-studio"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#open-an-existing-azure-function-in-visual-studio"}},[t._v("#")]),t._v(" Open an existing Azure Function in Visual Studio")]),t._v(" "),n("p",[t._v("I recently wanted to modify an existing Azure Function in Visual Studio 2017 and noticed this is very straightforward. Simply log into the portal and select your Azure Function, go to "),n("strong",[t._v("Overview")]),t._v(" and then click on "),n("strong",[t._v("Download app content")]),t._v(" as shown below:")]),t._v(" "),n("img",{attrs:{src:t.$withBase("/files/azvsblog1.png")}}),t._v(" "),n("p",[t._v("You'll want to select the "),n("strong",[t._v("Content and Visual Studio Project")]),t._v(" as well as "),n("strong",[t._v("Include app settings in the download")])]),t._v(" "),n("img",{attrs:{src:t.$withBase("/files/azvsblog2.png")}}),t._v(" "),n("p",[n("strong",[t._v("What is app settings?")]),t._v(" This will include a `local.settings.json file which contains your application settings.")]),t._v(" "),n("p",[t._v("Here is the content of my downloaded zip file.")]),t._v(" "),n("p",[n("strong",[t._v("What about third party .dlls?")]),t._v(" Yep, they are included.")]),t._v(" "),n("img",{attrs:{src:t.$withBase("/files/azvsblog3.png")}}),t._v(" "),n("p",[t._v("If you open Visual Studio, you can select the folder and begin working:")]),t._v(" "),n("img",{attrs:{src:t.$withBase("/files/azvsblog4.png")}}),t._v(" "),n("p",[t._v("From here, I'd probably setup continuous deployment through pushing the code to GitHub and using the "),n("strong",[t._v("Deployment options")]),t._v(" found inside "),n("strong",[t._v("Platform features")]),t._v(" in the Azure portal.")]),t._v(" "),n("img",{attrs:{src:t.$withBase("/files/azvsblog5.png")}}),t._v(" "),n("p",[n("strong",[t._v("What about C# projects?")]),t._v(" You will get a .csproj file in the output folder along with C# scripts (csx files).")])])}),[],!1,null,null,null);e.default=o.exports}}]);
|
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[297],{736:function(t,e,s){"use strict";s.r(e);var n=s(69),a=Object(n.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("π‘ Learn more : "),s("a",{attrs:{href:"https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Functions Documentation"),s("OutboundLink")],1),t._v(".")])]),t._v(" "),s("h3",{attrs:{id:"using-a-different-route-prefix-with-azure-functions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#using-a-different-route-prefix-with-azure-functions"}},[t._v("#")]),t._v(" Using a different route prefix with Azure Functions")]),t._v(" "),s("p",[t._v("Sometimes you have the requirement to use a different route prefix than the one that Azure Functions auto-generates")]),t._v(" "),s("p",[t._v("For example: "),s("code",[t._v("https://mynewapimc.azurewebsites.net/api/HttpTriggerCSharp1")]),t._v(" uses "),s("code",[t._v("api")]),t._v(" before the function name. You might want to either remove "),s("code",[t._v("api")]),t._v(" or change it to another name.")]),t._v(" "),s("p",[t._v("I typically fix this by going into the Azure Portal and clicking on my Azure Function. I then click on "),s("strong",[t._v("Platform Features")]),t._v(" and "),s("strong",[t._v("Advanced tools(Kudu)")]),t._v(".")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azfunckudu1.png")}}),t._v(" "),s("p",[t._v("I then navigate to "),s("code",[t._v("wwwroot")]),t._v(" and hit edit on the "),s("code",[t._v("host.json")]),t._v(" file.")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azfunckudu2.png")}}),t._v(" "),s("p",[t._v("Inside the editor, add the "),s("code",[t._v("routePrefix")]),t._v(" to define the route prefix. So if I wanted the route prefix to be blank, then I'd `use the following:")]),t._v(" "),s("div",{staticClass:"language-json line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"http"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"routePrefix"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br")])]),s("p",[t._v("Simply restart your Azure Function and now my URL is accessable without "),s("code",[t._v("api")]),t._v(".")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azfunckudu3.png")}}),t._v(" "),s("p",[t._v("On the flip side, if you wanted a route prefix, then I'd just add the following")]),t._v(" "),s("div",{staticClass:"language-json line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"http"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"routePrefix"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myroute"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br")])]),s("img",{attrs:{src:t.$withBase("/files/azfunckudu4.png")}})])}),[],!1,null,null,null);e.default=a.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[298],{737:function(t,e,s){"use strict";s.r(e);var n=s(69),a=Object(n.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("π‘ Learn more : "),s("a",{attrs:{href:"https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Functions Documentation"),s("OutboundLink")],1),t._v(".")])]),t._v(" "),s("h3",{attrs:{id:"using-a-different-route-prefix-with-azure-functions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#using-a-different-route-prefix-with-azure-functions"}},[t._v("#")]),t._v(" Using a different route prefix with Azure Functions")]),t._v(" "),s("p",[t._v("Sometimes you have the requirement to use a different route prefix than the one that Azure Functions auto-generates")]),t._v(" "),s("p",[t._v("For example: "),s("code",[t._v("https://mynewapimc.azurewebsites.net/api/HttpTriggerCSharp1")]),t._v(" uses "),s("code",[t._v("api")]),t._v(" before the function name. You might want to either remove "),s("code",[t._v("api")]),t._v(" or change it to another name.")]),t._v(" "),s("p",[t._v("I typically fix this by going into the Azure Portal and clicking on my Azure Function. I then click on "),s("strong",[t._v("Platform Features")]),t._v(" and "),s("strong",[t._v("Advanced tools(Kudu)")]),t._v(".")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azfunckudu1.png")}}),t._v(" "),s("p",[t._v("I then navigate to "),s("code",[t._v("wwwroot")]),t._v(" and hit edit on the "),s("code",[t._v("host.json")]),t._v(" file.")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azfunckudu2.png")}}),t._v(" "),s("p",[t._v("Inside the editor, add the "),s("code",[t._v("routePrefix")]),t._v(" to define the route prefix. So if I wanted the route prefix to be blank, then I'd `use the following:")]),t._v(" "),s("div",{staticClass:"language-json line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"http"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"routePrefix"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br")])]),s("p",[t._v("Simply restart your Azure Function and now my URL is accessable without "),s("code",[t._v("api")]),t._v(".")]),t._v(" "),s("img",{attrs:{src:t.$withBase("/files/azfunckudu3.png")}}),t._v(" "),s("p",[t._v("On the flip side, if you wanted a route prefix, then I'd just add the following")]),t._v(" "),s("div",{staticClass:"language-json line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"http"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"routePrefix"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"myroute"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br")])]),s("img",{attrs:{src:t.$withBase("/files/azfunckudu4.png")}})])}),[],!1,null,null,null);e.default=a.exports}}]);
|
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[298],{737:function(s,t,e){"use strict";e.r(t);var o=e(69),a=Object(o.a)({},(function(){var s=this,t=s.$createElement,e=s._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[s._v("TIP")]),s._v(" "),e("p",[s._v("π‘ Learn more : "),e("a",{attrs:{href:"https://docs.microsoft.com/azure/cosmos-db/introduction?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[s._v("Azure Cosmos DB"),e("OutboundLink")],1),s._v(".")])]),s._v(" "),e("h3",{attrs:{id:"use-visual-studio-code-to-work-with-cosmos-db"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#use-visual-studio-code-to-work-with-cosmos-db"}},[s._v("#")]),s._v(" Use Visual Studio Code to work with Cosmos DB")]),s._v(" "),e("p",[e("strong",[s._v("What is Cosmos DB?")]),s._v(" Azure Cosmos DB is Microsoft's globally distributed, multi-model database. For more info visit "),e("a",{attrs:{href:"https://docs.microsoft.com/azure/cosmos-db/introduction?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[s._v("this page"),e("OutboundLink")],1),s._v(".")]),s._v(" "),e("p",[s._v("Something that I wasn't aware of until yesterday is the "),e("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-cosmosdb",target:"_blank",rel:"noopener noreferrer"}},[s._v("Visual Studio Code extension for Azure Cosmos DB"),e("OutboundLink")],1),s._v(".")]),s._v(" "),e("img",{attrs:{src:s.$withBase("/files/cosmosvscode1.png")}}),s._v(" "),e("p",[s._v("You can easily view, create and delete databases, collections, graphs, and documents, along with other things detailed in their marketplace submission.")]),s._v(" "),e("p",[s._v("After installing it via the extension above, here is what it looks like to setup our Cosmos DB resource and type from within Visual Studio Code.")]),s._v(" "),e("img",{attrs:{src:s.$withBase("/files/cosmosvscode2.gif")}}),s._v(" "),e("p",[s._v("Now we'll setup our database and collection.")]),s._v(" "),e("img",{attrs:{src:s.$withBase("/files/cosmosvscode4.gif")}}),s._v(" "),e("p",[s._v("Finally, we'll create a document and add the following data to it.")]),s._v(" "),e("div",{staticClass:"language-json line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[s._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[s._v('"learn cosmos db"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[s._v("1")]),e("br"),e("span",{staticClass:"line-number"},[s._v("2")]),e("br"),e("span",{staticClass:"line-number"},[s._v("3")]),e("br")])]),e("img",{attrs:{src:s.$withBase("/files/cosmosvscode3.gif")}})])}),[],!1,null,null,null);t.default=a.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[299],{738:function(s,t,e){"use strict";e.r(t);var o=e(69),a=Object(o.a)({},(function(){var s=this,t=s.$createElement,e=s._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[s._v("TIP")]),s._v(" "),e("p",[s._v("π‘ Learn more : "),e("a",{attrs:{href:"https://docs.microsoft.com/azure/cosmos-db/introduction?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[s._v("Azure Cosmos DB"),e("OutboundLink")],1),s._v(".")])]),s._v(" "),e("h3",{attrs:{id:"use-visual-studio-code-to-work-with-cosmos-db"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#use-visual-studio-code-to-work-with-cosmos-db"}},[s._v("#")]),s._v(" Use Visual Studio Code to work with Cosmos DB")]),s._v(" "),e("p",[e("strong",[s._v("What is Cosmos DB?")]),s._v(" Azure Cosmos DB is Microsoft's globally distributed, multi-model database. For more info visit "),e("a",{attrs:{href:"https://docs.microsoft.com/azure/cosmos-db/introduction?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[s._v("this page"),e("OutboundLink")],1),s._v(".")]),s._v(" "),e("p",[s._v("Something that I wasn't aware of until yesterday is the "),e("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-cosmosdb",target:"_blank",rel:"noopener noreferrer"}},[s._v("Visual Studio Code extension for Azure Cosmos DB"),e("OutboundLink")],1),s._v(".")]),s._v(" "),e("img",{attrs:{src:s.$withBase("/files/cosmosvscode1.png")}}),s._v(" "),e("p",[s._v("You can easily view, create and delete databases, collections, graphs, and documents, along with other things detailed in their marketplace submission.")]),s._v(" "),e("p",[s._v("After installing it via the extension above, here is what it looks like to setup our Cosmos DB resource and type from within Visual Studio Code.")]),s._v(" "),e("img",{attrs:{src:s.$withBase("/files/cosmosvscode2.gif")}}),s._v(" "),e("p",[s._v("Now we'll setup our database and collection.")]),s._v(" "),e("img",{attrs:{src:s.$withBase("/files/cosmosvscode4.gif")}}),s._v(" "),e("p",[s._v("Finally, we'll create a document and add the following data to it.")]),s._v(" "),e("div",{staticClass:"language-json line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[s._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[s._v('"learn cosmos db"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[s._v("1")]),e("br"),e("span",{staticClass:"line-number"},[s._v("2")]),e("br"),e("span",{staticClass:"line-number"},[s._v("3")]),e("br")])]),e("img",{attrs:{src:s.$withBase("/files/cosmosvscode3.gif")}})])}),[],!1,null,null,null);t.default=a.exports}}]);
|
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[299],{738:function(t,e,o){"use strict";o.r(e);var a=o(69),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("div",{staticClass:"custom-block tip"},[o("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),o("p",[t._v("π‘ Learn more : "),o("a",{attrs:{href:"https://docs.microsoft.com/azure/cosmos-db/introduction?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Cosmos DB"),o("OutboundLink")],1),t._v(".")])]),t._v(" "),o("h3",{attrs:{id:"using-the-data-migration-tool-with-cosmos-db"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#using-the-data-migration-tool-with-cosmos-db"}},[t._v("#")]),t._v(" Using the Data Migration Tool with Cosmos DB")]),t._v(" "),o("p",[t._v("One tasks that seems to come up over and over is migrating data from one format into another. I was recently building out an API and needed to dump some data into Cosmos DB. The tool that made short work of this was the "),o("a",{attrs:{href:"https://www.microsoft.com/en-us/download/details.aspx?id=46436",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure DocumentDB Data Migration Tool"),o("OutboundLink")],1),t._v(". In my case, I needed to dump a large JSON file into Cosmos DB. Here is how I did it.")]),t._v(" "),o("h4",{attrs:{id:"the-tools-sample-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#the-tools-sample-data"}},[t._v("#")]),t._v(" The Tools + Sample Data")]),t._v(" "),o("p",[t._v("Download and install the "),o("a",{attrs:{href:"https://www.microsoft.com/en-us/download/details.aspx?id=46436",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure DocumentDB Data Migration Tool"),o("OutboundLink")],1)]),t._v(" "),o("p",[t._v("Grab whatever sample file that you'd like to experiment with. I'm using the "),o("code",[t._v("en_kjv.json")]),t._v(" JSON file from "),o("a",{attrs:{href:"https://github.com/thiagobodruk/bible/tree/master/json?WT.mc_id=github-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),o("OutboundLink")],1)]),t._v(" "),o("p",[t._v("Now we're ready to begin work!")]),t._v(" "),o("h4",{attrs:{id:"get-to-work"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#get-to-work"}},[t._v("#")]),t._v(" Get to Work")]),t._v(" "),o("p",[t._v("Open the Data Migration Tool and under "),o("strong",[t._v("Source Information")]),t._v(", point to the local JSON file as shown below.")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos1.png")}}),t._v(" "),o("p",[t._v("Ensure you have a Cosmos DB database id and collection. I'm using the following:")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos7.png")}}),t._v(" "),o("p",[t._v("Go to "),o("strong",[t._v("Keys")]),t._v(" (inside your Cosmos DB blade in the portal) to copy the "),o("strong",[t._v("Primary Connection String")])]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos2.png")}}),t._v(" "),o("p",[t._v("You'll need to append the Database name to the end of the string. For example "),o("code",[t._v("Database=bible")]),t._v(" will be appended to the string "),o("code",[t._v("AccountEndpoint=https://mbcrump.documents.azure.com:443/;AccountKey=VxDEcJblah==;Database=bible")]),t._v(" that I copied out of the portal. Now press "),o("strong",[t._v("Verify Connection")]),t._v(".")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos3.png")}}),t._v(" "),o("p",[t._v("You'll need to add the "),o("strong",[t._v("Collection")]),t._v(" and in my case it is "),o("code",[t._v("verses")]),t._v(". We'll take the defaults on the next two screens and you'll finally see a "),o("strong",[t._v("Confirm inport settings")]),t._v(" page.")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos4.png")}}),t._v(" "),o("p",[t._v("You can even click on "),o("strong",[t._v("View Command")]),t._v(" to see the command that will be used to migrate your data. This is helpful to just learn the syntax.")]),t._v(" "),o("p",[t._v("You'll finally see the Import has completed with 66 transferred. (This is the total number of books in the Bible.)")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos5.png")}}),t._v(" "),o("p",[t._v("If you go back to the Azure Portal and open Cosmos DB and look under "),o("strong",[t._v("Data Explorer")]),t._v(", you'll see the data has been imported successfully into our collection.")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos6.png")}})])}),[],!1,null,null,null);e.default=s.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[300],{739:function(t,e,o){"use strict";o.r(e);var a=o(69),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("div",{staticClass:"custom-block tip"},[o("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),o("p",[t._v("π‘ Learn more : "),o("a",{attrs:{href:"https://docs.microsoft.com/azure/cosmos-db/introduction?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Cosmos DB"),o("OutboundLink")],1),t._v(".")])]),t._v(" "),o("h3",{attrs:{id:"using-the-data-migration-tool-with-cosmos-db"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#using-the-data-migration-tool-with-cosmos-db"}},[t._v("#")]),t._v(" Using the Data Migration Tool with Cosmos DB")]),t._v(" "),o("p",[t._v("One tasks that seems to come up over and over is migrating data from one format into another. I was recently building out an API and needed to dump some data into Cosmos DB. The tool that made short work of this was the "),o("a",{attrs:{href:"https://www.microsoft.com/en-us/download/details.aspx?id=46436",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure DocumentDB Data Migration Tool"),o("OutboundLink")],1),t._v(". In my case, I needed to dump a large JSON file into Cosmos DB. Here is how I did it.")]),t._v(" "),o("h4",{attrs:{id:"the-tools-sample-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#the-tools-sample-data"}},[t._v("#")]),t._v(" The Tools + Sample Data")]),t._v(" "),o("p",[t._v("Download and install the "),o("a",{attrs:{href:"https://www.microsoft.com/en-us/download/details.aspx?id=46436",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure DocumentDB Data Migration Tool"),o("OutboundLink")],1)]),t._v(" "),o("p",[t._v("Grab whatever sample file that you'd like to experiment with. I'm using the "),o("code",[t._v("en_kjv.json")]),t._v(" JSON file from "),o("a",{attrs:{href:"https://github.com/thiagobodruk/bible/tree/master/json?WT.mc_id=github-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),o("OutboundLink")],1)]),t._v(" "),o("p",[t._v("Now we're ready to begin work!")]),t._v(" "),o("h4",{attrs:{id:"get-to-work"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#get-to-work"}},[t._v("#")]),t._v(" Get to Work")]),t._v(" "),o("p",[t._v("Open the Data Migration Tool and under "),o("strong",[t._v("Source Information")]),t._v(", point to the local JSON file as shown below.")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos1.png")}}),t._v(" "),o("p",[t._v("Ensure you have a Cosmos DB database id and collection. I'm using the following:")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos7.png")}}),t._v(" "),o("p",[t._v("Go to "),o("strong",[t._v("Keys")]),t._v(" (inside your Cosmos DB blade in the portal) to copy the "),o("strong",[t._v("Primary Connection String")])]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos2.png")}}),t._v(" "),o("p",[t._v("You'll need to append the Database name to the end of the string. For example "),o("code",[t._v("Database=bible")]),t._v(" will be appended to the string "),o("code",[t._v("AccountEndpoint=https://mbcrump.documents.azure.com:443/;AccountKey=VxDEcJblah==;Database=bible")]),t._v(" that I copied out of the portal. Now press "),o("strong",[t._v("Verify Connection")]),t._v(".")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos3.png")}}),t._v(" "),o("p",[t._v("You'll need to add the "),o("strong",[t._v("Collection")]),t._v(" and in my case it is "),o("code",[t._v("verses")]),t._v(". We'll take the defaults on the next two screens and you'll finally see a "),o("strong",[t._v("Confirm inport settings")]),t._v(" page.")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos4.png")}}),t._v(" "),o("p",[t._v("You can even click on "),o("strong",[t._v("View Command")]),t._v(" to see the command that will be used to migrate your data. This is helpful to just learn the syntax.")]),t._v(" "),o("p",[t._v("You'll finally see the Import has completed with 66 transferred. (This is the total number of books in the Bible.)")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos5.png")}}),t._v(" "),o("p",[t._v("If you go back to the Azure Portal and open Cosmos DB and look under "),o("strong",[t._v("Data Explorer")]),t._v(", you'll see the data has been imported successfully into our collection.")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/migrationcosmos6.png")}})])}),[],!1,null,null,null);e.default=s.exports}}]);
|
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[300],{739:function(e,s,t){"use strict";t.r(s);var r=t(69),a=Object(r.a)({},(function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("π‘ Learn more : "),t("a",{attrs:{href:"https://docs.microsoft.com/azure/cosmos-db/introduction?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Cosmos DB"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"querying-documents-properties-with-special-characters-in-cosmos-db"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#querying-documents-properties-with-special-characters-in-cosmos-db"}},[e._v("#")]),e._v(" Querying documents properties with special characters in Cosmos DB")]),e._v(" "),t("p",[e._v("I was working with Cosmos DB yesterday and hit the following snag that I couldn't query my document that had special characters in it. Such is an example:")]),e._v(" "),t("img",{attrs:{src:e.$withBase("/files/querycosmos1.png")}}),e._v(" "),t("p",[e._v("Notice the "),t("code",[e._v('"$type": "mytype",')]),e._v(" has a "),t("code",[e._v("$")]),e._v(" in it.")]),e._v(" "),t("p",[e._v("If you head over to "),t("strong",[e._v("Query Explorer")]),e._v(" and try to query it using...")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("SELECT *\nFROM testing t\nWHERE t.$type = 'mytype'\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br")])]),t("p",[e._v("... then you'll see the following error:")]),e._v(" "),t("img",{attrs:{src:e.$withBase("/files/querycosmos2.png")}}),e._v(" "),t("p",[e._v("I was able to fix this by wrapping the property inside "),t("code",[e._v("[]")]),e._v(" such as...")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("SELECT *\nFROM testing t\nWHERE t[\"$type\"] = 'mytype'\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br")])]),t("p",[e._v("Now my query returned properly")]),e._v(" "),t("img",{attrs:{src:e.$withBase("/files/querycosmos3.png")}})])}),[],!1,null,null,null);s.default=a.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[301],{740:function(e,s,t){"use strict";t.r(s);var r=t(69),a=Object(r.a)({},(function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("π‘ Learn more : "),t("a",{attrs:{href:"https://docs.microsoft.com/azure/cosmos-db/introduction?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Cosmos DB"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"querying-documents-properties-with-special-characters-in-cosmos-db"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#querying-documents-properties-with-special-characters-in-cosmos-db"}},[e._v("#")]),e._v(" Querying documents properties with special characters in Cosmos DB")]),e._v(" "),t("p",[e._v("I was working with Cosmos DB yesterday and hit the following snag that I couldn't query my document that had special characters in it. Such is an example:")]),e._v(" "),t("img",{attrs:{src:e.$withBase("/files/querycosmos1.png")}}),e._v(" "),t("p",[e._v("Notice the "),t("code",[e._v('"$type": "mytype",')]),e._v(" has a "),t("code",[e._v("$")]),e._v(" in it.")]),e._v(" "),t("p",[e._v("If you head over to "),t("strong",[e._v("Query Explorer")]),e._v(" and try to query it using...")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("SELECT *\nFROM testing t\nWHERE t.$type = 'mytype'\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br")])]),t("p",[e._v("... then you'll see the following error:")]),e._v(" "),t("img",{attrs:{src:e.$withBase("/files/querycosmos2.png")}}),e._v(" "),t("p",[e._v("I was able to fix this by wrapping the property inside "),t("code",[e._v("[]")]),e._v(" such as...")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("SELECT *\nFROM testing t\nWHERE t[\"$type\"] = 'mytype'\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br")])]),t("p",[e._v("Now my query returned properly")]),e._v(" "),t("img",{attrs:{src:e.$withBase("/files/querycosmos3.png")}})])}),[],!1,null,null,null);s.default=a.exports}}]);
|
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[302],{741:function(e,t,r){"use strict";r.r(t);var o=r(69),l=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),r("p",[e._v("π‘ Learn more : "),r("a",{attrs:{href:"https://docs.microsoft.com/azure/cloud-shell/overview?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Overview of Azure Cloud Shell"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("h3",{attrs:{id:"access-and-embed-azure-cloud-shell-anywhere"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#access-and-embed-azure-cloud-shell-anywhere"}},[e._v("#")]),e._v(" Access and embed Azure Cloud Shell Anywhere")]),e._v(" "),r("p",[e._v("I've discussed at great lengths many aspects of Azure Cloud Shell. Some of my recent posts include :")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip11.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Access Cloud Shell from within Microsoft Docs"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip13.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Demystifying storage in Cloud Shell"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip14.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Generate SSH public key to log into Linux VM with Cloud Shell"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip15.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Underlying Software in Azure Cloud Shell"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip17.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Use PowerShell with Azure Cloud Shell"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("Today, I'd like to discuss the new functionality with Azure Cloud Shell, which allows you to spin up a shell in your browser by simply going to "),r("a",{attrs:{href:"http://shell.azure.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("shell.azure.com"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("img",{attrs:{src:e.$withBase("/files/cloudshellbrowser1.png")}}),e._v(" "),r("p",[e._v("Keep in mind that this is the same Cloud Shell you know and love, it is just easily accessible anywhere you have a browser.")]),e._v(" "),r("h4",{attrs:{id:"jump-to-the-powershell-or-bash-instance"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#jump-to-the-powershell-or-bash-instance"}},[e._v("#")]),e._v(" Jump to the PowerShell or BASH instance")]),e._v(" "),r("p",[e._v("You can also specify which instance of Cloud Shell you wish to launch (ex. PowerShell or BASH) by modifying the URL.")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://shell.azure.com/powershell",target:"_blank",rel:"noopener noreferrer"}},[e._v("shell.azure.com/powershell"),r("OutboundLink")],1),e._v(" which will launch a PowerShell instance")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://shell.azure.com/bash",target:"_blank",rel:"noopener noreferrer"}},[e._v("shell.azure.com/bash"),r("OutboundLink")],1),e._v(" which will launch a BASH instance")])]),e._v(" "),r("h4",{attrs:{id:"embed-cloud-shell"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#embed-cloud-shell"}},[e._v("#")]),e._v(" Embed Cloud Shell")]),e._v(" "),r("p",[e._v("According to the "),r("a",{attrs:{href:"https://docs.microsoft.com/azure/cloud-shell/embed-cloud-shell?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("docs"),r("OutboundLink")],1),e._v(", you can easily embed this into Markdown or a Pop-up.")]),e._v(" "),r("p",[e._v("For instance, this button "),r("a",{attrs:{href:"https://shell.azure.com",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://shell.azure.com/images/launchcloudshell.png",alt:"Launch Cloud Shell",title:"Launch Cloud Shell"}}),r("OutboundLink")],1),e._v(" was created using the Markdown the docs team provided. They also have a sample for a pop-up.")])])}),[],!1,null,null,null);t.default=l.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[303],{742:function(e,t,r){"use strict";r.r(t);var o=r(69),l=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),r("p",[e._v("π‘ Learn more : "),r("a",{attrs:{href:"https://docs.microsoft.com/azure/cloud-shell/overview?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Overview of Azure Cloud Shell"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("h3",{attrs:{id:"access-and-embed-azure-cloud-shell-anywhere"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#access-and-embed-azure-cloud-shell-anywhere"}},[e._v("#")]),e._v(" Access and embed Azure Cloud Shell Anywhere")]),e._v(" "),r("p",[e._v("I've discussed at great lengths many aspects of Azure Cloud Shell. Some of my recent posts include :")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip11.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Access Cloud Shell from within Microsoft Docs"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip13.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Demystifying storage in Cloud Shell"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip14.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Generate SSH public key to log into Linux VM with Cloud Shell"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip15.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Underlying Software in Azure Cloud Shell"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip17.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Use PowerShell with Azure Cloud Shell"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("Today, I'd like to discuss the new functionality with Azure Cloud Shell, which allows you to spin up a shell in your browser by simply going to "),r("a",{attrs:{href:"http://shell.azure.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("shell.azure.com"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("img",{attrs:{src:e.$withBase("/files/cloudshellbrowser1.png")}}),e._v(" "),r("p",[e._v("Keep in mind that this is the same Cloud Shell you know and love, it is just easily accessible anywhere you have a browser.")]),e._v(" "),r("h4",{attrs:{id:"jump-to-the-powershell-or-bash-instance"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#jump-to-the-powershell-or-bash-instance"}},[e._v("#")]),e._v(" Jump to the PowerShell or BASH instance")]),e._v(" "),r("p",[e._v("You can also specify which instance of Cloud Shell you wish to launch (ex. PowerShell or BASH) by modifying the URL.")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://shell.azure.com/powershell",target:"_blank",rel:"noopener noreferrer"}},[e._v("shell.azure.com/powershell"),r("OutboundLink")],1),e._v(" which will launch a PowerShell instance")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://shell.azure.com/bash",target:"_blank",rel:"noopener noreferrer"}},[e._v("shell.azure.com/bash"),r("OutboundLink")],1),e._v(" which will launch a BASH instance")])]),e._v(" "),r("h4",{attrs:{id:"embed-cloud-shell"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#embed-cloud-shell"}},[e._v("#")]),e._v(" Embed Cloud Shell")]),e._v(" "),r("p",[e._v("According to the "),r("a",{attrs:{href:"https://docs.microsoft.com/azure/cloud-shell/embed-cloud-shell?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("docs"),r("OutboundLink")],1),e._v(", you can easily embed this into Markdown or a Pop-up.")]),e._v(" "),r("p",[e._v("For instance, this button "),r("a",{attrs:{href:"https://shell.azure.com",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://shell.azure.com/images/launchcloudshell.png",alt:"Launch Cloud Shell",title:"Launch Cloud Shell"}}),r("OutboundLink")],1),e._v(" was created using the Markdown the docs team provided. They also have a sample for a pop-up.")])])}),[],!1,null,null,null);t.default=l.exports}}]);
|
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[303],{742: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/cli/azure?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Command-Line Interface (CLI)"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("πΊ Watch the video : "),a("a",{attrs:{href:"https://www.youtube.com/watch?v=zcKTr2uQwKA&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=6?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to use the table parameter in the Azure CLI"),a("OutboundLink")],1),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"use-the-table-parameter-in-the-azure-cli"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#use-the-table-parameter-in-the-azure-cli"}},[e._v("#")]),e._v(" Use the Table Parameter in the Azure CLI")]),e._v(" "),a("p",[e._v("By default the Azure CLI 2.0 returns results from a command in JSON. You can easily modify this by adding "),a("code",[e._v("--output Table")]),e._v(". Try out the command found in the Gif below with "),a("code",[e._v("az vm image list-publishers --location NorthCentralUS --output Table")])]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/azuretip7.gif")}})])}),[],!1,null,null,null);t.default=s.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[304],{743: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/cli/azure?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("Azure Command-Line Interface (CLI)"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("πΊ Watch the video : "),a("a",{attrs:{href:"https://www.youtube.com/watch?v=zcKTr2uQwKA&list=PLLasX02E8BPCNCK8Thcxu-Y-XcBUbhFWC&index=6?WT.mc_id=youtube-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to use the table parameter in the Azure CLI"),a("OutboundLink")],1),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"use-the-table-parameter-in-the-azure-cli"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#use-the-table-parameter-in-the-azure-cli"}},[e._v("#")]),e._v(" Use the Table Parameter in the Azure CLI")]),e._v(" "),a("p",[e._v("By default the Azure CLI 2.0 returns results from a command in JSON. You can easily modify this by adding "),a("code",[e._v("--output Table")]),e._v(". Try out the command found in the Gif below with "),a("code",[e._v("az vm image list-publishers --location NorthCentralUS --output Table")])]),e._v(" "),a("img",{attrs:{src:e.$withBase("/files/azuretip7.gif")}})])}),[],!1,null,null,null);t.default=s.exports}}]);
|
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[308],{747:function(t,e,a){"use strict";a.r(e);var s=a(69),o=Object(s.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/storage/common/storage-account-overview?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure storage account overview"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("h3",{attrs:{id:"working-with-azure-storage-blobs-and-files-through-the-portal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#working-with-azure-storage-blobs-and-files-through-the-portal"}},[t._v("#")]),t._v(" Working with Azure Storage Blobs and Files through the Portal")]),t._v(" "),a("p",[t._v("Azure Storage is described as a service that provides storages that is available, secure, durable, scalable, and redundant. Azure Storage consists of 1) Blob storage, 2) File Storage, and 3) Queue storage. In this post, we'll take a look at Blob storage and how to get started using it through the Azure Portal.")]),t._v(" "),a("p",[t._v("Go ahead and open the Azure Portal and click "),a("strong",[t._v("Create a Resource")]),t._v(" and select "),a("strong",[t._v("Azure Storage")]),t._v(". We'll keep it simple as shown below to get started.")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/files/storageacct1.png")}}),t._v(" "),a("p",[t._v("Once complete, go into the resource and look under "),a("strong",[t._v("Services")]),t._v(".")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/files/storageacct2.png")}}),t._v(" "),a("p",[t._v("Go ahead and click on "),a("strong",[t._v("Blobs")]),t._v(" and create a "),a("strong",[t._v("Container")]),t._v(" and give it the name "),a("strong",[t._v("images")]),t._v(".")]),t._v(" "),a("p",[a("strong",[t._v("Remember this!")]),t._v(" Think of a container in this sense as a folder. https://myblob/"),a("strong",[t._v("container")]),t._v("/image1.jpg")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/files/storageacct3.png")}}),t._v(" "),a("p",[t._v("You'll now want to click "),a("strong",[t._v("Upload")]),t._v(" and select a file on your physical disk.")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/files/storageacct4.png")}}),t._v(" "),a("p",[t._v("Now that your file is uploaded, select it, and you can click on the ellipsis and select "),a("strong",[t._v("Blob properties")]),t._v(" to see additional details.")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/files/storageacct5.png")}})])}),[],!1,null,null,null);e.default=o.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[309],{748:function(t,e,a){"use strict";a.r(e);var s=a(69),o=Object(s.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/storage/common/storage-account-overview?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure storage account overview"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("h3",{attrs:{id:"working-with-azure-storage-blobs-and-files-through-the-portal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#working-with-azure-storage-blobs-and-files-through-the-portal"}},[t._v("#")]),t._v(" Working with Azure Storage Blobs and Files through the Portal")]),t._v(" "),a("p",[t._v("Azure Storage is described as a service that provides storages that is available, secure, durable, scalable, and redundant. Azure Storage consists of 1) Blob storage, 2) File Storage, and 3) Queue storage. In this post, we'll take a look at Blob storage and how to get started using it through the Azure Portal.")]),t._v(" "),a("p",[t._v("Go ahead and open the Azure Portal and click "),a("strong",[t._v("Create a Resource")]),t._v(" and select "),a("strong",[t._v("Azure Storage")]),t._v(". We'll keep it simple as shown below to get started.")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/files/storageacct1.png")}}),t._v(" "),a("p",[t._v("Once complete, go into the resource and look under "),a("strong",[t._v("Services")]),t._v(".")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/files/storageacct2.png")}}),t._v(" "),a("p",[t._v("Go ahead and click on "),a("strong",[t._v("Blobs")]),t._v(" and create a "),a("strong",[t._v("Container")]),t._v(" and give it the name "),a("strong",[t._v("images")]),t._v(".")]),t._v(" "),a("p",[a("strong",[t._v("Remember this!")]),t._v(" Think of a container in this sense as a folder. https://myblob/"),a("strong",[t._v("container")]),t._v("/image1.jpg")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/files/storageacct3.png")}}),t._v(" "),a("p",[t._v("You'll now want to click "),a("strong",[t._v("Upload")]),t._v(" and select a file on your physical disk.")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/files/storageacct4.png")}}),t._v(" "),a("p",[t._v("Now that your file is uploaded, select it, and you can click on the ellipsis and select "),a("strong",[t._v("Blob properties")]),t._v(" to see additional details.")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/files/storageacct5.png")}})])}),[],!1,null,null,null);e.default=o.exports}}]);
|
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[311],{750:function(t,e,r){"use strict";r.r(e);var o=r(69),a=Object(o.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/storage/common/storage-account-overview?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure storage account overview"),r("OutboundLink")],1),t._v(".")])]),t._v(" "),r("h3",{attrs:{id:"working-with-azure-storage-explorer"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#working-with-azure-storage-explorer"}},[t._v("#")]),t._v(" Working with Azure Storage Explorer")]),t._v(" "),r("p",[t._v("This week we've reviewed the following options with Azure Storage :")]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip74.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Working with Azure Storage Blobs and Files through the Portal"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip75.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Create an Azure Storage Blob Container through C#"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip76.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Uploading and Downloading a Stream into an Azure Storage Blob"),r("OutboundLink")],1)])]),t._v(" "),r("p",[t._v("While it has been easy working with Azure Storage through the Portal and C#, one gem that I haven't covered was Azure Storage Explorer. In this post, we'll take a look at it.")]),t._v(" "),r("p",[r("strong",[t._v("What is it?")]),t._v(" "),r("a",{attrs:{href:"https://azure.microsoft.com/features/storage-explorer?WT.mc_id=azure-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Storage Manager"),r("OutboundLink")],1),t._v(" allows you to easily manage the contents of your storage account. It comes complete with features such as: upload, download, and manage blobs, files, queues, tables, and Cosmos DB entities.")]),t._v(" "),r("h4",{attrs:{id:"how-i-typically-work-with-azure-storage-explorer"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#how-i-typically-work-with-azure-storage-explorer"}},[t._v("#")]),t._v(" How I typically work with Azure Storage Explorer")]),t._v(" "),r("p",[t._v("After downloading the tool, I typically begin with the option "),r("strong",[t._v("Use a connection string or a shared access signature URI")]),t._v(" as shown below.")]),t._v(" "),r("img",{attrs:{src:t.$withBase("/files/azstorageexp1.png")}}),t._v(" "),r("p",[t._v("I then switch over to my Azure Storage account that I want to work with and look under "),r("strong",[t._v("Settings")]),t._v(", then "),r("strong",[t._v("Access Keys")]),t._v(" and copy the connection string to my clipboard.")]),t._v(" "),r("img",{attrs:{src:t.$withBase("/files/storagethroughcsharp1.png")}}),t._v(" "),r("p",[t._v("I paste that into Azure Storage Explorer and now have access to my data.")]),t._v(" "),r("img",{attrs:{src:t.$withBase("/files/azstorageexp2.png")}}),t._v(" "),r("p",[t._v("Now, I can do things such for my table storage such as CRUD operations as well as querying.")]),t._v(" "),r("img",{attrs:{src:t.$withBase("/files/azstorageexp3.gif")}})])}),[],!1,null,null,null);e.default=a.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[312],{751:function(t,e,r){"use strict";r.r(e);var o=r(69),a=Object(o.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/storage/common/storage-account-overview?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure storage account overview"),r("OutboundLink")],1),t._v(".")])]),t._v(" "),r("h3",{attrs:{id:"working-with-azure-storage-explorer"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#working-with-azure-storage-explorer"}},[t._v("#")]),t._v(" Working with Azure Storage Explorer")]),t._v(" "),r("p",[t._v("This week we've reviewed the following options with Azure Storage :")]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip74.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Working with Azure Storage Blobs and Files through the Portal"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip75.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Create an Azure Storage Blob Container through C#"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://microsoft.github.io/AzureTipsAndTricks/blog/tip76.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Uploading and Downloading a Stream into an Azure Storage Blob"),r("OutboundLink")],1)])]),t._v(" "),r("p",[t._v("While it has been easy working with Azure Storage through the Portal and C#, one gem that I haven't covered was Azure Storage Explorer. In this post, we'll take a look at it.")]),t._v(" "),r("p",[r("strong",[t._v("What is it?")]),t._v(" "),r("a",{attrs:{href:"https://azure.microsoft.com/features/storage-explorer?WT.mc_id=azure-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Storage Manager"),r("OutboundLink")],1),t._v(" allows you to easily manage the contents of your storage account. It comes complete with features such as: upload, download, and manage blobs, files, queues, tables, and Cosmos DB entities.")]),t._v(" "),r("h4",{attrs:{id:"how-i-typically-work-with-azure-storage-explorer"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#how-i-typically-work-with-azure-storage-explorer"}},[t._v("#")]),t._v(" How I typically work with Azure Storage Explorer")]),t._v(" "),r("p",[t._v("After downloading the tool, I typically begin with the option "),r("strong",[t._v("Use a connection string or a shared access signature URI")]),t._v(" as shown below.")]),t._v(" "),r("img",{attrs:{src:t.$withBase("/files/azstorageexp1.png")}}),t._v(" "),r("p",[t._v("I then switch over to my Azure Storage account that I want to work with and look under "),r("strong",[t._v("Settings")]),t._v(", then "),r("strong",[t._v("Access Keys")]),t._v(" and copy the connection string to my clipboard.")]),t._v(" "),r("img",{attrs:{src:t.$withBase("/files/storagethroughcsharp1.png")}}),t._v(" "),r("p",[t._v("I paste that into Azure Storage Explorer and now have access to my data.")]),t._v(" "),r("img",{attrs:{src:t.$withBase("/files/azstorageexp2.png")}}),t._v(" "),r("p",[t._v("Now, I can do things such for my table storage such as CRUD operations as well as querying.")]),t._v(" "),r("img",{attrs:{src:t.$withBase("/files/azstorageexp3.gif")}})])}),[],!1,null,null,null);e.default=a.exports}}]);
|
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[313],{752:function(t,e,o){"use strict";o.r(e);var a=o(69),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("div",{staticClass:"custom-block tip"},[o("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),o("p",[t._v("π‘ Learn more : "),o("a",{attrs:{href:"https://docs.microsoft.com/cli/azure?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Command-Line Interface (CLI)"),o("OutboundLink")],1),t._v(".")])]),t._v(" "),o("h4",{attrs:{id:"configure-the-azure-cli-to-set-output-defaults-and-more"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#configure-the-azure-cli-to-set-output-defaults-and-more"}},[t._v("#")]),t._v(" Configure the Azure CLI to set Output Defaults and more")]),t._v(" "),o("p",[t._v("In my last tip, I covered using the "),o("code",[t._v("--output Table")]),t._v(" parameter to customize the results from the Azure CLI. You can also set it as a default amongst other thing. Simply run "),o("code",[t._v("az configure")]),t._v(" and you'll see the following :")]),t._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",[o("code",[t._v("Your settings can be found at /home/mbcrump/.azure/config\nYour current configuration is as follows:\n\n[cloud]\nname = AzureCloud\n\n[core]\nfirst_run = yes\noutput = table\ncollect_telemetry = yes\n\n[logging]\nenable_log_file = no\n\nDo you wish to change your settings? (y/N):\n")])])]),o("p",[t._v("If you press Y, then you'll get an option to change the default output as shown below:")]),t._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",[o("code",[t._v("What default output format would you like?\n [1] json - JSON formatted output that most closely matches API responses\n [2] jsonc - Colored JSON formatted output that most closely matches API responses\n [3] table - Human-readable output format\n [4] tsv - Tab and Newline delimited, great for GREP, AWK, etc.\n")])])]),o("p",[t._v("If you make a selection, then you'll see an option to add file logging:")]),t._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",[o("code",[t._v("Would you like to enable logging to file?\n")])])]),o("p",[t._v("And finally an option to opt into data collection:")]),t._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",[o("code",[t._v('Microsoft would like to collect anonymous Azure CLI usage data to improve our CLI. Participation is voluntary and when you choose to participate, your device automatically sends information to Microsoft about how you use Azure CLI. To update your choice, run "az configure" again.\nSelect y to enable data collection. (Y/n):\n')])])]),o("p",[t._v("Here is a sample of setting the configuration and running a command:")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/azuretip8.gif")}})])}),[],!1,null,null,null);e.default=n.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[314],{753:function(t,e,o){"use strict";o.r(e);var a=o(69),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("div",{staticClass:"custom-block tip"},[o("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),o("p",[t._v("π‘ Learn more : "),o("a",{attrs:{href:"https://docs.microsoft.com/cli/azure?WT.mc_id=docs-azuredevtips-azureappsdev",target:"_blank",rel:"noopener noreferrer"}},[t._v("Azure Command-Line Interface (CLI)"),o("OutboundLink")],1),t._v(".")])]),t._v(" "),o("h4",{attrs:{id:"configure-the-azure-cli-to-set-output-defaults-and-more"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#configure-the-azure-cli-to-set-output-defaults-and-more"}},[t._v("#")]),t._v(" Configure the Azure CLI to set Output Defaults and more")]),t._v(" "),o("p",[t._v("In my last tip, I covered using the "),o("code",[t._v("--output Table")]),t._v(" parameter to customize the results from the Azure CLI. You can also set it as a default amongst other thing. Simply run "),o("code",[t._v("az configure")]),t._v(" and you'll see the following :")]),t._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",[o("code",[t._v("Your settings can be found at /home/mbcrump/.azure/config\nYour current configuration is as follows:\n\n[cloud]\nname = AzureCloud\n\n[core]\nfirst_run = yes\noutput = table\ncollect_telemetry = yes\n\n[logging]\nenable_log_file = no\n\nDo you wish to change your settings? (y/N):\n")])])]),o("p",[t._v("If you press Y, then you'll get an option to change the default output as shown below:")]),t._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",[o("code",[t._v("What default output format would you like?\n [1] json - JSON formatted output that most closely matches API responses\n [2] jsonc - Colored JSON formatted output that most closely matches API responses\n [3] table - Human-readable output format\n [4] tsv - Tab and Newline delimited, great for GREP, AWK, etc.\n")])])]),o("p",[t._v("If you make a selection, then you'll see an option to add file logging:")]),t._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",[o("code",[t._v("Would you like to enable logging to file?\n")])])]),o("p",[t._v("And finally an option to opt into data collection:")]),t._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",[o("code",[t._v('Microsoft would like to collect anonymous Azure CLI usage data to improve our CLI. Participation is voluntary and when you choose to participate, your device automatically sends information to Microsoft about how you use Azure CLI. To update your choice, run "az configure" again.\nSelect y to enable data collection. (Y/n):\n')])])]),o("p",[t._v("Here is a sample of setting the configuration and running a command:")]),t._v(" "),o("img",{attrs:{src:t.$withBase("/files/azuretip8.gif")}})])}),[],!1,null,null,null);e.default=n.exports}}]);
|
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
Π Π°Π·Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π΅ Π±ΡΠ»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΠΈΠ·-Π·Π° ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΠΎΠΊΠ°Π·Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅
ΠΠ°Π³ΡΡΠ·ΠΊΠ°β¦
Π‘ΡΡΠ»ΠΊΠ° Π² Π½ΠΎΠ²ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅