<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Logic Apps - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Logic Apps - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Thu, 25 Jun 2026 04:44:55 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/logic-apps/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to better protect your secrets in Logic Apps using Key Vault connector ]]>
                </title>
                <description>
                    <![CDATA[ By Nadeem Ahamed One of the key challenges that users face while using Logic Apps is managing secret values. This used to be handled by passing the secrets through ARM templates, which is not an out of the box solution. Before the availability of the... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-better-protect-your-secrets-in-logic-apps-using-key-vault-connector/</link>
                <guid isPermaLink="false">66d46043e39d8b5612bc0dc6</guid>
                
                    <category>
                        <![CDATA[ Azure ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Logic Apps ]]>
                    </category>
                
                    <category>
                        <![CDATA[ serverless ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 30 Mar 2020 08:46:35 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/03/secret-banner.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Nadeem Ahamed</p>
<p>One of the key challenges that users face while using <a target="_blank" href="https://www.serverless360.com/azure-logic-apps">Logic Apps</a> is managing secret values. This used to be handled by passing the secrets through ARM templates, which is not an out of the box solution.</p>
<p>Before the availability of the Key Vault connector in Logic Apps, <a target="_blank" href="https://www.serverless360.com/blog/managing-secrets-in-azure-logic-apps-using-managed-identities">one of the ideal workarounds</a> was using an HTTP action available in logic apps and leveraging the Managed Identity authentication mode. Even this workaround has a few considerations as follows:</p>
<ol>
<li>Logic App run history contains the secret values which cannot be hidden</li>
<li>Currently, we can only have 10 logic apps that have system-assigned managed identities</li>
</ol>
<p>Let us explore how to better protect your secrets in your Logic Apps using the new Key Vault connector.  Also, I will show you how the above issue can be addressed with the Key vault Connector.</p>
<h2 id="heading-design-your-sample-logic-app">Design your sample Logic App</h2>
<p>Follow the steps below to create your sample logic app in the designer page.</p>
<ol>
<li>Add an “Http request” trigger to the logic app. Later we will call this logic app via a rest client.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/p1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="2">
<li>Then, search for the key vault actions and add the “Get Secret” action to the logic   app. Now, you have a couple of options here to authenticate: either you can use <strong>Azure AD</strong> or <a target="_blank" href="https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal"><strong>Service Princip</strong></a><strong>al</strong>. In this example, I am going ahead with Azure AD service.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/p2.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="3">
<li>Sign-in with your account. This account should have enough permission to access your Key Vault. Otherwise you should manually provide access through <strong>Access policies.</strong></li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/p3.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="4">
<li>Fill in the required field with the “”. If you don’t already have one in place, then you can create one by heading to the Key Vault menu. There you can find the “secrets” option in the left pane.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/p4.png" alt="Image" width="600" height="400" loading="lazy"></p>
<blockquote>
<p><em>Note: If you are provisioning the Key Vault itself for the first time, then remember: sometimes you may need to register the Key Vault service to your Subscription manually. (I encountered this issue when I did it for the first time).</em></p>
</blockquote>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/p5.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="5">
<li>Now, add the “Http response” action to the logic app. Fill in the following fields as below:  </li>
</ol>
<p><strong>Status Code</strong>: 200<br><strong>Body</strong>: </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/p6.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="6">
<li>Save the Logic App.</li>
</ol>
<h2 id="heading-testing-the-logic-app">Testing the Logic App</h2>
<p>Now, copy the HTTP post URL from the Logic App trigger and head to <a target="_blank" href="https://reqbin.com/">reqbin</a> (online REST client). Paste the URL in the address field and change the default method from <strong>GET</strong> to <strong>POST</strong> and click Send. </p>
<p>The logic app would have gotten triggered and sent back the response code 200 along with the secret value as shown in the picture below.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/p7.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-inspecting-the-run-history">Inspecting the Run History</h2>
<p>On inspecting the run history of the logic app, we notice that the secret values are visible in plain text. </p>
<p>Do you remember the same problem we encountered in the classic method? As I have already said this can be easily addressed through the Key Vault connector settings by following the below steps:</p>
<ol>
<li>Head back to the designer and click on the settings option under the “more options” menu in the Key Vault connector.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/p8.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="2">
<li>Now, in the settings for “Get Secret” action, enable the Secure <strong>Inputs</strong> and <strong>Outputs</strong> option and click Done.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/p9.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="3">
<li>Once again save the logic app and call it through the rest client (reqbin.com). You will get the same response in the Request Bin, but the run history doesn’t contain the secret values in the plain text format. Rather it shows as “Content not shown due to security configuration”.  </li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/p10.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>We have now addressed the first concern in the classic method. The second concern was that we can only have 10 logic apps that have system-assigned managed identities.</p>
<p>We have also overcome this issue by not using the Managed Identity mode of authentication in the connector. Rather it authenticates through Azure Active Directory or Service Principal (which has a downside of rotating secrets, though). </p>
<p>Once the user gets enough permissions to the Key vault through Access Policy they will be able to access the Key Vault in any number of Logic Apps.</p>
<h2 id="heading-expanded-feature-set">Expanded Feature Set</h2>
<p>While digging more into the Logic Apps Key Vault actions, I found some more interesting use cases that can be achieved through Encryption and Decryption actions.</p>
<p>If the user is more concerned about their data, then they can use the Encryption and Decryption action to keep the values more secure.</p>
<p>To do this, create an encryption key in the Key Vault.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/p11.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Using the Encrypt and Decrypt actions in the Key vault connectors you can encrypt the data and decrypt it again. As seen above, we can even enable the Secure Inputs and Outputs option in the settings to make it more securable.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/p12.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-manage-and-monitor-logic-apps-using-serverless360">Manage and Monitor Logic Apps using Serverless360</h2>
<p><a target="_blank" href="https://www.serverless360.com/">Serverless360</a> is one platform to manage and monitor all your Azure Serverless resources with focus to help your operations and support your team on a day to day basis.</p>
<p><em>Consider the above workflow of a business application defined using multiple Azure Logic Apps.</em> </p>
<p>Different stakeholders of the business application will have different needs as they <a target="_blank" href="https://www.serverless360.com/azure-logic-apps-monitoring-management">manage and monitor the Azure Logic Apps</a>. </p>
<p>Some key requirements which are hard to achieve through the Azure portal are:</p>
<ul>
<li>auto-correcting the Logic App state when found to be not as expected</li>
<li>instant reflection of the warning and error state of the Logic App in a service map view</li>
<li>near real time detection of failure</li>
<li>automation in re-submission of specific failed run actions</li>
<li>end to end tracking on the message flowing through the Logic Apps, and </li>
<li>evaluation on the consumption, performance and reliability. </li>
</ul>
<p>These requirements cannot be achieved directly through the Azure portal. But <a target="_blank" href="https://www.serverless360.com/">Serverless360</a> can come in as a complement to the Azure portal, as it is crafted with capabilities to address the gaps in the Azure portal.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/03/Topology.png" alt="Image" width="600" height="400" loading="lazy">
<em>Service Map in Serverless360</em></p>
<h2 id="heading-wrap-up">Wrap-up</h2>
<p>In this blog, we have seen the classic and latest methods of protecting your secrets in Logic Apps. Also, I hope this blog has given you a clearer understanding of the Key Vault connector that is now currently available.</p>
<p>Lastly, I have covered the extended feature sets of the Logic Apps Key Vault connector, Encryption and Decryption actions.</p>
<p>I hope you enjoyed reading this article. Happy Learning!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Azure Logic Apps Use Case – Black Friday ]]>
                </title>
                <description>
                    <![CDATA[ By Nadeem Ahamed This blog gives an overview of how Azure Serverless technologies came to rescue when the custom-built integration system went down. Also, it shows the high-level architecture solution built using Azure Serverless services like Logic ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/azure-logic-apps-use-case-black-friday/</link>
                <guid isPermaLink="false">66d46041787a2a3b05af43e8</guid>
                
                    <category>
                        <![CDATA[ Azure ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Logic Apps ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Middleware ]]>
                    </category>
                
                    <category>
                        <![CDATA[ use-cases ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 04 Jul 2019 04:25:56 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/07/black-friday-Banner-image.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Nadeem Ahamed</p>
<p>This blog gives an overview of how Azure Serverless technologies came to rescue when the custom-built integration system went down. Also, it shows the high-level architecture solution built using Azure Serverless services like Logic Apps, Service Bus Queue and Topics, etc to replace the legacy system.</p>
<p>This article was originally published at <a target="_blank" href="https://www.serverless360.com">Serverless360.com</a></p>
<h2 id="heading-how-it-all-started">How it all Started?</h2>
<p><img src="https://www.serverless360.com/wp-content/uploads/2019/06/1-Legacy-system.png" alt="Legacy system" width="600" height="400" loading="lazy"></p>
<p>About three years ago, Northwind, a company who runs their business in B2B space wanted to extend its business to B2C. So, the company wanted to open a Web Shop (SaaS). Since it was a B2B specialized company there were no warehouse and transport service to serve the customers effectively. The company chose to go ahead with LSP (Logistics Service Provider) instead. The legacy system was built using a middleware to connect the Web Shop and the LSP. Later, the legacy system was integrated with the email system. The complexity of the system increased as several branches (Web shops) opened across the globe.</p>
<p>One day, the whole system went down, and the company started losing hundreds of orders. Then, the company approached an expert team to fix their middleware.</p>
<h3 id="heading-requirements-to-be-considered"><strong>Requirements to be considered</strong></h3>
<ul>
<li>Stability – the system needs to be stable enough to handle a lot of orders.</li>
<li>Monitoring – the system should be monitored to alert the operation personnel when something goes wrong.</li>
<li>To handle 10,000 orders per hour.</li>
<li>New SaaS webshop</li>
</ul>
<h2 id="heading-the-solution">The Solution</h2>
<p><img src="https://www.serverless360.com/wp-content/uploads/2019/06/2-serverless-middleware.png" alt="Serverless middleware" width="600" height="400" loading="lazy"></p>
<p>The expert team replaced the middleware using Azure serverless technologies. Predominantly, Logic Apps and other Serverless entities like Azure Functions, Service Bus Queues and Topics were used. The stateful middleware was changed to stateless using event-based approach.</p>
<h2 id="heading-what-is-serverless">What is Serverless?</h2>
<p><img src="https://www.serverless360.com/wp-content/uploads/2019/06/3-what-is-serverless.png" alt="what is serverless" width="600" height="400" loading="lazy"></p>
<p><strong>The abstraction of server, platform, and runtime</strong> – There is no need to provision or maintain any servers. There is no software or runtime to install, maintain, or administer.</p>
<p><strong>Event-driven scaling</strong> – This is one of the important characteristics of Serverless, you shouldn’t worry about scaling your solution if demand arises.</p>
<p><strong>Micro-billing</strong> – When your code is executed you pay per execution. Typically, the vendors calculate this based on memory consumption and the time it takes for the execution.</p>
<h3 id="heading-advantages">Advantages</h3>
<p><strong>Manage apps not servers</strong> – The significant advantage of serverless is that the user does not manage the servers, but the cloud service providers do.</p>
<p><strong>Reduced DevOps</strong> – It reduces the DevOps cost as the infrastructure is maintained by CSP.</p>
<p><strong>Faster time to Market</strong> – It reduces the time to market as serverless technology screens the ground works and lets the developer focus on the logic.</p>
<h2 id="heading-azure-logic-apps">Azure Logic Apps</h2>
<blockquote>
<p><em>You can run a business workflow in Azure using the Logic App service.</em></p>
</blockquote>
<p>The Logic App is a logical container for one workflow you can define using triggers and actions. A trigger can instantiate a workflow, which can consist of one or many activities (actions). For instance, you can trigger a workflow by sending an HTTP request or schedule a workflow every hour to retrieve data from a public website. There are 200+ out-of-the-box connectors available for enterprise integration.</p>
<h3 id="heading-benefits">Benefits</h3>
<ul>
<li>Out-of-the-box connector reduces the integration challenges</li>
<li>Connect and Integrate data from the cloud to on-premises</li>
<li>B2B and enterprise messaging in the cloud</li>
<li>A powerful web-based workflow designer</li>
</ul>
<h2 id="heading-pricing-of-azure-logic-apps">Pricing of Azure Logic Apps</h2>
<p><img src="https://www.serverless360.com/wp-content/uploads/2019/06/4-logic-Apps-pricing.png" alt="Azure logic Apps pricing" width="600" height="400" loading="lazy"></p>
<p>The pricing is very simple. It works on the pay-as-you-go model, it would cost you only a few nickels. For instance, if you process 1000 service bus messages a day, with a workflow of five actions it would cost you EUR 4.62 approx. To execute a normal action, it would cost $ 0.000025 and for a Standard connector, it would cost you $0.000125. Even, the Enterprise connector would cost you only $0.001. For more information see the pricing page <a target="_blank" href="https://azure.microsoft.com/en-in/pricing/details/logic-apps/">here</a>.</p>
<h2 id="heading-basic-architecture-solution">Basic Architecture Solution</h2>
<p><img src="https://www.serverless360.com/wp-content/uploads/2019/06/5-Basic-architecture-solution.png" alt="Basic architecture solution" width="600" height="400" loading="lazy"></p>
<p>Initially, there is a webshop connected to Webshop publisher Logic App through Webhook. The Webshop publisher Logic Apps act as the orchestrator for the workflow. The data from the Webshop is converted into Canonical entity and passed to the Canonical Order Mapper Logic App. Subsequently, the control flows to the CE publisher where the translation of the object happens. Then, the translated object is sent to Service Bus Topic. Topic Subscriptions provide a one-to-many form of communication, in a publish/subscribe pattern. Get to know about Topic Subscription rules <a target="_blank" href="https://www.serverless360.com/blog/manage-azure-topic-subscription-rules">here</a>.  Based on the filter, the orders are sent to LSP Subscriber and MS (Marketing System) Subscriber.</p>
<h2 id="heading-impressive-scalability-of-azure-logic-apps">Impressive Scalability of Azure Logic Apps</h2>
<p><img src="https://www.serverless360.com/wp-content/uploads/2019/06/6-impressive-scalability.png" alt="impressive scalability" width="600" height="400" loading="lazy"></p>
<p>On running the above workflow, it could process 73,120 orders in 20 min. Every order would get processed in less than 3 seconds and the success rate was above 98 percent. The above log shows that there were 73,120 runs completed and out of which 72,972 runs were accomplished and 148 runs were failed.</p>
<h2 id="heading-view-of-entities-in-a-resource-group">View of Entities in a Resource Group</h2>
<p><img src="https://www.serverless360.com/wp-content/uploads/2019/06/7-view-of-entities.png" alt="view of entities" width="600" height="400" loading="lazy"></p>
<p>The above picture represents how the entities will be listed in a Resource Group. For better management of the entities use the Display Name tag. It helps the user to debug the workflow in case of failure.</p>
<h2 id="heading-webshop-publisher-logic-app">Webshop Publisher Logic App</h2>
<p><img src="https://www.serverless360.com/wp-content/uploads/2019/06/8-webshop-publisher-logic-app.png" alt="webshop publisher logic app" width="600" height="400" loading="lazy"></p>
<p>Out-of-the-box, there is an HTTP trigger which initiates the Logic App and sends 201 response directly for the received message. 201 response represents that request has been fulfilled and has resulted in one or more new resources being created. Subsequently, sends the order message to the other Logic App (Map order to Canonical order) and to Publish canonical order.</p>
<h3 id="heading-tracked-properties">Tracked properties</h3>
<p>In “Response 201 directly” action, the following properties are tracked</p>
<ul>
<li>Customer Email</li>
<li>Flow</li>
<li>Order ID</li>
<li>Shop ID</li>
</ul>
<h2 id="heading-canonical-order-mapper">Canonical Order Mapper</h2>
<p><img src="https://www.serverless360.com/wp-content/uploads/2019/06/9canonical-order-mapper.png" alt="canonical order mapper" width="600" height="400" loading="lazy"></p>
<p>The Logic App gets triggered by receiving the HTTP request. Then, the message would be passed to Data Operation actions to compose canonical order items and create shop reference data.  Subsequently, composes the canonical order using Data Operation action and sends back the response.</p>
<h2 id="heading-service-bus-explorer">Service Bus Explorer</h2>
<p>For easy management of the entities use Service Bus Explorer. It provides filter option for Service Bus Topic using which the message can be sent to the defined subscriptions (LSP). The message will be filtered based on the properties defined in the Service Bus Topic. <a target="_blank" href="https://www.serverless360.com/compare-service-bus-explorer">Here is how Serverless360 makes a better option for Service Bus Explorer.</a></p>
<h2 id="heading-monitoring">Monitoring</h2>
<p><img src="https://www.serverless360.com/wp-content/uploads/2019/06/10-Log-Analytics.png" alt="Log Analytics" width="600" height="400" loading="lazy"></p>
<p>The above picture shows the Log Analytics dashboard. It provides a graphical representation and monitoring capability for the entities associated with the Log analytics. Inside the Log Analytics, the user can run powerful quires and inspect the database if something goes wrong.</p>
<h2 id="heading-demo-order-paid">Demo – order paid</h2>
<p>To test the new solution architecture, send the test order, use the Postman tool to send a POST message to the Logic App. On sending the successful order, you can see the 201 response at the bottom left corner of the Postman tool. On receiving the order, the Logic Apps gets triggered and finally, the order message would reach any one of the respective LSP.</p>
<h2 id="heading-cicd-pipeline">CI/CD pipeline</h2>
<p><img src="https://www.serverless360.com/wp-content/uploads/2019/06/10-CICD-pipeline.png" alt="CICD pipeline" width="600" height="400" loading="lazy"></p>
<p>The above picture represents the CI/CD pipeline architecture. There are three blocks namely Developer context, Azure DevOps and Azure subscription. The Developer context contains PowerShell, IDE’s, etc. Once the developer checks in the code, it commits to the repository. On switching the Build option, build pipeline deploys the code to the Blob storage. Once Build pipeline is done with the work, Release pipeline kicks off and tells the ARM to reflect the changes in Development, Testing, and Production environment.</p>
<h3 id="heading-benefits-1">Benefits</h3>
<ul>
<li>No manual steps required to deploy the code.</li>
<li>Quality control can be done</li>
<li>The organization can have a bigger development team</li>
</ul>
<h3 id="heading-challenges"><strong>Challenges</strong></h3>
<ul>
<li>A lot of housekeeping is required around ARM templates.</li>
<li>Things get complex if any ARM template goes down. Because the failure can be spotted only during release.</li>
<li>The rhythm of the service changes rapidly</li>
</ul>
<h2 id="heading-key-takeaways-from-the-above-solution">Key Takeaways from the Above Solution</h2>
<ul>
<li>Faster time to market: There were only three developers and they could get the project done within 3 months.</li>
<li>Resilient and scalable: As we saw above the application was highly scalable. It could handle about 73 thousand orders in 20 minutes.</li>
<li>It is best suitable for business-critical systems</li>
</ul>
<p>This blog is an extraction of the session “Black Friday? Logic Apps to the rescue” presented by <a target="_blank" href="https://twitter.com/aarjanmeirink">Aarjan Meirink</a> at MSBuild 2019.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
