Congratulations!

[Valid RSS] This is a valid RSS feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: https://blogs.msdn.microsoft.com/paraspatidar/feed/

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  3.  version="2.0">
  4.  <channel>
  5.    <title>Tomorrow's Technology , Learning Today by Paras Patidar</title>
  6.    <atom:link
  7.      href="https://docs.microsoft.com/archive/blogs/paraspatidar/feed.xml"
  8.      rel="self"
  9.      type="application/rss+xml" />
  10.    <link>https://docs.microsoft.com/archive/blogs/paraspatidar/feed.xml</link>
  11.    <description>_________________ Now , You know it ;)</description>
  12.    <lastBuildDate>Wed, 17 Apr 2019 04:06:51 GMT</lastBuildDate>
  13.    <language>en-US</language>
  14.    <sy:updatePeriod>hourly</sy:updatePeriod>
  15.    <sy:updateFrequency>1</sy:updateFrequency>
  16.    <item>
  17.      <title>Debug .Net Core Application in  Local Kubernetes Container with Azure Draft and VS code –Part - 1</title>
  18.      <link>https://docs.microsoft.com/archive/blogs/paraspatidar/debug-net-core-application-in-kubernetes-container-with-azure-draft-and-vs-code</link>
  19.      <pubDate>Wed, 19 Sep 2018 13:15:19 GMT</pubDate>
  20.      <dc:creator><![CDATA[ParasPatidar]]></dc:creator>
  21.      <guid
  22.        isPermaLink="false">https://blogs.msdn.microsoft.com/paraspatidar/?p=1315</guid>
  23.      <description><![CDATA[Two different worlds talk to each other when we go for this topic of debugging dot net core based...]]></description>
  24.      <content:encoded><![CDATA[<p><br></p><p><font face="Calibri"><br></font></p><p><font face="Calibri" size="3">Two different worlds talk to each other when we go for this topic of debugging dot net core based sample application which is basically a containerized application&nbsp; using VS code with help of Azure Draft.</font></p><p><font face="Calibri" size="3">The two different worlds : </font></p><p><font face="Calibri" size="3">Kubernetes&nbsp; - Black world of command prompt.</font></p><p><font face="Calibri" size="3">VS code – that colorful (blue tough) , UI. </font></p><p><font face="Calibri" size="3">This article shows how to combine these two different worlds to enable debugging your Dot net core based application.</font></p><p><font face="Calibri" size="3">This article will take you through step by step with following major section and sub sections :</font></p><ol><li><font face="Calibri" size="3">Install required tools and utilities :</font></li><ul><li><font face="Calibri" size="3">Install docker for windows.</font></li><li><font face="Calibri" size="3">Install Minikube ( for&nbsp; <font size="3">Kubernetes ) on windows</font>.</font></li><li><font size="3"><font face="Calibri">Install Kubectl , which is CLI for <font size="3">Kubernetes .</font></font></font></li><li><font face="Calibri" size="3">Install VS code.</font></li><li><font face="Calibri" size="3">Install Helm.</font></li><li><font face="Calibri" size="3">Install Azure Draft.</font></li></ul><li><font face="Calibri" size="3">Create Sample dot net core app in visual studio and setup draft.</font></li><li><font face="Calibri" size="3">Debug the application using draft.</font></li></ol><p><br></p><p><font size="3">Basically what is going to be here is nothing new , the concept of debugging any remotely deployed application are going to apply here.</font></p><p><font size="3">If we remember old days where we want to debug any product deployed application or any application at remote computer then we used to follow following steps :</font></p><ol><li><em><font size="3">deploy application in Debug mode.</font></em></li><li><em><font size="3">have MSVSMON.exe available on remote computer up and running .</font></em></li><li><em><font size="3">connect to that remote computer from our local machine’s visual studio.</font></em></li><li><em><font size="3">attach the debugger to remote process.</font></em></li></ol><p><font size="3">Similar things will happen here once we go through all the steps&nbsp; , using draft here is what happens :</font></p><ol><font size="3"><!--StartFragment-->
  25. </font><li><em><font size="3">deploy application in Debug mode in local minikube node as container application&nbsp; .</font></em></li><font size="3">
  26. </font><li><em><font size="3">have VSDBG package available on container (that will be done automatically once we setup sample application for draft DokerFile)</font></em></li><font size="3">
  27. </font><li><em><font size="3">connect to that container&nbsp; from VS code by using launch.json setting of VS code.
  28. </font></em></li><font size="3">
  29. </font><li><em><font size="3">attach the debugger to remote process that will be done once we hit the debug button using that specific launch setting.</font></em></li><!--EndFragment--></ol><p><em><br></em></p><p><em><br></em></p><p><br></p><font face="Calibri" size="3"><p><br></p><p><font face="Calibri" size="3"><br></font></p><p><font size="3"><br></font></p></font>]]></content:encoded>
  30.    </item>
  31.    <item>
  32.      <title>Where are New Posts ?  birth of  “blog.paraspatidar.com”</title>
  33.      <link>https://docs.microsoft.com/archive/blogs/paraspatidar/where-are-new-posts-birth-of-blog-paraspatidar-com</link>
  34.      <pubDate>Mon, 04 Jun 2018 20:00:43 GMT</pubDate>
  35.      <dc:creator><![CDATA[ParasPatidar]]></dc:creator>
  36.      <guid
  37.        isPermaLink="false">https://blogs.msdn.microsoft.com/paraspatidar/?p=1295</guid>
  38.      <description><![CDATA[Dear Readers,As a part of continuing the professional&nbsp; journey and enthusiasms toward new...]]></description>
  39.      <content:encoded><![CDATA[<p><br></p><p>Dear Readers,</p><p>As a part of continuing the professional&nbsp; journey and enthusiasms toward new challenges , I have move on and have been separated from my organization Microsoft.<p>However , I shall keep exploring the ocean of technology and will keep writing the content which is useful for every technology lover.<p>My Future post will be available at : <p><a href="https://blog.paraspatidar.com/"><strong>https://blog.paraspatidar.com/</strong></a><p>Or at<p><a href="https://paraspatidar.com/blog"><strong>https://paraspatidar.com/blog</strong></a><p>It will take me some time to setup new  blog and contain and thus temporarily links might redirect to my personal web site <a href="https://paraspatidar.com/"><strong>https://paraspatidar.com/</strong></a><p>&amp; my GitHub profile :<p><a title="https://github.com/paraspatidar" href="https://github.com/paraspatidar"><strong>https://github.com/paraspatidar</strong></a>&nbsp;<p>Stay in touch &amp; enjoy innovating .<p><br><p>Thanks,<p>Paras Patidar]]></content:encoded>
  40.    </item>
  41.    <item>
  42.      <title>Web App Instance Name and ARR affinity Mapping using Function App – Part-5</title>
  43.      <link>https://docs.microsoft.com/archive/blogs/paraspatidar/web-app-instance-name-and-arr-affinity-mapping-using-function-app-part-5</link>
  44.      <pubDate>Thu, 24 May 2018 00:14:11 GMT</pubDate>
  45.      <dc:creator><![CDATA[ParasPatidar]]></dc:creator>
  46.      <guid
  47.        isPermaLink="false">https://blogs.msdn.microsoft.com/paraspatidar/?p=1255</guid>
  48.      <description><![CDATA[This Post is in continuation of Post :Web App Instance Name and ARR affinity Mapping using...]]></description>
  49.      <content:encoded><![CDATA[<hr>
  50. <p>This Post is in continuation of Post :<a href="https://blogs.msdn.microsoft.com/paraspatidar/web-app-instance-name-and-arr-affinity-mapping-using-function-app-part-4/">Web App Instance Name and ARR affinity Mapping using Function App – Part-4</a>
  51. <p>as Part 5&nbsp; Our next step is
  52. <strong>Deploy the Function App code &amp; Test It </strong> section :&nbsp;&nbsp;&nbsp;&nbsp; <strong>
  53. </strong><p><strong>
  54. 11. Download the function app from my GitHub Profile.
  55.  
  56. </strong>
  57. </p>
  58. <ul>
  59. <li>You can select <strong>Powershell</strong> based Function code from here : <a title="https://github.com/paraspatidar/Code-Dump/blob/master/FnInstanceARRMapper.ps1" href="https://github.com/paraspatidar/Code-Dump/blob/master/FnInstanceARRMapper.ps1">https://github.com/paraspatidar/Code-Dump/blob/master/FnInstanceARRMapper.ps1</a>
  60. </li>
  61. <li>You can select <strong>C# based</strong> Function which will work as precompiled code from here : <a title="https://github.com/paraspatidar/Code-Dump/blob/master/InstanceARRMapping.zip" href="https://github.com/paraspatidar/Code-Dump/blob/master/InstanceARRMapping.zip">https://github.com/paraspatidar/Code-Dump/blob/master/InstanceARRMapping.zip</a>
  62. </li>
  63. </ul>
  64. <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; it will be good idea to keep the function access level as anonymous by not using any key (function key / master key)&nbsp; , you can handle it in <strong>Integrate</strong> option of function app. </p>
  65. <p>
  66. <strong>12 .Based on function app&nbsp; (Powershell or C# based)</strong> , accordingly choose the URL and pass-on any Web App’s name &amp; its resource group Name which is up and running in your subscription in the&nbsp;&nbsp; Query string / URL .&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
  67. <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the URL for both type of function will be little different and it is mentioned in source code itself . Feel free to modify the code and change according to your convenience. </p>
  68. <p><br></p>
  69. <p>
  70. <strong>13 .Receive the response </strong>with <strong>Instance name</strong> &amp; <strong>ARRAffinity</strong> mapping </p>
  71. <p><br></p>
  72.  
  73.  
  74. <ul>
  75. <li> Testing C# Based Function App : sample URL is in project code&nbsp; file </li>
  76. </ul>
  77.  
  78.  
  79. <div class="paraBelow">
  80. <a href="https://msdnshared.blob.core.windows.net/media/2018/05/image259.png">
  81. <img width="575" height="161" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/05/image_thumb199.png" border="0">
  82. </a>
  83. </div>
  84. <ul>
  85. <li> Testing Powershell Based Function App :sample URL is in code&nbsp; file </li>
  86. </ul>
  87. <div class="paraBelow">
  88. <a href="https://msdnshared.blob.core.windows.net/media/2018/05/image260.png">
  89. <img width="578" height="90" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/05/image_thumb200.png" border="0">
  90. </a>
  91. </div>
  92. <div class="paraBelow"><br></div>
  93. <div class="paraBelow">As the number of instances grow&nbsp; , the time to get response will also increase , however , in C# based function app we have tried to use Async calls but still has scope for further improvement , please feel free to use the code as per requirement. </div>
  94. <div class="paraBelow"><br></div>
  95. <div class="paraBelow"><br></div>]]></content:encoded>
  96.    </item>
  97.    <item>
  98.      <title>Web App Instance Name and ARR affinity Mapping using Function App – Part-4</title>
  99.      <link>https://docs.microsoft.com/archive/blogs/paraspatidar/web-app-instance-name-and-arr-affinity-mapping-using-function-app-part-4</link>
  100.      <pubDate>Wed, 23 May 2018 22:53:45 GMT</pubDate>
  101.      <dc:creator><![CDATA[ParasPatidar]]></dc:creator>
  102.      <guid
  103.        isPermaLink="false">https://blogs.msdn.microsoft.com/paraspatidar/?p=1155</guid>
  104.      <description><![CDATA[This Post is in continuation of Post :Web App Instance Name and ARR affinity Mapping using Function...]]></description>
  105.      <content:encoded><![CDATA[<p>This Post is in continuation of Post :<a href="https://blogs.msdn.microsoft.com/paraspatidar/web-app-instance-name-and-arr-affinity-mapping-using-function-app-part-3/">Web App Instance Name and ARR affinity Mapping using Function App – Part-3</a><p>as Part 4&nbsp; Our next step is <strong>Creating a blank Function app and add application settings </strong>section  <strong>:</strong><p><strong>7. Note down <strong>Subscription id</strong> and <strong>Tenant Id</strong> from Azure Portal.
  106. </strong><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When programmatically logging in, you need to pass the tenant ID with your authentication request.<ul><li><p>Select <strong>Azure Active Directory</strong>.<p><img alt="select azure active directory" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/select-active-directory.png"></p><li><p>To get the tenant ID, select <strong>Properties</strong> for your Azure AD tenant.<p><img alt="select Azure AD properties" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/select-ad-properties.png"></p><li><p>Copy the <strong>Directory ID</strong>. This value is your <strong>tenant ID</strong>.<p><img alt="tenant ID" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/copy-directory-id.png"></p></li><li>On Azure portal , click on subscription option in left and Note the subscription Id details under which we have assigned the Service principal in last post and we shall be able to get the Web App instance details which are created in this subscription only.</li></ul><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://msdnshared.blob.core.windows.net/media/2018/05/image254.png"><img width="838" height="411" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/05/image_thumb194.png" border="0"></a></p><p><strong><br></strong></p><p><strong>8. Create a new Function App</strong>.
  107. </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; refer this link to create a function app in Azure : <a title="https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-function-app-portal#create-a-function-app" href="https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-function-app-portal#create-a-function-app">https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-function-app-portal#create-a-function-app</a>&nbsp;</p><p>one the function app is created , go to Function apps option on left hand side of Azure portal to open that function app and then select the Application setting to create the various application setting :</p><p><a href="https://msdnshared.blob.core.windows.net/media/2018/05/image255.png"><img width="855" height="419" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/05/image_thumb195.png" border="0"></a></p><p><br></p><p><strong>9. Create Application settings</strong> <strong>for :</strong> Subscription id ,&nbsp; Tenant Id&nbsp; , Application Id &amp; Client Secret<strong>.</strong></p><p><strong><br></strong></p><p><a href="https://msdnshared.blob.core.windows.net/media/2018/05/image256.png"><img width="822" height="185" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/05/image_thumb196.png" border="0"></a><p>Here like we discussed :<p><strong>AADApplicationId</strong> is same as Service Principal Id also known as Client ID , which is nothing but AAD application’s Application Id.<p><strong>AADApplicationKey</strong> is same as Client Secret which is the Key which you have created in previous post for AAD application.<p><br><p><strong>Please note</strong> , the Github code in Function app is written to read these <strong>app setting keys</strong> , if you write different&nbsp; <strong>app setting key names</strong> ,then you will need to modify that code as well to read those keys , otherwise you will end up getting no key and thus runtime exception.<p><br><p>Now in Next Post we will go through&nbsp; <strong>Deploy the Function App code &amp; Test It </strong>section here :<br><a href="https://blogs.msdn.microsoft.com/paraspatidar/web-app-instance-name-and-arr-affinity-mapping-using-function-app-part-5/">Web App Instance Name and ARR affinity Mapping using Function App – Part-5</a>]]></content:encoded>
  108.    </item>
  109.    <item>
  110.      <title>Web App Instance Name and ARR affinity Mapping using Function App – Part-3</title>
  111.      <link>https://docs.microsoft.com/archive/blogs/paraspatidar/web-app-instance-name-and-arr-affinity-mapping-using-function-app-part-3</link>
  112.      <pubDate>Wed, 23 May 2018 22:25:59 GMT</pubDate>
  113.      <dc:creator><![CDATA[ParasPatidar]]></dc:creator>
  114.      <guid
  115.        isPermaLink="false">https://blogs.msdn.microsoft.com/paraspatidar/?p=1085</guid>
  116.      <description><![CDATA[This Post is in continuation of Post :Web App Instance Name and ARR affinity Mapping using Function...]]></description>
  117.      <content:encoded><![CDATA[<p><br></p><p>This Post is in continuation of Post :<a href="https://blogs.msdn.microsoft.com/paraspatidar/web-app-instance-name-and-arr-affinity-mapping-using-function-app-part-2/">Web App Instance Name and ARR affinity Mapping using Function App – Part-2</a><p>as Part 3&nbsp; Our next step is <strong>Creating and Setting up Service Principal&nbsp; (AAD Application ) :</strong><p><strong>Creating and Setting up Service Principal&nbsp; (AAD Application ) :</strong><ol><li>Creating Azure <strong>AAD App</strong> aka <strong>Service Principal</strong>.
  118. <li>Noting down the <strong>Application Id</strong> of AAD app which is also known as<strong> Client Id</strong> or <strong>Service Principal Id</strong><li>Generating Key for that AAD app , which is knows as&nbsp; <strong>Client Secret</strong> or <strong>Password.</strong><li>Assigning <strong>Reader</strong> role on subscription to&nbsp; that service principal (AAD App)&nbsp; so that it can read the resources of subscription and query ARM endpoints .</li></ol><p>We can cover the above mentioned steps&nbsp; using the Microsoft well explanatory document here : <a title="https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal" href="https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal">https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal</a></p><p>But for the sack of completeness , let me try giving and high level step overview here itself :</p><p><strong><font size="3"><u>1. Creating Azure AAD App aka Service Principal</u></font></strong></p><ul><li>Log in to your Azure Account through the <a href="https://portal.azure.com/">Azure portal</a>.
  119. <li><p>Select <strong>Azure Active Directory</strong>.<p><img alt="select azure active directory" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/select-active-directory.png"></p><li><p>Select <strong>App registrations</strong>.<p><img alt="select app registrations" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/select-app-registrations.png"></p><li><p>Select <strong>New application registration</strong>.<p><img alt="add app" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/select-add-app.png"></p><li><p>Provide a name and URL for the application. Select <strong>Web app / API</strong> for the type of application you want to create. You cannot create credentials for a <a href="https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/application-proxy-configure-native-client-application">Native application</a>; therefore, that type does not work for an automated application. After setting the values, select <strong>Create</strong>.<p><img alt="name application" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/create-app.png"></p></li></ul><p>You have created your application.<p><br><h4><font size="3" style="font-weight: bold"><u>2. Noting down the Application Id of AAD app which is also known as Client Id or Service Principal Id</u></font></h4><p><br></p><p>When programmatically logging in, you need the ID for your application and an authentication key. To get those values, use the following steps:<ul><li><p>From <strong>App registrations</strong> in Azure Active Directory, select your application.<p><img alt="select application" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/select-app.png"></p><li><p>Copy the <strong>Application ID</strong> and store it in your application code. Some <a href="https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal#log-in-as-the-application">sample applications</a> refer to this value as the client ID.<p><img alt="client ID" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/copy-app-id.png"></p></li></ul><p><br><p><strong><u><font size="3">3. Generating Key for that AAD app , which is knows as&nbsp; Client Secret or Password.</font></u></strong><ul><li><p>To generate an authentication key, select <strong>Settings</strong>.<p><img alt="select settings" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/select-settings.png"></p><li><p>To generate an authentication key, select <strong>Keys</strong>.<p><img alt="select keys" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/select-keys.png"></p><li><p>Provide a description of the key, and a duration for the key. When done, select <strong>Save</strong>.<p><img alt="save key" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/save-key.png"><p>After saving the key, the value of the key is displayed. Copy this value because you are not able to retrieve the key later. You provide the key value with the application ID to log in as the application. Store the key value where your application can retrieve it.<p><img alt="saved key" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/copy-key.png"></p></li></ul><p><strong><u><font size="3"><br></font></u></strong><p><strong><u><font size="3">4. Assigning Reader role on subscription to&nbsp; that service principal (AAD App)&nbsp; </font></u></strong><p>To access resources in your subscription, you must assign the application to a role. Decide which role represents the right permissions for the application. To learn about the available roles, see <a href="https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles">RBAC: Built in Roles</a>.<p>You can set the scope at the level of the subscription, resource group, or resource. Permissions are inherited to lower levels of scope. For example, adding an application to the Reader role for a resource group means it can read the resource group and any resources it contains.<ul><li><p>Navigate to the level of scope you wish to assign the application to. For example, to assign a role at the subscription scope, select <strong>Subscriptions</strong>. You could instead select a resource group or resource.<p><img alt="select subscription" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/select-subscription.png"></p><li><p>Select the particular subscription (resource group or resource) to assign the application to.<p><img alt="select subscription for assignment" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/select-one-subscription.png"></p><li><p>Select <strong>Access Control (IAM)</strong>.<p><img alt="select access" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/select-access-control.png"></p><li><p>Select <strong>Add</strong>.<p><img alt="select add" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/select-add.png"></p><li><p>Select the role you wish to assign to the application. The following image shows the <strong>Reader</strong> role.<p><img alt="select role" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/select-role.png"></p><li><p>By default, Azure Active Directory applications aren't displayed in the available options. To find your application, you must provide the name of it in the search field. Select it.<p><img alt="search for app" src="https://docs.microsoft.com/en-us/azure/azure-resource-manager/media/resource-group-create-service-principal-portal/search-app.png"></p><li><p>Select <strong>Save</strong> to finish assigning the role. You see your application in the list of users assigned to a role for that scope.</p></li></ul><p>Now in Next Post we will go through&nbsp; <strong>Creating a blank Function app and add application settings section </strong>here :<br><a href="https://blogs.msdn.microsoft.com/paraspatidar/web-app-instance-name-and-arr-affinity-mapping-using-function-app-part-4/">Web App Instance Name and ARR affinity Mapping using Function App – Part-4</a>]]></content:encoded>
  120.    </item>
  121.    <item>
  122.      <title>Web App Instance Name and ARR affinity Mapping using Function App – Part-2</title>
  123.      <link>https://docs.microsoft.com/archive/blogs/paraspatidar/web-app-instance-name-and-arr-affinity-mapping-using-function-app-part-2</link>
  124.      <pubDate>Wed, 23 May 2018 22:08:37 GMT</pubDate>
  125.      <dc:creator><![CDATA[ParasPatidar]]></dc:creator>
  126.      <guid
  127.        isPermaLink="false">https://blogs.msdn.microsoft.com/paraspatidar/?p=1075</guid>
  128.      <description><![CDATA[&nbsp;&nbsp;&nbsp; This Post is in continuation of Post :Web App Instance Name and ARR affinity...]]></description>
  129.      <content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp; </p><p>This Post is in continuation of Post :<a href="https://blogs.msdn.microsoft.com/paraspatidar/web-app-instance-name-and-arr-affinity-mapping-using-function-app-part1/" target="_blank" rel="noopener">Web App Instance Name and ARR affinity Mapping using Function App – Part-1</a> </p><p>as Part 2&nbsp; Our next step is <strong>Outlining the things which we need to do</strong><strong>:</strong>
  130. </p><p><p><strong><br></strong></p>
  131. Here are few things which we shall be doing step by step in upcoming post </p>
  132. <p>Steps summary:</p>
  133. <p><strong>Creating and Setting up Service Principal&nbsp; (AAD Application ) :</strong></p>
  134. <ol>
  135. <li>Creating Azure <strong>AAD App</strong> aka <strong>Service Principal</strong>.</li><li>Noting down the <strong>Application Id</strong> of AAD app which is also known as<strong> Client Id</strong> or <strong>Service Principal Id</strong></li>
  136. <li>Generating Key for that AAD app , which is knows as&nbsp; <strong>Client Secret</strong> or <strong>Password.</strong></li>
  137. <li>Assigning <strong>Reader</strong> role on subscription to&nbsp; that service principal (AAD App)&nbsp; so that it can read the resources of subscription and query ARM endpoints .</li></ol><p><strong>Creating a blank Function app and add application settings section entries.</strong></p><ol start="7">
  138. <li>Note down <strong>Subscription id</strong> and <strong>Tenant Id</strong> from Azure Portal.</li><li>Create a new Function App.</li><li>Create Application settings for : <strong>Subscription id ,&nbsp; <strong>Tenant Id</strong>&nbsp; , <strong>Application Id &amp; <strong>Client Secret.</strong></strong></strong></li></ol><p><strong><strong><strong><strong> Deploy the Function App code &amp; Test It:</strong></strong></strong></strong></p>
  139. <ol start="11">
  140. <li>Download the function app from my GitHub Profile.</li>
  141. <li>Based on function app&nbsp; (powershell or C# based) , accordingly choose the URL and pass-on any Web App’s name &amp; its resource group Name which is up and running in your subscription in the&nbsp;&nbsp; Query string / URL .</li>
  142. <li>Receive the response with <strong>Instance name</strong> &amp; <strong>ARRAffinity</strong> mapping .</li>
  143. </ol>
  144. <p><strong><br></strong></p><ol start="20">
  145. </ol><p>
  146. </p>
  147. <p>So if are excited about this automation ,then continue further part in&nbsp; my next Post here :<br>
  148. <a href="https://blogs.msdn.microsoft.com/paraspatidar/web-app-instance-name-and-arr-affinity-mapping-using-function-app-part-3/" target="_blank" rel="noopener">Web App Instance Name and ARR affinity Mapping using Function App – Part-3</a>]]></content:encoded>
  149.    </item>
  150.    <item>
  151.      <title>Web App Instance Name and ARR affinity Mapping using Function App – Part-1</title>
  152.      <link>https://docs.microsoft.com/archive/blogs/paraspatidar/web-app-instance-name-and-arr-affinity-mapping-using-function-app-part1</link>
  153.      <pubDate>Wed, 23 May 2018 21:23:22 GMT</pubDate>
  154.      <dc:creator><![CDATA[ParasPatidar]]></dc:creator>
  155.      <guid
  156.        isPermaLink="false">https://blogs.msdn.microsoft.com/paraspatidar/?p=1045</guid>
  157.      <description><![CDATA[Goal of this Post :
  158. in this post we shall...]]></description>
  159.      <content:encoded><![CDATA[<u>
  160. <strong>
  161. <font size="3">Goal of this Post :</font>
  162. </strong>
  163. </u>
  164. <div class="paraBelow">
  165. <p>in this post we shall discuss on some <strong>one time activity</strong> on your azure portal , which will finally<strong> create a Http trigger based Function app</strong>&nbsp;&nbsp; with an URL.</p>
  166. <p>once that is done , <strong>passing any web app name &amp; resource group name</strong> to that URL will <strong>return all running instances</strong> of web application as well as their <strong>ARRAffinity</strong>&nbsp; Id , so anyone can query this read-only data from any device which is capable of making normal HTTP call , thus any computing device limitation , any script limitation , any manual effort is gone.</p>
  167. </div>
  168.  
  169. <p><br></p>
  170. <p>As we all know that Azure App Services uses sticky session by default in case of multiple instance (i.e. load balancing between multiple VM which are running your web application) ,&nbsp; those sticky session are maintained by a cookie key named <strong>ARRAffinity</strong> .</p>
  171. <p>for all the running instances , there is is this unique value and based on this cookie value , browser’s request is redirected to specific instance.</p>
  172. <p>While instances(VMs) has some standard name like : <strong>RD00</strong>XXXXXXX&nbsp; , <strong>ARRAffinity</strong>&nbsp; is some random alphanumeric </p>
  173. <p>you can delete these cookie key and try to connect to web app by refreshing url again , you will randomly get any of the <strong>ARRAffinity</strong>&nbsp; key and your browser request will connect to the instance associated with that <strong>ARRAffinity.</strong>
  174. </p>
  175. <p>
  176. <a href="https://msdnshared.blob.core.windows.net/media/2018/05/image253.png">
  177. <img width="630" height="362" title="image" class="shadow" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/05/image_thumb193.png" border="0">
  178. </a>
  179. </p>
  180. <p><br></p>
  181. <p>However In day to day app service maintenance and troubleshooting related issue , we may have requirement to connect to only any specific instance , for example manipulating anything on that instance only , Getting memory dump from that instance , killing any specific process on any particular instance&nbsp; and lot many other requirements.</p>
  182. <p>This requirement has two major challenges :</p>
  183. <p>1. Identifying <strong>ARRAffinity</strong> cookie for any specific instance .</p>2. Once we know that <strong>ARRAffinity</strong>&nbsp; , then using various available options , connect to that specific instance.<p>Lets discuss about both these challenges :</p>
  184. <p>
  185. <strong>
  186. <u> Identifying ARRAffinity cookie for any specific instance</u>&nbsp; :</strong>
  187. </p>
  188. <div class="paraBelow">
  189. <p>&nbsp;&nbsp;&nbsp;&nbsp; There is no out of the box UI&nbsp; available to get the <strong>ARRAffinity</strong> of any specific instance&nbsp; , but here are some options :</p>
  190. <ul>
  191. <li>Using steps mentioned in this blog post , you can get all <strong>ARRAffinity</strong>&nbsp; , but not the instance name so you may try connecting all those instances one by one to verify which one is of your interest :</li>
  192. </ul>
  193. <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a title="https://blogs.msdn.microsoft.com/kaushal/2016/11/21/azure-app-service-how-to-connect-to-the-kudu-site-of-a-specific-instance/" href="https://blogs.msdn.microsoft.com/kaushal/2016/11/21/azure-app-service-how-to-connect-to-the-kudu-site-of-a-specific-instance/">https://blogs.msdn.microsoft.com/kaushal/2016/11/21/azure-app-service-how-to-connect-to-the-kudu-site-of-a-specific-instance/</a>
  194. </p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; many hits &amp; trials involved to reach to correct Instance …so lets move to next way <p>
  195. <ul>
  196. <li>Using a Powershell&nbsp; <a href="https://github.com/paraspatidar/Code-Dump/blob/master/InstanceName_ArrAffinityCombination.ps1" target="_blank">script located here</a> , you can get the list of Instance name with their <strong>ARRAffinity</strong>&nbsp; value , but this has the limitation that :</li>
  197. <ul>
  198. <li>you must run this script every time you want to find the information </li>
  199. <li> login with your account&nbsp; </li>
  200. <li>you must be on a machine capable to run PowerShell script and of course </li>
  201. <li> you need that powershell script handy</li>
  202. </ul>
  203. </ul>
  204. <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; …………….phew………</p>
  205. </div>
  206. <p><br></p>
  207. <p>
  208. <strong>
  209. <u>Connect to that specific instance.</u>
  210. </strong>
  211. <div class="paraBelow">
  212. <ul>
  213. <li>Using Browser extension to edit the cookie , once we know the <strong>ARRAffinity</strong>&nbsp;&nbsp; ,&nbsp; we can connect to specific instance by using recommendation as in this post : <a title="https://blogs.msdn.microsoft.com/kaushal/2016/11/21/azure-app-service-how-to-connect-to-the-kudu-site-of-a-specific-instance/" href="https://blogs.msdn.microsoft.com/kaushal/2016/11/21/azure-app-service-how-to-connect-to-the-kudu-site-of-a-specific-instance/">https://blogs.msdn.microsoft.com/kaushal/2016/11/21/azure-app-service-how-to-connect-to-the-kudu-site-of-a-specific-instance/</a>&nbsp;</li>
  214. <li>Using some Azure App Service extension like <strong>Instance Detective by</strong>&nbsp; <a href="https://github.com/nmallick1/MutliConsoleExt" target="_blank">Nazeef Mallick</a> , which will help you to directly connect to any specific instance , but only issue is :</li>
  215. <ul>
  216. <li>you need to instance this extension to some site </li>
  217. <li>you should have KUDU access for that site</li>
  218. <li>you should have publish profile handy for the app service for which you want to connect to particular instance.</li>
  219. </ul>
  220. </ul>
  221. <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If above 3 challenges are not the concern , then I would recommend to use above extension , but if you are looking for some automated way where you don't need to do anything manual to find <strong>ARRAffinity</strong>&nbsp;&nbsp;&nbsp; &amp; Instance name combination , then this Post is for you.</p>
  222. <p>
  223. </p></div>
  224. <p>So if are excited about this automation ,then continue further part in&nbsp; my next Post here :<br>
  225. <a href="https://blogs.msdn.microsoft.com/paraspatidar/web-app-instance-name-and-arr-affinity-mapping-using-function-app-part-2/" target="_blank" rel="noopener">Web App Instance Name and ARR affinity Mapping using Function App – Part-2</a></p>
  226. </p>
  227. </p>
  228. </p>]]></content:encoded>
  229.    </item>
  230.    <item>
  231.      <title>Using SMO on Azure App Service (Web Apps) with Azure SQL DB</title>
  232.      <link>https://docs.microsoft.com/archive/blogs/paraspatidar/using-smo-on-azure-app-service-web-apps-with-azure-sql-db</link>
  233.      <pubDate>Sat, 10 Mar 2018 12:31:09 GMT</pubDate>
  234.      <dc:creator><![CDATA[ParasPatidar]]></dc:creator>
  235.      <guid
  236.        isPermaLink="false">https://blogs.msdn.microsoft.com/paraspatidar/?p=985</guid>
  237.      <description><![CDATA[SQL server management object SMO) is one of the widely used way to interact with SQL server due to...]]></description>
  238.      <content:encoded><![CDATA[SQL server management object SMO) is one of the widely used way to interact with SQL server due to its feature for directly able to execute mass operation as well as management operation on SQL server, instead of old school way of using queries.
  239.  
  240. However when using it , it should also need to be consider that on the environment where we are using it is compatible in various aspects or not.
  241.  
  242. If you have been using existing SMO based project and moving on to Azure App services &amp; facing any issue post deployment in SMO calls.
  243.  
  244. Or
  245.  
  246. You are building your application from scratch and planning to deploy it on Azure App services, there here are few things which you should do :
  247.  
  248. 1. <b><u>Correct Way of Using SMO DLL/Objects :</u></b>
  249.  
  250. You should refer to this link, and use the SMO Nuget package to get the SMO dll and create object out of it :
  251.  
  252. <a href="https://www.nuget.org/packages/Microsoft.SqlServer.SqlManagementObjects">https://www.nuget.org/packages/Microsoft.SqlServer.SqlManagementObjects</a>
  253.  
  254. &nbsp;
  255.  
  256. <a href="https://msdnshared.blob.core.windows.net/media/2018/03/clip_image00211.jpg"><img width="649" height="77" title="clip_image002" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/2018/03/clip_image002_thumb10.jpg" border="0" /></a>
  257.  
  258. &nbsp;
  259.  
  260. <b>2. </b><b><u>Connecting to on-Prem SQL database :</u></b>
  261.  
  262. To Connect to on-Prem database , you don’t need to do anything explicit in code .By using any of the Network connection method like hybrid connection or Vnet , you will be able to connect your web application on On-Prem SQL database and should be able execute <strong>most</strong> of the SMO operations.
  263.  
  264. &nbsp;
  265.  
  266. <b>3. </b><b><u>Connecting to Azure SQL database :</u></b>
  267.  
  268. If you are making a connection with Azure SQL database , then you are not explicitly creating any Vnet or Network connection to connect to Azure SQL database , thus here are few things which you should remember :
  269.  
  270. (1) Try running same code and application from <strong>local machine</strong> (visual studio) and see if you are able to perform desired operations , if you can execute the same on local machine but having issue in App service , then move further , else try making your code to work with Azure SQL database.
  271.  
  272. (2) If your code is working fine in local but having issue on Azure App service , there here are few scenarios which can happen :
  273.  
  274. · Make sure that You have <b>allowed Azure Service</b> in Firewall setting of Azure SQL database:
  275.  
  276. <a href="https://msdnshared.blob.core.windows.net/media/2018/03/image119.png"><img width="624" height="443" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/03/image_thumb107.png" border="0" /></a>
  277.  
  278. &nbsp;
  279.  
  280. · The Calls which you are making may <strong>be restricted by Azure App</strong> service due to <b>Sandbox environment</b> :
  281.  
  282. To test it , try changing SQL connection to On-Prem SQL database and create hybrid connection with On-Prem machine and see now if the App service is running fine and executing SQL operation.
  283.  
  284. <a href="#Interesting" id="Interesting"><b>Interesting things happening here :</b></a>
  285.  
  286. The very interesting thing here can bee is that App services being a PaaS environment, runs in a security restricted mode named <b>SandBox</b> and thus it banes some calls for various system , graphics or security related operations.
  287.  
  288. Read more about sandbox restrictions here
  289.  
  290. <a href="https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#app-service-plans-and-sandbox-limits">https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#app-service-plans-and-sandbox-limits</a>
  291.  
  292. For example , below is a sample code which runs fine when connecting to on-Prem SQL database form Azure App service.
  293.  
  294. It also runs fine when connecting to Azure SQL database while running code locally.
  295.  
  296. So you might endup in a confusion , that why the code is not working with Azure SQL db &amp; Azure App service combination .
  297.  
  298. &nbsp;
  299.  
  300. <a href="https://msdnshared.blob.core.windows.net/media/2018/03/image121.png"><img width="558" height="406" title="image" class="shadow" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/03/image_thumb109.png" border="0" /></a>
  301.  
  302. Here is the piece of code emitting above behavior :
  303. <div class="code" style="width: 80%"><script src="https://gist.github.com/paraspatidar/2a398e8f588459c719983e495b65b366.js"></script></div>
  304. <div class="code" style="width: 80%"></div>
  305. In above code, if you look at the line :
  306. <div class="code" style="width: 80%"><script src="https://gist.github.com/paraspatidar/bee27ef5e18209148d8d922d689b7327.js"></script></div>
  307. &nbsp;
  308.  
  309. All of them , internally make calls to fetch the current running <strong>server name &amp; IP</strong> , and this is a security related call and thus due to this 3 lines of code , the application will break as the call is being restricted by <strong>Sandbox</strong> , as per <a href="https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#local-address-requests">sandbox article</a> :
  310. <table style="width: 739px;height: 139px" border="1" cellspacing="0" cellpadding="0">
  311. <tbody>
  312. <tr>
  313. <td width="534" valign="top">Connection attempts to local addresses (<em>e.g.</em> <code>localhost</code>, <code>127.0.0.1</code>) and the machine's own IP will fail, <em>except</em> if another process in the <em>same</em> sandbox has created a listening socket on the destination port.
  314.  
  315. Rejected connection attempts, such as the following example which attempts to connect to <code>127.0.0.1:80</code>, from .NET will result in the following exception:</td>
  316. </tr>
  317. </tbody>
  318. </table>
  319. &nbsp;
  320.  
  321. However in case you are using , <strong>On-Prem Database</strong> , then same piece of code will work as in case of<strong> Vnet</strong> , Sandbox treats differently to  such calls and thus those calls doesn’t get banned in case of Vnet and works , as <a href="https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#virtual-networks">mentioned here</a> :
  322.  
  323. &nbsp;
  324. <table style="width: 740px;height: 179px" border="1" cellspacing="0" cellpadding="0">
  325. <tbody>
  326. <tr>
  327. <td width="623" valign="top">Azure Web Apps may set up their <a href="https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-overview"><em>virtual networks</em></a>, or <em>VNets</em> in order to facilitate connectivity between Azure and on-premise intranets. This special case of network connectivity is also handled differently in the sandbox. In particular, the aforementioned restrictions on private and local addresses are ignored if the target network interface belongs to the app. Other VNet adapters on the same machine cannot be accessed, and all other network limitations are still apply.
  328.  
  329. Additionally, the sandbox automatically affinitizes <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms737625%28v=vs.85%29.aspx"><code>connect</code></a> and <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms740149%28v=vs.85%29.aspx"><code>send</code></a> operations destined for VNet addresses to the correct VNet interface, in order to improve ease-of-use of the VNet feature.</td>
  330. </tr>
  331. </tbody>
  332. </table>
  333. &nbsp;
  334.  
  335. Removing those 3 lines from code, will make your code running fine and you shall be able to create table or any such SMO operation.
  336.  
  337. So above are few most happening scenarios which you need to take care.]]></content:encoded>
  338.    </item>
  339.    <item>
  340.      <title>Using Azure Container Registry on Cross Subscription</title>
  341.      <link>https://docs.microsoft.com/archive/blogs/paraspatidar/using-azure-container-registry-on-cross-subscription</link>
  342.      <pubDate>Thu, 04 Jan 2018 08:49:40 GMT</pubDate>
  343.      <dc:creator><![CDATA[ParasPatidar]]></dc:creator>
  344.      <guid
  345.        isPermaLink="false">https://blogs.msdn.microsoft.com/paraspatidar/?p=897</guid>
  346.      <description><![CDATA[&nbsp;
  347.  
  348. In this article we we going to discuss one very common scenario of using an existing azure...]]></description>
  349.      <content:encoded><![CDATA[&nbsp;
  350.  
  351. In this article we we going to discuss one very common scenario of using an existing azure container registry across multiple subscription in Azure Account.
  352.  
  353. If you are new to azure container registry &amp; azure   web apps for containers  , please refer my post here on step by step tutorial on how to setup <strong>
  354. <a target="_blank" href="https://blogs.msdn.microsoft.com/paraspatidar/continuous-deployment-with-web-app-for-containers-using-azure-container-registry-part-1/" rel="noopener">web app for containers using azure container registry</a>.</strong>
  355.  
  356. The Idea here to use the existing azure container is as follows :
  357. <ol>
  358. <li>Create Azure Container registry in one subscription.</li>
  359. <li>Test if this is working fine by creating web app for container using this registry in same subscription.</li>
  360. <li>If the test us Successful , then use this registry details  as a <strong>private registry</strong>.</li>
  361. <li>On Another Subscription , create a <a target="_blank" href="https://blogs.msdn.microsoft.com/paraspatidar/continuous-deployment-with-web-app-for-containers-using-azure-container-registry-part-1/" rel="noopener"><strong>web app for containers </strong>
  362. </a>
  363. <strong>, </strong>but in <strong>Configure Container</strong> / <strong>docker</strong>
  364. <strong>Container</strong> option , select the option  for <strong>private registry</strong>  and enter the details from point 3 with little correction (Image name should be in format &lt;loginserverOfRegistory&gt;<strong>/</strong>&lt;Imagename&gt;<strong>:</strong>&lt;Image tag&gt; )  which I will show you.</li>
  365. </ol>
  366. &nbsp;
  367.  
  368. So based on details of my previous <a target="_blank" href="https://blogs.msdn.microsoft.com/paraspatidar/continuous-deployment-with-web-app-for-containers-using-azure-container-registry-part-4/" rel="noopener"><strong>post here</strong>
  369. </a>and image shown below , here are registry details for point number 3 above:
  370.  
  371. <strong>Login Server</strong> : <span>azureregistrycontainer.azurecr.io</span>
  372.  
  373. <strong>Username</strong> : <span>azureregistrycontainer</span>
  374.  
  375. <strong>Password</strong> : <span>Blurred Password</span>
  376.  
  377. <strong>Server URL</strong> :  <a href="https://azureregistrycontainer.azurecr.io" title="https://azureregistrycontainer.azurecr.io"><span>https://azureregistrycontainer.azurecr.io</span>
  378. </a>
  379.  
  380. <a href="https://msdnshared.blob.core.windows.net/media/2018/01/image33.png">
  381. <img width="708" height="547" title="image" class="shadow margineleft5" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb33.png" border="0" />
  382. </a>
  383.  
  384. &nbsp;
  385.  
  386. <strong>Image name : </strong><span>samples1/php</span>
  387.  
  388. <strong>Tag : </strong><span>latest</span>
  389.  
  390. <a href="https://msdnshared.blob.core.windows.net/media/2018/01/image34.png">
  391. <img width="731" height="599" title="image" class="shadow margineleft5" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb34.png" border="0" />
  392. </a>
  393.  
  394. &nbsp;
  395.  
  396. Now , while creating web app on another subscription , please provide the details as mentioned :
  397.  
  398. <a href="https://msdnshared.blob.core.windows.net/media/2018/01/image35.png">
  399. <img width="706" height="660" title="image" class="shadow margineleft5" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb35.png" border="0" />
  400. </a>
  401.  
  402. &nbsp;
  403.  
  404. Or modify the similar details on Existing Web app for container in <strong>Docker Container Option:</strong>
  405.  
  406. <a href="https://msdnshared.blob.core.windows.net/media/2018/01/image36.png">
  407. <img width="763" height="769" title="image" class="shadow margineleft5" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb36.png" border="0" />
  408. </a>
  409.  
  410. &nbsp;
  411.  
  412. Please note , clicking on <strong>"Save”</strong>  button here will take you back to <strong>Azure Container Registry</strong> setting, but that's just default UI functionality , ignore that.
  413.  
  414. &nbsp;
  415.  
  416. <a href="https://msdnshared.blob.core.windows.net/media/2018/01/image37.png">
  417. <img width="764" height="840" title="image" class="shadow margineleft5" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb37.png" border="0" />
  418. </a>
  419.  
  420. &nbsp;
  421.  
  422. Now go ahead and try to browse your web app , it should be running fine same as that container image web app on original subscription.
  423.  
  424. Possible things to check if this doesn't work :
  425.  
  426. 1. Check the resource explorer option for this web app and check config details  , it should have entry as shown below  :
  427.  
  428. <a href="https://msdnshared.blob.core.windows.net/media/2018/01/image38.png">
  429. <img width="486" height="394" title="image" class="shadow margineleft5" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb38.png" border="0" />
  430. </a>
  431.  
  432. <a href="https://msdnshared.blob.core.windows.net/media/2018/01/image39.png">
  433. </a><a href="https://msdnshared.blob.core.windows.net/media/2018/01/ResExplo.png"><img class="shadow margineleft5" src="https://msdnshared.blob.core.windows.net/media/2018/01/ResExplo.png" alt="" width="825" height="444" /></a><a href="https://msdnshared.blob.core.windows.net/media/2018/01/image39.png">
  434. </a>
  435.  
  436. &nbsp;
  437.  
  438. 2. Verify that registry details and credentials as per step 3 are correct.
  439.  
  440. &nbsp;
  441.  
  442. &nbsp;]]></content:encoded>
  443.    </item>
  444.    <item>
  445.      <title>Continuous deployment with Web App for Containers using Azure Container Registry – Part 6</title>
  446.      <link>https://docs.microsoft.com/archive/blogs/paraspatidar/continuous-deployment-with-web-app-for-containers-using-azure-container-registry-part-6</link>
  447.      <pubDate>Sat, 25 Nov 2017 18:24:00 GMT</pubDate>
  448.      <dc:creator><![CDATA[ParasPatidar]]></dc:creator>
  449.      <guid
  450.        isPermaLink="false">https://blogs.msdn.microsoft.com/paraspatidar/?p=745</guid>
  451.      <description><![CDATA[This Post is in continuation of Post :...]]></description>
  452.      <content:encoded><![CDATA[<p><br></p><p>This Post is in continuation of Post : <a href="https://blogs.msdn.microsoft.com/paraspatidar/continuous-deployment-with-web-app-for-containers-using-azure-container-registry-part-5/">https://blogs.msdn.microsoft.com/paraspatidar/continuous-deployment-with-web-app-for-containers-using-azure-container-registry-part-5/</a> and it is Part 6 of the thread.<p>To start Over , please begin from <a href="https://blogs.msdn.microsoft.com/paraspatidar/continuous-deployment-with-web-app-for-containers-using-azure-container-registry-part-1/">Here</a><p>Our next steps are from <strong>Verifying Continuous Deployment&nbsp; </strong>section .<p>20. Go to Docker CLI.<p>21. Modify the image or give the same tag mapping to any other image.<p>&nbsp;&nbsp;&nbsp;&nbsp; 1) So now to do so , I will download the phpmyadmin container image from docker by running following command :<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; docker pull phpmyadmin/phpmyadmin<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://msdnshared.blob.core.windows.net/media/2017/11/clip_image021_thumb1.png"><img width="512" height="55" title="clip_image021_thumb1" style="margin: 0px;border: 0px currentcolor" alt="clip_image021_thumb1" src="https://msdnshared.blob.core.windows.net/media/2017/11/clip_image021_thumb1_thumb.png" border="0"></a><p>&nbsp;&nbsp;&nbsp;&nbsp; 2) Now if I verify the images in my docker by running command <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; docker images<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; it shows something like :<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://msdnshared.blob.core.windows.net/media/2017/11/17_thumb3.png"><img width="707" height="158" title="17_thumb3" style="margin: 0px;border: 0px currentcolor" alt="17_thumb3" src="https://msdnshared.blob.core.windows.net/media/2017/11/17_thumb3_thumb.png" border="0"></a></p><p>&nbsp;&nbsp;&nbsp; watch carefully here:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>Line 2</strong> : the image NGINX is having tag as latest with image id <em>40960******</em><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as I have mapped that image with Azure container registry end point<strong> sample1/php</strong>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>Line 1</strong> : my sample1/php end point is having same tag and same image id as line 2.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This also gives us indication , that currently which image is mapped to our azure registry end point.</p><p>&nbsp;&nbsp; 3) <strong>Line number 7</strong> : Now my recently downloaded <strong>phpmyadmin/phpmyadmin</strong> image tag is also latest ,with image id <em>f4674******</em><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; But that is not mapped with my existing azure end point ,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thus in <strong>line number 9</strong> , that end point with that image id is having Tag as &lt;none&gt;.</p><p>&nbsp;&nbsp; 4) Now let me map the <strong>phpmyadmin</strong> image to azure end point by running following command :<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font>docker tag phpmyadmin/phpmyadmin myregistry.azurecr.io/samples1/php</font></p><p><br></p><p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://msdnshared.blob.core.windows.net/media/2017/11/clip_image025_thumb1.jpg"><img width="609" height="27" title="clip_image025_thumb1" style="margin: 0px;border: 0px currentcolor" alt="clip_image025_thumb1" src="https://msdnshared.blob.core.windows.net/media/2017/11/clip_image025_thumb1_thumb.jpg" border="0"></a><p>&nbsp;&nbsp; 5) Now verify the docker image again to see if it pointing to correct end point <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://msdnshared.blob.core.windows.net/media/2017/11/18_thumb2.png"><img width="733" height="170" title="18_thumb2" style="margin: 0px;border: 0px currentcolor" alt="18_thumb2" src="https://msdnshared.blob.core.windows.net/media/2017/11/18_thumb2_thumb.png" border="0"></a><p>&nbsp; 6) Look closely ,<p>&nbsp; 7) Now <strong>line 1</strong> NGINX local image having image id <em>4096***</em> with tag latest.<p>&nbsp; 8) Line number <strong>4</strong> :This same image id <em>4096***</em> , the tag has become <strong>&lt;none&gt;</strong> , that means now <em><strong>NGINX</strong></em> is not pointing to azure end point <b>samples1/php</b> any more <p>&nbsp; 9) Line number <strong>5</strong> : Phpmyadmin/phpmyadmin local one having image id<em> f46764***</em> with tag latest ,<p>&nbsp; 10) Line number <strong>6</strong> : Same image id is now pointing to azure container registry end point <strong>samples1/php</strong> with tag latest.<p>&nbsp; 11) From above, we have mapped <strong>phpmyadmin/phpmyadmin</strong> image to azure container registry and pushing this on on registry will auto deploye phpmyadmin image on our web app , which is currently running <strong>nginx</strong> image.<p><br><p>22. Push the image to <b>Azure Container</b> <b>Registry.</b><p>&nbsp;&nbsp;&nbsp;&nbsp; <font>docker push myregistry.azurecr.io/samples1/php</font><p>&nbsp;&nbsp;&nbsp;&nbsp; Run following command will push this image on azure registory , which should ideally push it on Azure web app as well .<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://msdnshared.blob.core.windows.net/media/2017/11/clip_image029_thumb1.jpg"><img width="757" height="167" title="clip_image029_thumb1" style="margin: 0px;border: 0px currentcolor" alt="clip_image029_thumb1" src="https://msdnshared.blob.core.windows.net/media/2017/11/clip_image029_thumb1_thumb.jpg" border="0"></a><p>&nbsp;&nbsp;&nbsp;&nbsp; Now , in few minutes it should auto deploy <strong>phpmyadmin</strong> container on my web app <p><br><p>23. Browse the web app to see that new image is up and running.<p>&nbsp;&nbsp;&nbsp; <a href="https://msdnshared.blob.core.windows.net/media/2017/11/clip_image031_thumb2.png"><img width="528" height="318" title="clip_image031_thumb2" style="margin: 0px;border: 0px currentcolor" alt="clip_image031_thumb2" src="https://msdnshared.blob.core.windows.net/media/2017/11/clip_image031_thumb2_thumb.png" border="0" hspace="12"></a><p>24. After some time, the auto deployment logs are visible in the <b>Azure Container</b> <b>Registry’s </b><b> Web hook’s</b><b> Logs/events</b><p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://msdnshared.blob.core.windows.net/media/2017/11/20_thumb3.png"><img width="781" height="418" title="20_thumb3" style="border: 0px currentcolor" alt="20_thumb3" src="https://msdnshared.blob.core.windows.net/media/2017/11/20_thumb3_thumb.png" border="0"></a></strong></p>]]></content:encoded>
  453.    </item>
  454.  </channel>
  455. </rss>

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=https%3A//blogs.msdn.microsoft.com/paraspatidar/feed/

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda