{"id":320,"date":"2021-10-23T17:50:38","date_gmt":"2021-10-23T16:50:38","guid":{"rendered":"http:\/\/192.168.8.123\/?p=320"},"modified":"2022-02-11T11:23:26","modified_gmt":"2022-02-11T11:23:26","slug":"building-a-back-end-api-by-using-azure-storage-and-the-web-apps-feature-of-azure-app-service","status":"publish","type":"post","link":"https:\/\/exceedthecloud.com\/?p=320","title":{"rendered":"Building a back-end API by using Azure Storage and the Web Apps feature of Azure App Service"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>Prerequisites for this lab : PowerShell \/ Visual Studio Code \/ Azure Account \/ <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/marcelin76\/saves\/blob\/master\/azurelabs01.zip\" target=\"_blank\">Download Labs Files here<\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Practical<\/strong><strong> Labs 01:<\/strong> <strong>Build a back-end API by using Azure Storage and the Web Apps feature of Azure App Service<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>In the open browser window, go to the Azure portal (<a href=\"https:\/\/portal.azure.com\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/portal.azure.com<\/a>).<\/li><li>At the sign-in page, enter the email address for your Microsoft account, and then select <strong>Next<\/strong>.<\/li><li>Enter the password for your Microsoft account, and then select <strong>Sign in<\/strong>.<\/li><\/ul>\n\n\n\n<p><strong>Create a Storage Account<\/strong><\/p>\n\n\n\n<p>In the Azure portal\u2019s navigation pane, select&nbsp;<strong>All services<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img01-1024x494.png\" alt=\"\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>From the&nbsp;<strong>All services<\/strong>&nbsp;blade, select&nbsp;<strong>Storage Accounts<\/strong>.<\/li><li>From the&nbsp;<strong>Storage accounts<\/strong>&nbsp;blade, get your list of storage account instances.<\/li><li>From the&nbsp;<strong>Storage accounts<\/strong>&nbsp;blade, select <strong>+ Create<\/strong>.<\/li><li>From the&nbsp;<strong>Create storage account<\/strong>&nbsp;blade, observe the tabs<\/li><li>from the blade, such as <strong>Basics<\/strong>, <strong>Tags<\/strong>, and <strong>Review + Create<\/strong>.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Select the <strong>Basics<\/strong> tab, and in the tab area, perform the following actions:<ul><li>Leave the <strong>Subscription<\/strong> text box set to its default value.<\/li><li>In the&nbsp;<strong>Resource group<\/strong>&nbsp;section, select <strong>Create new<\/strong>, enter <strong>rg-exceed02102021<\/strong>, and then select <strong>OK<\/strong>.<\/li><li>In the&nbsp;<strong>Storage account name<\/strong>&nbsp;text box, enter <strong>saexceed02102021<\/strong>.<\/li><li>In the&nbsp;<strong>Region<\/strong>&nbsp;list, select the <strong>(US) East US<\/strong> region.<\/li><li>In the&nbsp;<strong>Performance<\/strong>&nbsp;section, select <strong>Standard<\/strong>.<\/li><li>In the&nbsp;<strong>Redundancy<\/strong>&nbsp;list, select <strong>Locally-redundant storage (LRS)<\/strong>.<\/li><li>Select <strong>Review + Create<\/strong>.<\/li><\/ul><\/li><li>From the <strong>Review + Create<\/strong> tab, review the options that you specified in the previous steps.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img02-1024x469.png\" alt=\"\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Select <strong>Create<\/strong> to create the storage account by using your specified configuration.<\/li><li>From the <strong>Deployment<\/strong> blade, wait for the creation task to complete before moving forward with this lab.<\/li><li>Select the <strong>Go to resource<\/strong> button from the <strong>Deployment<\/strong> blade to go to the newly created storage account.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img03-1024x465.png\" alt=\"\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>From the&nbsp;<strong>Storage account<\/strong>&nbsp;blade, find the&nbsp;<strong>Security + networking<\/strong>&nbsp;section, and then select <strong>Access keys<\/strong>.<\/li><li>From the&nbsp;<strong>Access keys<\/strong>&nbsp;blade, select <strong>Show keys<\/strong>.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img04-1024x475.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Select any one of the keys, and then record the value of either of the&nbsp;<strong>Connection string<\/strong>&nbsp;boxes. You\u2019ll use this value later in this excercise.<\/p>\n\n\n\n<p><strong>Upload a sample blob<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>In the Azure portal\u2019s navigation pane, select <strong>Resource groups<\/strong>.<\/li><li>From the <strong>Resource groups<\/strong> blade, select the <strong>rg-exceed02102021<\/strong> resource group that you created earlier in this lab.<\/li><li>From the <strong>rg-exceed02102021<\/strong> blade, select the <strong>saexceed02102021<\/strong> storage account that you created earlier in this lab.<\/li><li>From the <strong>Storage Account<\/strong> blade, in the <strong>Data storage<\/strong> section, select the <strong>Containers<\/strong> link.<\/li><li>In the <strong>Containers<\/strong> section, select <strong>+ Container<\/strong>.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img05-1024x474.png\" alt=\"\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>In the <strong>New container<\/strong> window, perform the following actions:<ul><li>In the <strong>Name<\/strong> text box, enter <strong>images<\/strong>.<\/li><li>In the <strong>Public access level<\/strong> list, select <strong>Blob (anonymous read access for blobs only)<\/strong>, and then select <strong>Create<\/strong>.<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img06-1024x471.png\" alt=\"\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>In the <strong>Containers<\/strong> section, select the newly created <strong>images<\/strong> container.<\/li><li>From the <strong>Container<\/strong> blade, select <strong>Upload<\/strong>.<\/li><li>In the <strong>Upload blob<\/strong> window, perform the following actions:<ul><li>In the <strong>Files<\/strong> section, select the <strong>Folder<\/strong> icon.<\/li><li>In the <strong>File Explorer<\/strong> window, browse to <strong>Azurelabs01 (F):\\Downloads\\azurelabs01\\01\\Starter\\Images<\/strong>, select the <strong>grilledcheese.jpg<\/strong> file, and then select <strong>Open<\/strong>.<\/li><li>Ensure that the <strong>Overwrite if files already exist<\/strong> check box is selected, and then select <strong>Upload<\/strong>. Wait for the blob to upload before you continue with this lab.<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img07-1024x315.png\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Create a web app<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>In the Azure portal\u2019s navigation pane, select <strong>Create a resource<\/strong>.<\/li><li>From the <strong>Create a resource<\/strong> blade, find the <strong>Search services and marketplace<\/strong> text box.<\/li><li>In the search box, enter <strong>Web App<\/strong>, and then select Enter.<\/li><li>From the <strong>Marketplace<\/strong> search results blade, select the <strong>Web App<\/strong> result.<\/li><li>From the <strong>Web App<\/strong> blade, select <strong>Create<\/strong>.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img08-1024x417.png\" alt=\"\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>From the <strong>Create Web App<\/strong> blade, find the tabs from the blade, such as <strong>Basics<\/strong>.<\/li><\/ul>\n\n\n\n<p><strong>Note<\/strong>: Each tab represents a step in the workflow to create a new web app. You can select <strong>Review + Create<\/strong> at any time to skip the remaining tabs.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>From the <strong>Basics<\/strong> tab, perform the following actions:<ul><li>Leave the <strong>Subscription<\/strong> text box set to its default value.<\/li><li>In the&nbsp;<strong>Resource group<\/strong> drop-down list, select <strong>rg-exceed02102021<\/strong>.<\/li><li>In the&nbsp;<strong>Name<\/strong>&nbsp;text box, enter <strong>imgapiexceed02102021<\/strong><\/li><li>In the <strong>Publish<\/strong> section, select <strong>Code<\/strong>.<\/li><li>In the <strong>Runtime stack<\/strong> drop-down list, select <strong>.NET Core 3.1 (LTS)<\/strong>.<\/li><li>In the <strong>Operating System<\/strong> section, select <strong>Windows<\/strong>.<\/li><li>In the&nbsp;<strong>Region<\/strong>&nbsp;drop-down list, select the <strong>East US<\/strong> region.<\/li><li>In the <strong>Windows Plan (East US)<\/strong> section, select <strong>Create new<\/strong>, enter the value <strong>ASP-exceed02102021 <\/strong>in the <strong>Name<\/strong> text box, and then select <strong>OK<\/strong>.<\/li><li>Leave the <strong>SKU and size<\/strong> section set to its default value.<\/li><li>Select <strong>Next: Deployment (Preview)<\/strong>.<\/li><\/ul><\/li><li>From the <strong>Deployment (Preview)<\/strong> tab, perform the following actions:<\/li><li>Select <strong>Next: Monitoring<\/strong>.<\/li><li>From the <strong>Monitoring<\/strong> tab, perform the following actions:<ul><li>In the <strong>Enable Application Insights<\/strong> section, select <strong>No<\/strong>.<\/li><li>Select <strong>Review + Create<\/strong>.<\/li><\/ul><\/li><li>From the <strong>Review + Create<\/strong> tab, review the options that you selected during the previous steps.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img09-1024x469.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Select <strong>Create<\/strong> to create the web app by using your specified configuration. Wait for the creation task to complete before you move forward with this lab.<\/p>\n\n\n\n<p><strong>Configure the web app<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>In the Azure portal\u2019s navigation pane, select <strong>Resource groups<\/strong>.<\/li><li>From the <strong>Resource groups<\/strong> blade, select the <strong>rg-exceed02102021<\/strong> resource group that you created earlier in this lab.<\/li><li>From the <strong>rg-exceed02102021<\/strong> blade, select the <strong>imgapiexceed02102021 <\/strong>web app that you created earlier in this lab.<\/li><\/ul>\n\n\n\n<p><strong>Note<\/strong>: If the <strong>imgapiexceed02102021 <\/strong>web app is not listed, select <strong>Show hidden types<\/strong> to display it.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>From the <strong>App Services<\/strong> blade, in the <strong>Settings<\/strong> section, select the <strong>Configuration<\/strong> link.<\/li><li>In the <strong>Configuration<\/strong> section, perform the following actions:<ul><li>Select the <strong>Application settings<\/strong> tab, and then select <strong>New application setting<\/strong>.<\/li><li>In the <strong>Add\/Edit application setting<\/strong> pop-up dialog, in the <strong>Name<\/strong> text box, enter <strong>StorageConnectionString<\/strong>.<\/li><li>In the <strong>Value<\/strong> text box, enter the storage connection string that you copied earlier in this lab.<\/li><li>Leave the <strong>Deployment slot setting<\/strong> text box set to its default value, and then select <strong>OK<\/strong> to close the pop-up dialog and return to the <strong>Configuration<\/strong> section.<\/li><li>Select <strong>Save<\/strong> from the blade to persist your settings, and then select <strong>Continue<\/strong>.<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"455\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img10-9-1024x455.png\" alt=\"\" class=\"wp-image-2078\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img10-9-1024x455.png 1024w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img10-9-300x133.png 300w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img10-9-768x341.png 768w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img10-9.png 1299w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Wait for your application settings to persist before you move forward with the lab.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>From the <strong>App Services<\/strong> blade in the <strong>Settings<\/strong> section, select the <strong>Properties<\/strong> link.<\/li><li>In the <strong>Properties<\/strong> section, copy the value of the <strong>URL<\/strong> hyperlink. You\u2019ll use this value later in the lab.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"438\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img11-8-1024x438.png\" alt=\"\" class=\"wp-image-2082\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img11-8-1024x438.png 1024w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img11-8-300x128.png 300w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img11-8-768x328.png 768w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img11-8.png 1352w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Deploy an ASP.NET web application to Web Apps<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>On the taskbar, select the <strong>Visual Studio Code<\/strong> icon.<\/li><li>From the <strong>File<\/strong> menu, select <strong>Open Folder<\/strong>.<\/li><li>In the <strong>File Explorer<\/strong> window, browse to <strong>Azurelabs01 (F):\\Downloads\\azurelabs01<\/strong><strong>\\01\\Starter\\API<\/strong>, and then select <strong>Select Folder<\/strong>.<\/li><li>In the&nbsp;Explorer&nbsp;pane of the <strong>Visual Studio Code<\/strong> window, expand the&nbsp;<strong>Controllers<\/strong> folder, and then select the <strong>ImagesController.cs<\/strong> file to open the file in the editor.<\/li><li>In the editor, in the <strong>ImagesController<\/strong> class on line 26, observe the <strong>GetCloudBlobContainer<\/strong> method and the code used to retrieve a container.<\/li><li>In the <strong>ImagesController<\/strong> class on line 36, observe the <strong>Get<\/strong> method and the code used to retrieve all blobs asynchronously from the <strong>images<\/strong> container.<\/li><li>In the <strong>ImagesController<\/strong> class on line 55, observe the <strong>Post<\/strong> method and the code used to persist an uploaded image to Storage.<\/li><li>On the taskbar, select the <strong>Windows Terminal<\/strong> icon.<\/li><li>At the open command prompt, enter the following command, and then select Enter to sign in to the Azure Command-Line Interface (CLI):<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>az login<\/code><\/pre>\n\n\n\n<p>In the <strong>Microsoft Edge<\/strong> browser window, perform the following actions:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Enter the email address for your Microsoft account, and then select <strong>Next<\/strong>.<\/li><li>Enter the password for your Microsoft account, and then select <strong>Sign in<\/strong>.<\/li><\/ul>\n\n\n\n<p>\u00b7&nbsp; Return to the currently open <strong>Command Prompt<\/strong> window. Wait for the sign-in process to finish.<\/p>\n\n\n\n<p>\u00b7&nbsp; At the command prompt, enter the following command, and then select Enter to list all the apps in your <strong>rg-exceed02102021<\/strong> resource group:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>az webapp list --resource-group rg-exceed02102021 --query \"&#91;?starts_with(name, 'imgapi')]\"<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Enter the following command, and then select Enter to render only the name of the single app that has the <strong>imgapi*<\/strong> prefix:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>az webapp list --resource-group rg-exceed02102021 --query \"&#91;?starts_with(name, 'imgapi')].{Name:name}\" --output tsv<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"71\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img12-8-1024x71.png\" alt=\"\" class=\"wp-image-2086\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img12-8-1024x71.png 1024w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img12-8-300x21.png 300w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img12-8-768x54.png 768w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img12-8.png 1046w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Enter the following command, and then select Enter to change the current directory to the <strong>Azurelabs01 (F):\\Downloads\\azurelabs01<\/strong><strong>\\01\\Starter\\API<\/strong> directory that contains the lab files:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cd F:\\Downloads\\azurelabs01\\Labs\\01\\Starter\\API\\<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Enter the following command, and then select Enter to deploy the <strong>api.zip<\/strong> file to the web app that you created earlier in this lab:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>az webapp deployment source config-zip --resource-group rg-exceed02102021 --src api.zip --name imgapiexceed02102021<\/code><\/pre>\n\n\n\n<p><strong>Note<\/strong>: Replace the <em>&lt;name-of-your-api-app&gt;<\/em> placeholder with the name of the web app that you created earlier in this lab. You recently queried this app\u2019s name in the previous steps.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"516\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img13-8-1024x516.png\" alt=\"\" class=\"wp-image-2090\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img13-8-1024x516.png 1024w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img13-8-300x151.png 300w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img13-8-768x387.png 768w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img13-8.png 1045w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Wait for the deployment to complete before you move forward with this lab.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>In the Azure portal\u2019s navigation pane, select the <strong>Resource groups<\/strong> link.<\/li><li>From the <strong>Resource groups<\/strong> blade, find and select the <strong>rg-exceed02102021<\/strong> resource group that you created earlier in this lab.<\/li><li>From the <strong>rg-exceed02102021<\/strong> blade, select the <strong>imgapiexceed02102021 <\/strong>web app that you created earlier in this lab.<\/li><li>From the <strong>App Services<\/strong> blade, select <strong>Browse<\/strong>.<\/li><li>Perform a GET request to the root of the website, and then observe the JavaScript Object Notation (JSON) array that\u2019s returned. This array should contain the URL for your single uploaded image in your Storage account.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"124\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img14-9-1024x124.png\" alt=\"\" class=\"wp-image-2094\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img14-9-1024x124.png 1024w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img14-9-300x36.png 300w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img14-9-768x93.png 768w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/02\/img14-9.png 1364w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Return to your browser window with the Azure portal.<\/li><li>Close the currently running Visual Studio Code and Windows Terminal applications.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"review\">Review<\/h4>\n\n\n\n<p>In this Lab, you created a web app in Azure and then deployed your ASP.NET web application to Web Apps by using the Azure CLI and Apache Kudu zip file deployment utility.<\/p>\n\n\n\n<p><mark class=\"kt-highlight\"><strong>Reminder<\/strong>: Don\u2019t forget to delete or shutdown all unused Azure resources after your labs for cost saving<\/mark><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prerequisites for this lab : PowerShell \/ Visual Studio Code \/ Azure Account \/ Download Labs Files here Practical Labs 01: Build a back-end API by using Azure Storage and the Web Apps feature of Azure App Service In the &hellip; <a href=\"https:\/\/exceedthecloud.com\/?p=320\">Continued<\/a><\/p>\n","protected":false},"author":1,"featured_media":886,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"kt_blocks_editor_width":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4,24,26],"tags":[56,83,82,78,54,71,80],"class_list":["post-320","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-practical-labs-series","category-storage-backup-recovery","category-web","tag-api","tag-azure-cli","tag-blob","tag-storage","tag-visual-studio-code","tag-web-app","tag-web-application"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2021\/10\/istockphoto-1215417094-170667a.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/posts\/320","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=320"}],"version-history":[{"count":3,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/posts\/320\/revisions"}],"predecessor-version":[{"id":2342,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/posts\/320\/revisions\/2342"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/media\/886"}],"wp:attachment":[{"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=320"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=320"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}