<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Azure Integration Services Blog articles</title>
    <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/bg-p/IntegrationsonAzureBlog</link>
    <description>Azure Integration Services Blog articles</description>
    <pubDate>Thu, 23 Jul 2026 08:30:24 GMT</pubDate>
    <dc:creator>IntegrationsonAzureBlog</dc:creator>
    <dc:date>2026-07-23T08:30:24Z</dc:date>
    <item>
      <title>Hybrid Logic Apps on RKE2: a self-managed cluster with MetalLB</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/hybrid-logic-apps-on-rke2-a-self-managed-cluster-with-metallb/ba-p/4539846</link>
      <description>&lt;P&gt;Azure Logic Apps Hybrid lets you run the Logic Apps runtime on your own Kubernetes cluster and still author, deploy, and monitor from Azure. The &lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/hybrid-logic-apps-deployment-on-red-hat-openshift/4534828" target="_blank"&gt;previous post&lt;/A&gt; walked through Red Hat OpenShift. This one is RKE2. We spun up a single-node RKE2 cluster, gave the ingress an IP with MetalLB, connected it to Arc, and shipped a Hybrid Logic App end-to-end. A handful of things needed care along the way, and those are what this post is really about.&lt;/P&gt;
&lt;P&gt;If you've done Hybrid on AKS or K3s, the shape will look familiar. The &lt;A href="https://learn.microsoft.com/azure/logic-apps/set-up-standard-workflows-hybrid-deployment-requirements" target="_blank"&gt;official requirements doc&lt;/A&gt; covers the general flow. RKE2 is close enough to vanilla Kubernetes that most of it just works out of the box. Four things don't. Three of them are DNS. They're called out at the step they matter.&lt;/P&gt;
&lt;H2&gt;What makes RKE2 different?&lt;/H2&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Area&lt;/th&gt;&lt;th&gt;What we found&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Ingress IP&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;RKE2 has an embedded cloud-controller-manager for node lifecycle, but no service load balancer. &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;type: LoadBalancer&lt;/CODE&gt; sits at &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;&amp;lt;pending&amp;gt;&lt;/CODE&gt; until you bring one. We used MetalLB (Step 2).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Pod security&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;No SCC dance like OpenShift; the extension pods schedule as-is. What we did hit was the node's &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;inotify&lt;/CODE&gt; limit. Enough runtime pods use it that the default runs out and about half the deployment crash-loops (Step 4).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;CoreDNS&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;RKE2 names its DNS objects &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;rke2-coredns-rke2-coredns&lt;/CODE&gt;, not &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;coredns&lt;/CODE&gt;/&lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;kube-dns&lt;/CODE&gt;. &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;az containerapp arc setup-core-dns&lt;/CODE&gt; doesn't have an RKE2 distro flag yet, so DNS is manual (Step 7).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Distribution flag&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;RKE2 is upstream Kubernetes. Don't copy the OpenShift install command; the &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;Azure.Cluster.Distribution=openshift&lt;/CODE&gt; and &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;coreDNSVersion&lt;/CODE&gt; overrides don't apply here and will bite you (Step 4).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H2&gt;Prerequisites&lt;/H2&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;A Linux host&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Anywhere RKE2 runs: bare metal, a VM, an edge appliance. We used a single Ubuntu 22.04 Azure VM (&lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;Standard_D8as_v5&lt;/CODE&gt;) so everything was easy to nuke afterwards. 4 vCPU / 16 GB is the practical floor.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Azure subscription&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Rights to create Arc resources, custom locations, and connected environments.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Azure CLI&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Latest, with the &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;connectedk8s&lt;/CODE&gt;, &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;k8s-extension&lt;/CODE&gt;, &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;customlocation&lt;/CODE&gt;, and &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;containerapp&lt;/CODE&gt; extensions.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;An SMB file share&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Reachable from the cluster, for workflow artifacts.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;A spare IP range&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;A small unused range on your node's L2 network for MetalLB to hand out (Step 2).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;PRE style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; padding: 14px 16px; overflow: auto; font-family: Consolas,Menlo,'Courier New',monospace; font-size: 13px; line-height: 1.55; white-space: pre; color: #24292e;"&gt;az extension add --name connectedk8s
az extension add --name k8s-extension
az extension add --name customlocation
az extension add --name containerapp&lt;/PRE&gt;
&lt;H2&gt;Step 1: Stand up RKE2&lt;/H2&gt;
&lt;P&gt;One line and a couple of minutes:&lt;/P&gt;
&lt;PRE style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; padding: 14px 16px; overflow: auto; font-family: Consolas,Menlo,'Courier New',monospace; font-size: 13px; line-height: 1.55; white-space: pre; color: #24292e;"&gt;curl -sfL https://get.rke2.io | sudo sh -
sudo systemctl enable --now rke2-server.service

# kubectl + kubeconfig are dropped in place
export PATH=$PATH:/var/lib/rancher/rke2/bin
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
kubectl get nodes          # Ready in ~2-5 min after the first image pull&lt;/PRE&gt;
&lt;P&gt;RKE2 servers are schedulable by default, so this single node is your entire cluster. No taint to remove. If you want to run kubectl from your laptop, add the node's public IP or hostname to &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;tls-san&lt;/CODE&gt; in &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;/etc/rancher/rke2/config.yaml&lt;/CODE&gt; &lt;EM&gt;before&lt;/EM&gt; the first start, then copy &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;rke2.yaml&lt;/CODE&gt; out and swap &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;127.0.0.1&lt;/CODE&gt; for that address.&lt;/P&gt;
&lt;BLOCKQUOTE style="border-left: 4px solid #0067b8; background: #f0f7ff; margin: 20px 0; padding: 10px 16px; border-radius: 0 6px 6px 0;"&gt;
&lt;P&gt;&lt;STRONG&gt;Quick sanity check.&lt;/STRONG&gt; Expose a throwaway nginx as &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;LoadBalancer&lt;/CODE&gt;: &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;kubectl create deploy nginx --image=nginx &amp;amp;&amp;amp; kubectl expose deploy nginx --port=80 --type=LoadBalancer&lt;/CODE&gt;. The &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;EXTERNAL-IP&lt;/CODE&gt; will sit at &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;&amp;lt;pending&amp;gt;&lt;/CODE&gt; forever. That's the gap MetalLB fills in the next step. Clean up the deployment and service when you're done looking.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;Step 2: Give the ingress an IP with MetalLB&lt;/H2&gt;
&lt;P&gt;All the Logic Apps in this environment share a single Envoy ingress, and something has to give that service an IP. A cloud does it for you; on-prem, you pick one of two options:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;In-cluster load balancer.&lt;/STRONG&gt; MetalLB (or Cilium, kube-vip, OpenELB) assigns an IP from a pool on your node network. Leave &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;envoy.serviceType=LoadBalancer&lt;/CODE&gt; in Step 4. This is what we did.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;External L4 load balancer in front of NodePort.&lt;/STRONG&gt; If you already run an F5, HAProxy, NetScaler, or an Azure Standard Load Balancer, keep using it. Set &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;envoy.serviceType=NodePort&lt;/CODE&gt; (plus &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;envoy.nodeHttpsPort&lt;/CODE&gt; / &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;envoy.nodeHttpPort&lt;/CODE&gt;) and point your LB at those NodePorts. Then pass the LB's VIP as &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;--static-ip&lt;/CODE&gt; in Step 6.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;We went with MetalLB in L2 mode:&lt;/P&gt;
&lt;PRE style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; padding: 14px 16px; overflow: auto; font-family: Consolas,Menlo,'Courier New',monospace; font-size: 13px; line-height: 1.55; white-space: pre; color: #24292e;"&gt;kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.9/config/manifests/metallb-native.yaml
kubectl wait --for=condition=Ready pods --all -n metallb-system --timeout=180s&lt;/PRE&gt;
&lt;P&gt;Then give it a pool from your node subnet and advertise it over L2:&lt;/P&gt;
&lt;PRE style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; padding: 14px 16px; overflow: auto; font-family: Consolas,Menlo,'Courier New',monospace; font-size: 13px; line-height: 1.55; white-space: pre; color: #24292e;"&gt;apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: hybrid-pool
  namespace: metallb-system
spec:
  addresses:
    - 192.168.1.240-192.168.1.250   # a spare range on your node network
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: hybrid-l2
  namespace: metallb-system
spec:
  ipAddressPools:
    - hybrid-pool&lt;/PRE&gt;
&lt;P&gt;Two things to watch. The range should be free on your node subnet, and it must not collide with RKE2's cluster (&lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;10.42.0.0/16&lt;/CODE&gt;) or service (&lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;10.43.0.0/16&lt;/CODE&gt;) CIDRs. Re-run the throwaway &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;LoadBalancer&lt;/CODE&gt; test from Step 1; the &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;EXTERNAL-IP&lt;/CODE&gt; should now be one of your pool addresses.&lt;/P&gt;
&lt;BLOCKQUOTE style="border-left: 4px solid #0067b8; background: #f0f7ff; margin: 20px 0; padding: 10px 16px; border-radius: 0 6px 6px 0;"&gt;
&lt;P&gt;&lt;STRONG&gt;Running MetalLB on one cloud VM?&lt;/STRONG&gt; L2 mode ARPs the pool IPs on the node's network, but a cloud SDN won't route an unassigned IP to your NIC from the outside. It works fine for anything inside the cluster (kube-proxy programs the IP locally), but to hit envoy from outside the VM you'll need to &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;socat&lt;/CODE&gt;-forward the VM's public IP to the LB IP, or add the pool IP as a secondary ipconfig on the NIC. On real on-prem L2 you don't have to think about any of this.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;Step 3: Connect the cluster to Azure Arc&lt;/H2&gt;
&lt;PRE style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; padding: 14px 16px; overflow: auto; font-family: Consolas,Menlo,'Courier New',monospace; font-size: 13px; line-height: 1.55; white-space: pre; color: #24292e;"&gt;az connectedk8s connect --name &amp;lt;cluster&amp;gt; --resource-group &amp;lt;rg&amp;gt; --location &amp;lt;region&amp;gt;
kubectl get pods -n azure-arc      # all agents Running in a couple of minutes&lt;/PRE&gt;
&lt;BLOCKQUOTE style="border-left: 4px solid #0067b8; background: #f0f7ff; margin: 20px 0; padding: 10px 16px; border-radius: 0 6px 6px 0;"&gt;
&lt;P&gt;If your host is behind a strict egress policy, or in our case an internal MS VM with an inbound-deny NRMS policy, remember that Arc onboarding only needs &lt;EM&gt;outbound&lt;/EM&gt; connectivity and a &lt;EM&gt;local&lt;/EM&gt; kubeconfig. We ran the connect command on the VM itself using a system-assigned managed identity (&lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;az login --identity&lt;/CODE&gt;). No inbound port, no browser device-code prompt.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;Step 4: Install the Container Apps extension&lt;/H2&gt;
&lt;P&gt;This is the extension that turns the cluster into a Logic Apps host. On RKE2 it's the plain command, with &lt;STRONG&gt;no&lt;/STRONG&gt; &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;Azure.Cluster.Distribution&lt;/CODE&gt; or &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;coreDNSVersion&lt;/CODE&gt; overrides. If you copy those from an OpenShift guide, the install will still succeed and then behave in mildly confusing ways.&lt;/P&gt;
&lt;PRE style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; padding: 14px 16px; overflow: auto; font-family: Consolas,Menlo,'Courier New',monospace; font-size: 13px; line-height: 1.55; white-space: pre; color: #24292e;"&gt;az k8s-extension create \
  --resource-group &amp;lt;rg&amp;gt; --cluster-name &amp;lt;cluster&amp;gt; \
  --cluster-type connectedClusters --name logicapps-aca-extension \
  --extension-type Microsoft.App.Environment \
  --release-train stable --auto-upgrade-minor-version true --scope cluster \
  --release-namespace logicapps-aca-ns \
  --configuration-settings "Microsoft.CustomLocation.ServiceAccount=default" \
  --configuration-settings "appsNamespace=logicapps-aca-ns" \
  --configuration-settings "clusterName=&amp;lt;env-name&amp;gt;" \
  --configuration-settings "keda.enabled=true" \
  --configuration-settings "keda.logicAppsScaler.enabled=true" \
  --configuration-settings "keda.logicAppsScaler.replicaCount=1" \
  --configuration-settings "containerAppController.api.functionsServerEnabled=true" \
  --configuration-settings "functionsProxyApiConfig.enabled=true" \
  --configuration-settings "envoy.serviceType=LoadBalancer"&lt;/PRE&gt;
&lt;P&gt;Our first install came back "Succeeded", but half the pods were in &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;CrashLoopBackOff&lt;/CODE&gt;. &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;billing&lt;/CODE&gt;, &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;containerapp-controller&lt;/CODE&gt;, &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;keda-logicapps-scaler&lt;/CODE&gt;, &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;mdm&lt;/CODE&gt;, and &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;log-processor&lt;/CODE&gt; all had the same line in their logs:&lt;/P&gt;
&lt;PRE style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; padding: 14px 16px; overflow: auto; font-family: Consolas,Menlo,'Courier New',monospace; font-size: 13px; line-height: 1.55; white-space: pre; color: #24292e;"&gt;The configured user limit (128) on the number of inotify instances has been reached&lt;/PRE&gt;
&lt;P&gt;These are .NET services with &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;FileSystemWatcher&lt;/CODE&gt; under the hood. The default &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;fs.inotify.max_user_instances=128&lt;/CODE&gt; on stock Ubuntu is comfortably below what the extension needs. Raise it on the node, delete the pods, done:&lt;/P&gt;
&lt;PRE style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; padding: 14px 16px; overflow: auto; font-family: Consolas,Menlo,'Courier New',monospace; font-size: 13px; line-height: 1.55; white-space: pre; color: #24292e;"&gt;sudo sysctl -w fs.inotify.max_user_instances=8192
sudo sysctl -w fs.inotify.max_user_watches=1048576
echo -e "fs.inotify.max_user_instances=8192\nfs.inotify.max_user_watches=1048576" | sudo tee /etc/sysctl.d/99-inotify.conf
kubectl delete pods --all -n logicapps-aca-ns&lt;/PRE&gt;
&lt;P&gt;After that everything came up green, and envoy grabbed a MetalLB address on its own. Confirm:&lt;/P&gt;
&lt;PRE style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; padding: 14px 16px; overflow: auto; font-family: Consolas,Menlo,'Courier New',monospace; font-size: 13px; line-height: 1.55; white-space: pre; color: #24292e;"&gt;az k8s-extension show -g &amp;lt;rg&amp;gt; --cluster-name &amp;lt;cluster&amp;gt; \
  --cluster-type connectedClusters --name logicapps-aca-extension \
  --query provisioningState -o tsv          # -&amp;gt; Succeeded
kubectl get svc microsoft-app-environment-k8se-envoy -n logicapps-aca-ns   # EXTERNAL-IP from your pool&lt;/PRE&gt;
&lt;H2&gt;Step 5: Create a custom location&lt;/H2&gt;
&lt;P&gt;Turn on the custom-locations feature, then create the location that ties the cluster, extension, and namespace together:&lt;/P&gt;
&lt;PRE style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; padding: 14px 16px; overflow: auto; font-family: Consolas,Menlo,'Courier New',monospace; font-size: 13px; line-height: 1.55; white-space: pre; color: #24292e;"&gt;az connectedk8s enable-features -n &amp;lt;cluster&amp;gt; -g &amp;lt;rg&amp;gt; \
  --features cluster-connect custom-locations \
  --custom-locations-oid $(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)

EXT_ID=$(az k8s-extension show -g &amp;lt;rg&amp;gt; --cluster-name &amp;lt;cluster&amp;gt; \
  --cluster-type connectedClusters --name logicapps-aca-extension --query id -o tsv)
CC_ID=$(az connectedk8s show -g &amp;lt;rg&amp;gt; -n &amp;lt;cluster&amp;gt; --query id -o tsv)

az customlocation create \
  --resource-group &amp;lt;rg&amp;gt; --name &amp;lt;custom-location&amp;gt; \
  --location &amp;lt;region&amp;gt; --host-resource-id $CC_ID \
  --namespace logicapps-aca-ns --cluster-extension-ids $EXT_ID&lt;/PRE&gt;
&lt;BLOCKQUOTE style="border-left: 4px solid #0067b8; background: #f0f7ff; margin: 20px 0; padding: 10px 16px; border-radius: 0 6px 6px 0;"&gt;
&lt;P&gt;One thing we tripped on: the extension type isn't offered in every Azure region. It's registered in &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;eastus&lt;/CODE&gt;, &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;westus&lt;/CODE&gt;, &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;westeurope&lt;/CODE&gt;, and a handful of others, but not &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;eastus2&lt;/CODE&gt; at the time of writing. The &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;connectedCluster&lt;/CODE&gt; resource's region is independent of where the node actually runs, so pick a supported one here.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;Step 6: Create the connected environment&lt;/H2&gt;
&lt;PRE style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; padding: 14px 16px; overflow: auto; font-family: Consolas,Menlo,'Courier New',monospace; font-size: 13px; line-height: 1.55; white-space: pre; color: #24292e;"&gt;CL_ID=$(az customlocation show -g &amp;lt;rg&amp;gt; -n &amp;lt;custom-location&amp;gt; --query id -o tsv)

az containerapp connected-env create \
  --resource-group &amp;lt;rg&amp;gt; --name &amp;lt;env-name&amp;gt; \
  --location &amp;lt;region&amp;gt; --custom-location $CL_ID&lt;/PRE&gt;
&lt;P&gt;Because MetalLB already put an &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;EXTERNAL-IP&lt;/CODE&gt; on the envoy &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;LoadBalancer&lt;/CODE&gt; service, the platform picks it up automatically. &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;--static-ip&lt;/CODE&gt; is only needed if you went the NodePort + external LB route in Step 2, in which case you pass your LB's VIP here.&lt;/P&gt;
&lt;H2&gt;Step 7: Configure cluster DNS&lt;/H2&gt;
&lt;P&gt;App hostnames like &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;*.&amp;lt;env&amp;gt;.&amp;lt;region&amp;gt;.k4apps.io&lt;/CODE&gt; need to resolve to the Envoy ingress &lt;EM&gt;from inside&lt;/EM&gt; the cluster. On AKS or OpenShift, &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;az containerapp arc setup-core-dns&lt;/CODE&gt; handles this. RKE2 isn't a supported distro on that command yet, so it's manual, but it's a small manual.&lt;/P&gt;
&lt;P&gt;The extension already writes the correct rewrite and forward rules into a &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;coredns-custom&lt;/CODE&gt; ConfigMap. What's missing is CoreDNS mounting that ConfigMap and importing it from the Corefile.&lt;/P&gt;
&lt;P&gt;We tried the direct route first: patch the Corefile ConfigMap, edit the Deployment to add the volume, restart. It works, right up until the next &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;rke2-server&lt;/CODE&gt; restart. RKE2's helm controller re-renders both objects from the chart and wipes your changes. The right way is a &lt;STRONG&gt;&lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;HelmChartConfig&lt;/CODE&gt;&lt;/STRONG&gt;. The &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;rke2-coredns&lt;/CODE&gt; chart exposes &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;extraConfig&lt;/CODE&gt; (config outside the default zone block) and &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;extraVolumes&lt;/CODE&gt;/&lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;extraVolumeMounts&lt;/CODE&gt;, which is exactly what we need:&lt;/P&gt;
&lt;PRE style="background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 6px; padding: 14px 16px; overflow: auto; font-family: Consolas,Menlo,'Courier New',monospace; font-size: 13px; line-height: 1.55; white-space: pre; color: #24292e;"&gt;# /var/lib/rancher/rke2/server/manifests/rke2-coredns-config.yaml
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
  name: rke2-coredns
  namespace: kube-system
spec:
  valuesContent: |-
    extraConfig:
      import:
        parameters: /etc/coredns/custom/*.server
    extraVolumes:
      - name: custom-config-volume
        configMap:
          name: coredns-custom
          optional: true
    extraVolumeMounts:
      - name: custom-config-volume
        mountPath: /etc/coredns/custom&lt;/PRE&gt;
&lt;P&gt;Drop the file in &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;/var/lib/rancher/rke2/server/manifests/&lt;/CODE&gt;, or &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;kubectl apply -f&lt;/CODE&gt; it (the helm controller watches both). Within a minute CoreDNS redeploys with the mount and the top-level &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;import&lt;/CODE&gt;. This time it survives restarts and RKE2 upgrades because the chart is now the source of truth.&lt;/P&gt;
&lt;P&gt;To verify, run &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;nslookup test.&amp;lt;env-domain&amp;gt;&lt;/CODE&gt; from a throwaway pod. You should get back the &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;microsoft-app-environment-k8se-envoy-internal&lt;/CODE&gt; ClusterIP.&lt;/P&gt;
&lt;BLOCKQUOTE style="border-left: 4px solid #0067b8; background: #f0f7ff; margin: 20px 0; padding: 10px 16px; border-radius: 0 6px 6px 0;"&gt;
&lt;P&gt;&lt;STRONG&gt;One last DNS thing: a &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;kube-dns&lt;/CODE&gt; alias.&lt;/STRONG&gt; The Logic Apps platform locates cluster DNS by looking for a Service named &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;kube-dns&lt;/CODE&gt; in &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;kube-system&lt;/CODE&gt;. That's the convention on AKS, K3s, kubeadm, and most other distros. RKE2 uses &lt;CODE style="background: #e6eefc; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;rke2-coredns-rke2-coredns&lt;/CODE&gt; and doesn't ship the alias, so the platform can't find DNS. Symptom: revision calls come back as 502s. Fix: create the alias.&lt;/P&gt;
&lt;PRE style="background: #eef2f6; border: 1px solid #cdd7e1; border-radius: 6px; padding: 12px 14px; overflow: auto; font-family: Consolas,Menlo,'Courier New',monospace; font-size: 13px; line-height: 1.55; white-space: pre; color: #24292e;"&gt;apiVersion: v1
kind: Service
metadata: { name: kube-dns, namespace: kube-system, labels: { k8s-app: kube-dns } }
spec:
  selector: { k8s-app: kube-dns }
  ports:
    - { name: dns, port: 53, protocol: UDP, targetPort: 53 }
    - { name: dns-tcp, port: 53, protocol: TCP, targetPort: 53 }&lt;/PRE&gt;
&lt;P&gt;It's a plain Service. Nothing about it gets templated or overwritten, so it just stays put across reconciles and upgrades.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;Step 8: Create and deploy a Logic App&lt;/H2&gt;
&lt;P&gt;Plumbing's out of the way. In the portal, create a new &lt;STRONG&gt;Logic App (Standard)&lt;/STRONG&gt; with the &lt;STRONG&gt;Hybrid&lt;/STRONG&gt; hosting option, point it at your connected environment, wire storage up to your SMB share, and create. Author the workflow the way you always would. The runs will execute on your RKE2 cluster instead of in Azure.&lt;/P&gt;
&lt;H2&gt;Troubleshooting: the RKE2 things we hit&lt;/H2&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Symptom&lt;/th&gt;&lt;th&gt;Cause &amp;amp; fix&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Test &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;LoadBalancer&lt;/CODE&gt; / envoy stays &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;&amp;lt;pending&amp;gt;&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;No LB provider on the cluster. Install MetalLB (Step 2). RKE2 ships no ServiceLB.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Runtime pods &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;CrashLoopBackOff&lt;/CODE&gt; with &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;inotify instances ... reached&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;Node &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;fs.inotify.max_user_instances&lt;/CODE&gt; too low. Raise it to 8192 and restart the pods (Step 4).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Revision invoke returns &lt;STRONG&gt;502&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Platform can't find a &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;kube-dns&lt;/CODE&gt; Service; RKE2's CoreDNS is under a different name. Add the alias (Step 7).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;App hostnames don't resolve inside the cluster&lt;/td&gt;&lt;td&gt;CoreDNS isn't loading &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;coredns-custom&lt;/CODE&gt;. Apply the &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;HelmChartConfig&lt;/CODE&gt; (Step 7).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Extension type "not registered in region"&lt;/td&gt;&lt;td&gt;The Arc cluster is in an unsupported region. Reconnect it in a supported one; it's independent of where the node runs (Step 5).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cluster shows Arc &lt;STRONG&gt;Offline&lt;/STRONG&gt; after a reboot; &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;azure-arc&lt;/CODE&gt; pods &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;Unknown&lt;/CODE&gt;&lt;/td&gt;&lt;td&gt;Stale pods from an ungraceful stop. &lt;CODE style="background: #eff1f3; padding: 1px 5px; border-radius: 4px; font-family: Consolas,Menlo,'Courier New',monospace; font-size: .92em; color: #24292e;"&gt;kubectl delete pods --all -n azure-arc --force&lt;/CODE&gt; and they'll recreate and reconnect.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H2&gt;References&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/azure/logic-apps/set-up-standard-workflows-hybrid-deployment-requirements" target="_blank"&gt;Set up Logic Apps Hybrid deployment&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/hybrid-logic-apps-deployment-on-red-hat-openshift/4534828" target="_blank"&gt;Hybrid Logic Apps on Red Hat OpenShift&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.rke2.io/" target="_blank"&gt;RKE2 documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://metallb.io/" target="_blank"&gt;MetalLB&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/azure/azure-arc/kubernetes/quickstart-connect-cluster" target="_blank"&gt;Connect a Kubernetes cluster to Azure Arc&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 23 Jul 2026 05:53:29 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/hybrid-logic-apps-on-rke2-a-self-managed-cluster-with-metallb/ba-p/4539846</guid>
      <dc:creator>anandgmenon</dc:creator>
      <dc:date>2026-07-23T05:53:29Z</dc:date>
    </item>
    <item>
      <title>Announcing Flat File Schema Generation support in Azure Logic Apps Standard</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/announcing-flat-file-schema-generation-support-in-azure-logic/ba-p/4534695</link>
      <description>&lt;P&gt;We’re excited to announce the preview of&amp;nbsp;&lt;STRONG&gt;Flat File Schema Generation&lt;/STRONG&gt; for Azure Logic Apps Standard. This new built-in action helps integration teams move faster by generating BizTalk compatible flat-file XSD schemas directly from sample flat-file payloads, reducing the manual effort required to model CSV, delimited, and positional files before encoding or decoding them in workflows.&lt;/P&gt;
&lt;H2&gt;Why this matters&lt;/H2&gt;
&lt;P&gt;Flat files continue to power enterprise mission critical integrations, from partner feeds and batch exports to finance ledgers, operational reports, and legacy system exchanges. While Azure Logic Apps already helps teams encode and decode flat files, creating the required flat-file schema has often been a separate design-time step. With Flat File Schema Generation, you can now accelerate that onboarding experience by generating a starter schema from real sample data within the workflow itself.&lt;/P&gt;
&lt;H2&gt;What’s new&lt;/H2&gt;
&lt;P&gt;The new &lt;STRONG&gt;Flat File Schema Generation&lt;/STRONG&gt; action generates a flat-file XSD schema from sample content that you pass into the action. The generated schema includes BizTalk-compatible flat-file annotations, making it suitable for downstream Flat File Encoding and Flat File Decoding actions in Azure Logic Apps Standard workflows.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Runtime schema generation:&lt;/STRONG&gt; Generate schemas directly from sample flat-file payloads in the workflow.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Delimited and positional support:&lt;/STRONG&gt; Create schemas for common CSV, semicolon-delimited, tab-delimited, and fixed-width files.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;BizTalk-compatible annotations:&lt;/STRONG&gt; Use generated schemas with the existing flat-file processing model familiar to BizTalk and enterprise integration teams.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Flexible naming:&lt;/STRONG&gt; Configure root element names, namespaces, record names, delimiters, and field positions to match your integration needs.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;How it works&lt;/H2&gt;
&lt;P&gt;You provide a representative sample payload, specify whether the file structure is delimited or positional, and configure the relevant parsing details such as field delimiters, record delimiters, header handling, or fixed-width field positions. Once you run the workflow, the action returns the generated XSD schema as XML output, which can then be passed into subsequent flat-file operations or stored as part of your onboarding flow.&lt;/P&gt;
&lt;H2&gt;Get started&lt;/H2&gt;
&lt;P&gt;To try the preview, add the &lt;STRONG&gt;Flat File Schema Generation&lt;/STRONG&gt; action to a Logic Apps Standard workflow, provide a sample flat-file payload, choose the record structure, and configure the field or record settings that match your format. Use the generated schema output with Flat File Decoding or Encoding in the same workflow or incorporate it into your broader onboarding process for flat-file integrations.&lt;/P&gt;
&lt;P&gt;Reference document:&amp;nbsp; &lt;A href="https://learn.microsoft.com/en-us/azure/logic-apps/logic-apps-enterprise-integration-flatfile#add-a-flat-file-schema-generation-action" target="_blank" rel="noopener"&gt;Encode, Decode, or Generate Schemas for Flat Files - Azure Logic Apps | Microsoft Learn.&lt;/A&gt;&lt;/P&gt;
&lt;H2&gt;A walkthrough of generating a flat-file schema from sample data&lt;/H2&gt;
&lt;P&gt;Use the following walkthrough to try the preview end to end with a simple customer order file. The same pattern can be adapted for semicolon-delimited, tab-delimited, or fixed-width positional files.&lt;/P&gt;
&lt;H3&gt;Delimited sample:&lt;/H3&gt;
&lt;P&gt;For this example, assume a trading partner sends a comma-separated order file with a header row and repeating order records.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Sample file:&lt;/STRONG&gt;&lt;BR /&gt;OrderId,CustomerName,OrderDate,Amount,Region&lt;BR /&gt;10001,Contoso Retail,2026-07-01,1250.75,North&lt;BR /&gt;10002,Fabrikam Foods,2026-07-02,890.00,West&lt;BR /&gt;10003,Northwind Traders,2026-07-03,2400.50,South&lt;/P&gt;
&lt;H3&gt;Configuration values&lt;/H3&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Parameter&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Example value&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Record Structure&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Delimited&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Has header&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Record delimiter&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;newline&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Field delimiter&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;,&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Field delimiter order&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Infix&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Escape character&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Double quote, if the source file uses quoted values&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Root element name (Advanced Parameters)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Orders&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Record name (Advanced Parameters)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Order&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Target namespace (Advanced Parameters)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;http://schemas.contoso.com/orders&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;In the Azure portal, open your Logic Apps Standard resource and select the workflow where you want to generate the schema.&lt;/LI&gt;
&lt;LI&gt;Add a trigger, such as &lt;STRONG&gt;When an HTTP request is received&lt;/STRONG&gt;, or use any trigger/action that provides the sample flat-file content.&lt;/LI&gt;
&lt;LI&gt;Add a new action and search for &lt;STRONG&gt;Flat File&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Select the &lt;STRONG&gt;Flat File Schema Generation&lt;/STRONG&gt; action.&lt;/LI&gt;
&lt;LI&gt;In the action, provide the sample flat-file content.&lt;/LI&gt;
&lt;LI&gt;Select the file structure type. For this example, choose &lt;STRONG&gt;Delimited&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Enter the schema metadata under advanced parameters, such as the root element name, record name, and target namespace.&lt;/LI&gt;
&lt;LI&gt;Configure the delimiter settings, including the field delimiter and record delimiter.&lt;/LI&gt;
&lt;LI&gt;If the first row contains column names, enable the option to use the first row as headers.&lt;/LI&gt;
&lt;LI&gt;Save and run the workflow.&lt;/LI&gt;
&lt;LI&gt;Open the workflow run history and review the action output. The action returns a generated XSD schema with flat-file annotations.&lt;/LI&gt;
&lt;LI&gt;Review the generated schema, validate field names and inferred data types, and use the schema with Flat File Decoding or Flat File Encoding in your workflow.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Positional sample: Fixed-width customer order file&lt;/H3&gt;
&lt;P&gt;Use this example when the source flat file doesn’t use delimiters. In a positional, or fixed-width, file each field starts and ends at a known character position. The schema generation action needs those field positions so it can split each record correctly.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Sample positional file:&lt;/STRONG&gt;&lt;BR /&gt;10001CONTOSO00120260701000125075NORTH&lt;BR /&gt;10002FABRIKAM0120260702000089000WEST·&lt;BR /&gt;10003NORTHWIND120260703000240050SOUTH&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt; The dot symbol in the second record represents a trailing space used for fixed-width padding. Replace it with an actual space in your real sample payload.&lt;/P&gt;
&lt;H4&gt;Field position map&lt;/H4&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Field&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Start position&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Length&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Justification&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Example value&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;OrderId&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;5&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Right&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;10001&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;CustomerCode&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;6&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;10&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Left&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;CONTOSO001&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;OrderDate&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;16&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;8&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Right&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;20260701&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Amount&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;24&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;9&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Right&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;000125075&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Region&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;33&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;5&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Left&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;NORTH&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 20.00%" /&gt;&lt;col style="width: 20.00%" /&gt;&lt;col style="width: 20.00%" /&gt;&lt;col style="width: 20.00%" /&gt;&lt;col style="width: 20.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Configuration values for the positional sample&lt;/H4&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Parameter&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Example value&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Record Structure&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Positional&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Has Header&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;No&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Record delimiter&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;newline&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Field positions&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Use the field names, lengths, and justification values from the field position map.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Root element name (Advanced Parameters)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Orders&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Record name (Advanced Parameters)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Order&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Target namespace (Advanced Parameters)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;http://schemas.contoso.com/orders/positional&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Step-by-step walkthrough for positional files&lt;/H4&gt;
&lt;OL&gt;
&lt;LI&gt;In the Azure portal, open your Logic Apps Standard resource and select the workflow where you want to generate the schema.&lt;/LI&gt;
&lt;LI&gt;Add a trigger, such as &lt;STRONG&gt;When an HTTP request is received&lt;/STRONG&gt;, or use an existing action that provides the fixed-width file content.&lt;/LI&gt;
&lt;LI&gt;Add a new action and search for &lt;STRONG&gt;Flat File&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Select the &lt;STRONG&gt;Flat File Schema Generation&lt;/STRONG&gt; action.&lt;/LI&gt;
&lt;LI&gt;Paste the positional sample payload into the sample content input. Make sure every record has the same total length.&lt;/LI&gt;
&lt;LI&gt;For the structure type, choose &lt;STRONG&gt;Positional&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Enter the schema metadata, including root element name, record name, and target namespace.&lt;/LI&gt;
&lt;LI&gt;Configure the record delimiter. For this example, use &lt;STRONG&gt;newline&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Add the field positions in order: &lt;STRONG&gt;OrderId&lt;/STRONG&gt; length 5, &lt;STRONG&gt;CustomerCode&lt;/STRONG&gt; length 10, &lt;STRONG&gt;OrderDate&lt;/STRONG&gt; length 8, &lt;STRONG&gt;Amount&lt;/STRONG&gt; length 9, and &lt;STRONG&gt;Region&lt;/STRONG&gt; length 5.&lt;/LI&gt;
&lt;LI&gt;Set justification for each field. Use &lt;STRONG&gt;Right&lt;/STRONG&gt; for numeric or date-like fields and &lt;STRONG&gt;Left&lt;/STRONG&gt; for text fields that may contain trailing space padding.&lt;/LI&gt;
&lt;LI&gt;Save and run the workflow.&lt;/LI&gt;
&lt;LI&gt;Open the workflow run history and review the generated XSD schema output. Confirm that the field names, order, lengths, and positional annotations match the source record layout.&lt;/LI&gt;
&lt;LI&gt;Use the generated schema with Flat File Decoding to parse incoming fixed-width files into XML, or with Flat File Encoding to generate outbound fixed-width files.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;Limitations and known issues&lt;/H3&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Limitation&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Type inference uses a single record.&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The first non-empty data record determines column types.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Single record type only&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The action generates one repeating record structure and doesn't support heterogeneous record layouts.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;No nested or hierarchical records&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The generated schema is flat, meaning you have a root element with one repeating child record and fields.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Positional boundaries aren't automatically detected.&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;You must provide exact field lengths in&amp;nbsp;field Positions.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;UTF-8 code page only&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Generated schema sets&amp;nbsp;codepage="65001"&amp;nbsp;and doesn't expose encoding selection.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Escape-character behavior is literal.&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Escape handling matches literal value and skips only the next single character.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;recordName&amp;nbsp;default&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;If unspecified, defaults to&amp;nbsp;{RootElementName}_Record.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Designer justification input&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;fieldPositions[].justification&amp;nbsp;supports only&amp;nbsp;Left&amp;nbsp;and&amp;nbsp;Right.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Looking ahead&lt;/H2&gt;
&lt;P&gt;This preview is another step toward making Azure Logic Apps Standard, a more complete and productive platform for enterprise integration modernization. Whether you are onboarding new partner feeds, modernizing BizTalk-style flat-file processing, or automating recurring operational files, Flat File Schema Generation helps reduce setup friction and get integration workflows moving faster.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jul 2026 07:02:22 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/announcing-flat-file-schema-generation-support-in-azure-logic/ba-p/4534695</guid>
      <dc:creator>Shree_Divya_M_V</dc:creator>
      <dc:date>2026-07-09T07:02:22Z</dc:date>
    </item>
    <item>
      <title>Hybrid Logic Apps Deployment on Red Hat OpenShift</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/hybrid-logic-apps-deployment-on-red-hat-openshift/ba-p/4534828</link>
      <description>&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;What makes OpenShift different?&lt;/H2&gt;
&lt;P&gt;If you've done this on K3s or AKS, most of the flow is identical as mentioned in &lt;A href="https://learn.microsoft.com/en-us/azure/logic-apps/set-up-standard-workflows-hybrid-deployment-requirements#connect-kubernetes-cluster-to-azure-arc" target="_blank" rel="noopener"&gt;Set up your own infrastructure for Standard logic app workflows - Azure Logic Apps | Microsoft Learn&lt;/A&gt;. Two OpenShift specifics are worth flagging up front. First, &lt;STRONG&gt;SCCs:&lt;/STRONG&gt; the default restricted-v2 policy blocks the elevated permissions the runtime and CSI driver need, so you grant the right SCCs before installing (Step 2). Second,&lt;STRONG&gt; DNS&lt;/STRONG&gt;: OpenShift runs DNS through the &lt;EM&gt;openshift-dns&lt;/EM&gt; operator rather than the &lt;EM&gt;kube-system/coredns&lt;/EM&gt; you'd find on AKS, so the DNS setup targets that instead (Step 7).&lt;/P&gt;
&lt;H2&gt;Prerequisites&lt;/H2&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table class="lia-border-style-solid" border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Requirement&lt;/th&gt;&lt;th&gt;Notes&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Azure subscription&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;With rights to create Arc resources, custom locations, and connected environments.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Azure CLI&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Latest, with the&amp;nbsp;connectedk8s,&amp;nbsp;k8s-extension,&amp;nbsp;customlocation, and&amp;nbsp;containerapp&amp;nbsp;extensions.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;OpenShift cluster&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Self-managed OpenShift (bare metal, datacenter, or Single-Node OpenShift), or ARO.&amp;nbsp;oc&amp;nbsp;logged in as a&amp;nbsp;&lt;STRONG&gt;cluster-admin&lt;/STRONG&gt;. Newer OCP is better (some storage options are GA only on 4.18+).&amp;nbsp;
&lt;P&gt;&amp;nbsp;Don't have one yet? See the install links under References section below&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;A SMB file share&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;a SMB file share discoverable from the cluster to store workflow artifacts&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Ingress / load balancer&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;On self-managed OpenShift you provide the ingress IP yourself: an in-cluster LB (MetalLB or similar) or an external L4 LB in front of a NodePort. See&amp;nbsp;&lt;EM&gt;Choose your ingress path&lt;/EM&gt; below. (ARO provides it automatically.)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-source-line="93"&gt;Install/confirm the CLI extensions:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;az extension add --name connectedk8s az extension add --name k8s-extension az extension add --name customlocation az extension add --name containerapp&lt;/LI-CODE&gt;
&lt;H3 data-source-line="104"&gt;Choose your ingress path (self-managed)&lt;/H3&gt;
&lt;P&gt;Every app is reached through one shared Envoy ingress, and that ingress needs an IP clients can hit. A self-managed cluster has no cloud load balancer to hand one out, so this is the piece you provide. Two options work well; pick whichever fits your environment:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table class="lia-border-style-solid" border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Option&lt;/th&gt;&lt;th&gt;How it works&lt;/th&gt;&lt;th&gt;You set up&lt;/th&gt;&lt;th&gt;Best when&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;In-cluster load balancer&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;A bare-metal LoadBalancer controller gives the envoy&amp;nbsp;LoadBalancer&amp;nbsp;service an IP from a pool on your node subnet. MetalLB is the common pick; kube-vip, Cilium, and OpenELB work the same way&lt;/td&gt;&lt;td&gt;Install the controller + an address pool;&amp;nbsp;&lt;EM&gt;envoy.serviceType=LoadBalancer&lt;/EM&gt;&lt;/td&gt;&lt;td&gt;You have a spare IP range on the node network and want a self-contained cluster&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;External LB + NodePort&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Any external L4 load balancer forwards to a NodePort on every node. That can be an appliance (F5, NetScaler, HAProxy, a hardware VIP…) or an Azure Standard Load Balancer when your nodes are Azure VMs in the same region&lt;/td&gt;&lt;td&gt;&lt;EM&gt;envoy.serviceType=NodePort&lt;/EM&gt;; wire your LB → NodePort&lt;/td&gt;&lt;td&gt;You already run a datacenter load balancer, or your cluster runs on Azure VMs&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 25.00%" /&gt;&lt;col style="width: 25.00%" /&gt;&lt;col style="width: 25.00%" /&gt;&lt;col style="width: 25.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;Your choice affects exactly two later steps: the envoy.serviceType value in Step 4, and which IP you pass to --static-ip in Step 6. Nothing else changes.&lt;/P&gt;
&lt;P&gt;On ARO you can skip this section. Leave envoy.serviceType=LoadBalancer and the cloud controller assigns the EXTERNAL-IP for you; the rest of the guide is unchanged.&lt;/P&gt;
&lt;H2 data-source-line="130"&gt;Step 1: Connect your OpenShift cluster to Azure Arc&lt;/H2&gt;
&lt;P data-source-line="132"&gt;Log in to OpenShift and confirm you're cluster-admin:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;oc login &amp;lt;api-url&amp;gt; -u kubeadmin oc whoami # should be able to run cluster-admin actions&lt;/LI-CODE&gt;
&lt;P data-source-line="139"&gt;Connect the cluster to Arc:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;az connectedk8s connect --name &amp;lt;cluster&amp;gt; --resource-group &amp;lt;rg&amp;gt;&lt;/LI-CODE&gt;
&lt;H2 data-source-line="191"&gt;Step 2: Install the SMB CSI driver&lt;/H2&gt;
&lt;LI-CODE lang=""&gt;helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts helm repo update helm install csi-driver-smb csi-driver-smb/csi-driver-smb \ --namespace kube-system --version v1.16.0 \ --set image.smb.repository=mcr.microsoft.com/oss/kubernetes-csi/csi-driver-smb&lt;/LI-CODE&gt;
&lt;H2 data-source-line="173"&gt;Step 3: Grant the required SCCs (OpenShift-specific)&lt;/H2&gt;
&lt;P data-source-line="175"&gt;The extension installs with Helm --atomic, so if any pod is denied byrestricted-v2&amp;nbsp;the&amp;nbsp;&lt;STRONG&gt;entire install rolls back&lt;/STRONG&gt;. Grant the SCCs to the install&lt;BR /&gt;namespace's service accounts&amp;nbsp;&lt;STRONG&gt;before&lt;/STRONG&gt;&amp;nbsp;installing:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;oc create namespace logicapps-aca-ns 
oc adm policy add-scc-to-group anyuid system:serviceaccounts:logicapps-aca-ns 
oc adm policy add-scc-to-group privileged system:serviceaccounts:logicapps-aca-ns 
oc adm policy add-scc-to-group hostnetwork system:serviceaccounts:logicapps-aca-ns&lt;/LI-CODE&gt;
&lt;H2 data-source-line="226"&gt;Step 4: Install the Container Apps extension&lt;/H2&gt;
&lt;P data-source-line="228"&gt;Now install the extension that turns the cluster into a Logic Apps host. The&amp;nbsp;command is the same for every cluster; the only line that depends on your ingress choice is the last one, &lt;EM&gt;envoy.serviceType&lt;/EM&gt;:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;az k8s-extension create \ 
--resource-group &amp;lt;rg&amp;gt; --cluster-name &amp;lt;cluster&amp;gt; \
--cluster-type connectedClusters --name logicapps-aca-extension \ 
--extension-type Microsoft.App.Environment \ 
--release-train stable --auto-upgrade-minor-version true --scope cluster \ 
--release-namespace logicapps-aca-ns \ 
--configuration-settings "Microsoft.CustomLocation.ServiceAccount=default" \ 
--configuration-settings "appsNamespace=logicapps-aca-ns" \ 
--configuration-settings "clusterName=&amp;lt;env-name&amp;gt;" \ 
--configuration-settings "keda.enabled=true" \ 
--configuration-settings "keda.logicAppsScaler.enabled=true" \ 
--configuration-settings "keda.logicAppsScaler.replicaCount=1" \
--configuration-settings "containerAppController.api.functionsServerEnabled=true" \ 
--configuration-settings "functionsProxyApiConfig.enabled=true" \ 
--configuration-settings "Azure.Cluster.Distribution=openshift" \ 
--configuration-settings "coreDNSVersion=1.8.6" \ 
--configuration-settings "envoy.serviceType=LoadBalancer"&lt;/LI-CODE&gt;
&lt;P data-source-line="252"&gt;The two OpenShift-specific settings:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table class="lia-border-style-solid" border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Setting&lt;/th&gt;&lt;th&gt;Why&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Azure.Cluster.Distribution=openshift&lt;/td&gt;&lt;td&gt;Renders the chart's OpenShift branch with the privileged security contexts OpenShift requires.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;coreDNSVersion=1.8.6&lt;/td&gt;&lt;td&gt;Makes the DNS config the setup generates compatible with OpenShift's resolver so app hostnames resolve. Keep this value.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P data-source-line="259"&gt;&lt;STRONG&gt;Ingress setting, per your path:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-source-line="261"&gt;
&lt;LI data-source-line="261"&gt;&lt;STRONG&gt;In-cluster LB (e.g. MetalLB)&lt;/STRONG&gt; → &lt;EM&gt;envoy.serviceType=LoadBalancer&lt;/EM&gt; (as above); the LB controller assigns the EXTERNAL-IP from your pool.&lt;/LI&gt;
&lt;LI data-source-line="263"&gt;&lt;STRONG&gt;External LB (on-prem)&lt;/STRONG&gt; → &lt;EM&gt;envoy.serviceType=NodePort &lt;/EM&gt;plus&lt;EM&gt; envoy.nodeHttpsPort=30443&lt;/EM&gt; and&lt;EM&gt; envoy.nodeHttpPort=30080&lt;/EM&gt;, then point your&lt;BR /&gt;external L4 LB at those NodePorts.&lt;/LI&gt;
&lt;LI data-source-line="266"&gt;&lt;STRONG&gt;ARO&lt;/STRONG&gt; → leave &lt;EM&gt;envoy.serviceType=LoadBalancer&lt;/EM&gt;; Azure assigns the EXTERNAL-IP automatically.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Wait for the extension and read the ingress IP:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;az k8s-extension show -g &amp;lt;rg&amp;gt; --cluster-name &amp;lt;cluster&amp;gt; \ --cluster-type connectedClusters --name logicapps-aca-extension \ --query provisioningState -o tsv # -&amp;gt; Succeeded oc get svc microsoft-app-environment-k8se-envoy -n logicapps-aca-ns # LoadBalancer: EXTERNAL-IP | NodePort: 80:30080, 443:30443 (EXTERNAL-IP stays &amp;lt;none&amp;gt;)&lt;/LI-CODE&gt;&lt;img&gt;sample of envoy service using external LB&lt;/img&gt;
&lt;H2 data-source-line="283"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 data-source-line="283"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 data-source-line="283"&gt;Step 5: Create a custom location&lt;/H2&gt;
&lt;LI-CODE lang=""&gt;EXT_ID=$(az k8s-extension show -g &amp;lt;rg&amp;gt; --cluster-name &amp;lt;cluster&amp;gt; \
  --cluster-type connectedClusters --name logicapps-aca-extension --query id -o tsv)
CC_ID=$(az connectedk8s show -g &amp;lt;rg&amp;gt; -n &amp;lt;cluster&amp;gt; --query id -o tsv)

az customlocation create \
  --resource-group &amp;lt;rg&amp;gt; --name &amp;lt;custom-location&amp;gt; \
  --location &amp;lt;arc-region&amp;gt; --host-resource-id $CC_ID \
  --namespace logicapps-aca-ns --cluster-extension-ids $EXT_ID&lt;/LI-CODE&gt;
&lt;H2 data-source-line="303"&gt;Step 6: Create the connected environment&lt;/H2&gt;
&lt;P data-source-line="305"&gt;The connected environment is the Logic Apps environment your apps live in. Whether you set --static-ip depends on your ingress:&lt;/P&gt;
&lt;UL data-source-line="308"&gt;
&lt;LI data-source-line="308"&gt;&lt;STRONG&gt;External LB + NodePort:&lt;/STRONG&gt; pass --static-ip &amp;lt;your LB VIP&amp;gt;. The envoy service is a NodePort with no EXTERNAL-IP, so the platform can't discover the ingress IP&amp;nbsp;on its own; you give it the LB VIP explicitly.&lt;/LI&gt;
&lt;LI data-source-line="311"&gt;&lt;STRONG&gt;In-cluster LB (MetalLB) or ARO:&lt;/STRONG&gt; you can omit --static-ip. The platform uses the EXTERNAL-IP already assigned to the envoy LoadBalancer service.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI-CODE lang=""&gt;CL_ID=$(az customlocation show -g &amp;lt;rg&amp;gt; -n &amp;lt;custom-location&amp;gt; --query id -o tsv)

az containerapp connected-env create \
  --resource-group &amp;lt;rg&amp;gt; --name &amp;lt;env-name&amp;gt; \
  --location &amp;lt;arc-region&amp;gt; --custom-location $CL_ID \
  --static-ip &amp;lt;your-lb-vip&amp;gt;          # external LB + NodePort; omit for in-cluster LB / ARO&lt;/LI-CODE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;When you do set --static-ip, it's create-only. You can't patch it later; to change it you delete and recreate the environment.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H2 data-source-line="329"&gt;Step 7: Configure cluster DNS&lt;/H2&gt;
&lt;P&gt;So that app hostnames resolve to the Envoy ingress&amp;nbsp;&lt;STRONG&gt;inside&lt;/STRONG&gt; the cluster, run the DNS setup with the OpenShift flag:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;az containerapp arc setup-core-dns --distro=openshift --verbose&lt;/LI-CODE&gt;
&lt;P&gt;This creates a small coredns-custom service and adds a zone-scoped forward in&amp;nbsp;OpenShift's DNS Operator that covers only the environment's domain. Every other name (internet, *.svc.cluster.local, your own domains) is left alone.&lt;/P&gt;
&lt;H2 data-source-line="350"&gt;Step 8: Create and deploy a Logic App&lt;/H2&gt;
&lt;P data-source-line="352"&gt;You can now target the connected environment from the portal or CLI, exactly like any Logic App Standard. In the portal, choose &lt;STRONG&gt;Logic App (Standard)&lt;/STRONG&gt; → &lt;STRONG&gt;Hybrid&lt;/STRONG&gt;, pick your&amp;nbsp;&lt;STRONG&gt;connected environment&lt;/STRONG&gt;, point storage at your SMB share, and create.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;Once the logic app is ready, you are now ready to author and test workflows hosted in your openshift cluster.&lt;/P&gt;
&lt;H2 data-source-line="376"&gt;Troubleshooting common issues&lt;/H2&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table class="lia-border-style-solid" border="1" style="width: 100%; border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Symptom&lt;/th&gt;&lt;th&gt;Cause &amp;amp; fix&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Extension install fails and rolls back with SCC/PodSecurity denials&lt;/td&gt;&lt;td&gt;SCCs not granted before install. Grant&amp;nbsp;anyuid&amp;nbsp;+&amp;nbsp;privileged&amp;nbsp;+&amp;nbsp;hostnetwork&amp;nbsp;to the install namespace (Step 2), then retry.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UnauthorizedNamespaceError&amp;nbsp;/ 401 during onboarding&lt;/td&gt;&lt;td&gt;Custom-locations RBAC incomplete. Re-run&amp;nbsp;&lt;EM&gt;enable-features … --custom-locations-oid &amp;lt;oid&amp;gt;&lt;/EM&gt;; ensure the caller has&lt;EM&gt;&amp;nbsp;Contributor/Azure Arc Kubernetes Cluster Admin&lt;/EM&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;App pods stuck&amp;nbsp;ContainerCreating, PVC&amp;nbsp;Pending&lt;/td&gt;&lt;td&gt;SMB driver missing/misregistered. Confirm a&amp;nbsp;smb.csi.k8s.io&amp;nbsp;CSIDriver exists and its pods are Running. Install&amp;nbsp;&lt;STRONG&gt;one&lt;/STRONG&gt;&amp;nbsp;driver only.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Envoy has no EXTERNAL-IP on bare metal&lt;/td&gt;&lt;td&gt;No LoadBalancer provider. Install an in-cluster LB (MetalLB or similar) or front NodePort with an external LB (ARO does this automatically).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 data-source-line="405"&gt;References&lt;/H2&gt;
&lt;P data-source-line="407"&gt;&lt;STRONG&gt;Setting up an OpenShift cluster&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-source-line="409"&gt;
&lt;LI data-source-line="409"&gt;&lt;A href="https://docs.redhat.com/en/documentation/openshift_container_platform/4.18/html/installing_on_bare_metal/index" target="_blank" rel="noopener"&gt;Install OpenShift on bare metal&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-source-line="410"&gt;&lt;A href="https://docs.redhat.com/en/documentation/openshift_container_platform/4.18/html/installing_on_a_single_node/index" target="_blank" rel="noopener"&gt;Install Single-Node OpenShift (SNO)&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-source-line="411"&gt;&lt;A href="https://learn.microsoft.com/azure/openshift/create-cluster" target="_blank" rel="noopener"&gt;Create an Azure Red Hat OpenShift (ARO) cluster&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-source-line="412"&gt;&lt;A href="https://developers.redhat.com/products/openshift-local/overview" target="_blank" rel="noopener"&gt;OpenShift Local (run a cluster on your laptop)&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-source-line="414"&gt;&lt;STRONG&gt;Logic Apps Hybrid&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-source-line="416"&gt;
&lt;LI data-source-line="416"&gt;&lt;A href="https://learn.microsoft.com/azure/logic-apps/set-up-standard-workflows-hybrid-deployment-requirements" target="_blank" rel="noopener"&gt;Set up Logic Apps Hybrid deployment&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Tue, 21 Jul 2026 05:13:20 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/hybrid-logic-apps-deployment-on-red-hat-openshift/ba-p/4534828</guid>
      <dc:creator>anandgmenon</dc:creator>
      <dc:date>2026-07-21T05:13:20Z</dc:date>
    </item>
    <item>
      <title>Coding with Logic Apps Standard: Local Functions</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/coding-with-logic-apps-standard-local-functions/ba-p/4534240</link>
      <description>&lt;H1&gt;Welcome to the Series&lt;/H1&gt;
&lt;P&gt;Welcome to the first article in the &lt;STRONG&gt;Coding with Logic Apps Standard&lt;/STRONG&gt; series. This series is for integration developers, architects, and modernization teams who want to go beyond visual workflow design and use Azure Logic Apps Standard as a complete development platform for enterprise integration. In this post, we focus on &lt;STRONG&gt;Local Functions&lt;/STRONG&gt;: the ability to write, debug, and deploy custom .NET code together with your workflows, inside the same Logic Apps Standard project.&lt;/P&gt;
&lt;P&gt;Customers often assume that meaningful custom code in an integration solution must be implemented as a separate Azure Function. Azure Functions are a powerful option for reusable APIs, independent compute workloads, and enterprise-wide services. But when custom code exists to support an integration workflow—validating a message, enriching a payload, shaping data for a connector, or applying business-specific logic—Local Functions provide a simpler, more cohesive, and more integration-native option inside Logic Apps Standard.&lt;/P&gt;
&lt;H1&gt;Does Logic Apps Standard run on top of Azure Functions?&lt;/H1&gt;
&lt;P&gt;Before we go deeper, it is important to clarify the relationship between Logic Apps Standard and Azure Functions. Logic Apps Standard is not a workflow layer that simply runs on top of Azure Functions. Instead, Logic Apps Standard uses a Functions host that is specialized for integration workloads. That distinction matters because an integration platform has different requirements than a code-only compute service.&lt;/P&gt;
&lt;P&gt;A typical Azure Functions app is created around a specific language stack, such as .NET, Java, Node.js, Python, or PowerShell. That model works well when the application is primarily a code-first service. Logic Apps Standard has a different goal. A single integration application might orchestrate workflows, use built-in connectors, run JavaScript for workflow logic, call local .NET code through Local Functions, use JDBC-based connectivity, and execute scripts as part of the same integration solution.&lt;/P&gt;
&lt;P&gt;Logic Apps Standard supports this model through dynamically isolated language workers. The runtime can inspect the workflow and start the worker that is needed for that integration scenario. For example, a workflow that uses JDBC can start the Java worker, while a workflow that uses custom C# code can start the isolated .NET worker. The goal is not to make customers think about processes. The goal is to let the integration application use the right technology for each part of the flow, with little latency difference for typical workflow use.&lt;/P&gt;
&lt;P&gt;For iPaaS scenarios, this is important. To achieve the same multi-language result with standalone Azure Functions, customers may need multiple Function Apps, each aligned to a different language stack. That adds more resources, deployment units, configuration surfaces, and operational overhead. In Logic Apps Standard, the same integration scenario can often run inside a single Logic App application: built-in connectors plus the isolated language worker needed for the workflow, rather than several separate Function Apps. Azure Functions remains a strong option for independent compute services, while Logic Apps Standard provides the integration application model for workflows, connectors, and workflow-scoped code.&lt;/P&gt;
&lt;H1&gt;Why Local Functions?&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Logic Apps Standard goes beyond being a workflow engine. It is also a runtime where built-in connectors, workflow orchestration, and custom code can work together as one solution. Local Functions make this especially valuable because they let you place custom .NET logic directly beside the workflow that needs it. The Logic Apps runtime and function execution run alongside each other in the same application process model, so when the code is part of the workflow, it can scale with the Logic App, deploy with the Logic App, and be operated as part of the same application boundary—without requiring a separate endpoint, separate authentication model, or separate runtime resource to manage.&lt;/P&gt;
&lt;P&gt;This matters because the strongest integration solutions are not built from code alone. They combine the reach of connectors with the precision of custom logic. A workflow might receive a message from IBM MQ, read reference data from SQL, decode EDIFACT messages, call SAP, or an API, transform a payload, and then invoke local custom code to apply partner-specific validation or business rules before sending the result to the next system. The outcome is unique: built-in connectors handle the connectivity and integration plumbing, while Local Functions handle the specialized code that makes the solution fit the business. With Local Functions you:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Keep workflow and code together&lt;/STRONG&gt; when the code is part of the integration process.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Debug locally in one experience&lt;/STRONG&gt; across workflow steps and custom .NET logic.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Deploy as one solution&lt;/STRONG&gt; without introducing a separate Function App for workflow-scoped code.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Operate as one application&lt;/STRONG&gt; with code that scales, deploys, and is managed together with the Logic App.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Avoid unnecessary integration boundaries&lt;/STRONG&gt; when there is no need to manage a separate endpoint, authentication flow, or runtime resource for workflow-specific code.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Improve simplicity and security&lt;/STRONG&gt; by avoiding the need to onboard and harden multiple application resources in the network, reducing the exposed surface area for workflow-scoped code.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Simplify cost management for workflow-scoped code&lt;/STRONG&gt; because Local Functions run within the Logic Apps Standard application boundary and do not require a separate Azure Functions resource when the code belongs to the workflow.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Modernize BizTalk-style custom logic&lt;/STRONG&gt; into a cloud-native workflow model while preserving valuable .NET investments.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;However, this is not about choosing Local Functions instead of Azure Functions in every scenario. Azure Functions are excellent when you need an independently hosted, reusable, code-first service. The opportunity is to use Local Functions first when the code naturally belongs with a Logic Apps integration solution. In those cases, the workflow, connectors, and custom code run side by side in the same application boundary, scaling together, deploying together, being managed together, and avoiding the need to introduce a separate Azure Functions resource for code that is only used by that workflow.&lt;/P&gt;
&lt;H1&gt;What are common scenarios for Local Functions?&lt;/H1&gt;
&lt;P&gt;Local Functions are best for workflow-scoped code: logic that is meaningful only in the context of a Logic Apps Standard workflow and benefits from being deployed, scaled, secured, and operated with that workflow. Common scenarios include:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Message validation and enrichment&lt;/STRONG&gt; before or after connector calls to systems such as SQL, Service Bus, SAP, IBM MQ, DB2, HTTP APIs, or partner endpoints.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Custom parsing or formatting&lt;/STRONG&gt; for proprietary, irregular, or partner-specific payloads that do not fit simple workflow expressions or mappings.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Business rules and calculations&lt;/STRONG&gt; that are too specific for generic workflow expressions but do not need to become independent services.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;BizTalk modernization&lt;/STRONG&gt; where existing .NET helper assemblies, orchestration utilities, pipeline-adjacent logic, enrichment routines, or host-specific formatting can move closer to Logic Apps workflows.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Modernization from Java-oriented integration platforms&lt;/STRONG&gt; such as MuleSoft, Boomi, or TIBCO BusinessWorks when customers decide to refactor workflow-scoped Java, Groovy, JavaScript, or XPath helper logic into .NET as part of their move to Logic Apps Standard.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;When to use Local Functions versus Azure Functions&lt;/H1&gt;
&lt;P&gt;Azure Functions and Local Functions are complementary. Azure Functions are a great fit for independent services, shared APIs, and event-driven compute that should live outside a single workflow application. Local Functions are a great fit when the code is part of the integration workflow itself and benefits from running alongside the Logic Apps runtime in the same application process model, sharing the same lifecycle, scale, deployment, and operational boundary as the Logic App. You can use the following guidance:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table class="lia-background-color-3 lia-border-color-13 lia-border-style-solid" border="1" style="width: 100%; border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;&lt;STRONG&gt;Local Functions are the better fit when...&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;&lt;STRONG&gt;Azure Functions are the better fit when...&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;The code is workflow-specific and should live with the Logic Apps Standard project.&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;The code is a reusable service consumed by multiple applications, workflows, or teams.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;You want the workflow and code to scale together as part of the same Logic App.&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;You need an independent scaling boundary for the code.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;You want to deploy workflow definitions, connectors, configuration, and custom code together.&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;You need a separately deployed API, microservice, or event-driven compute component.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;You want to avoid managing a separate endpoint, authentication flow, runtime resource, and Azure Functions-specific cost model for workflow-scoped logic.&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;You need the code to be exposed, secured, versioned, or operated as an independent service.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;The code complements built-in connectors by validating, enriching, calculating, or shaping integration data inside the workflow.&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;The code is the primary compute workload and the workflow is only one possible caller.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;You are modernizing BizTalk-style helper assemblies, orchestration helpers, or pipeline-adjacent logic that belongs with the integration flow.&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-13"&gt;
&lt;P&gt;You are building a broader platform capability that should live outside a single workflow application.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;While cost can also be part of this decision, it should be framed in architectural terms. When custom code is implemented as a separate Azure Function, the solution introduces another Azure resource with its own hosting, billing, deployment, monitoring, and security considerations. When the code is workflow-scoped, Local Functions let that code run within the Logic Apps Standard application boundary, alongside the workflows and connectors that use it. This can simplify the overall cost model because the team does not need to add a separate Azure Functions resource just to host code that belongs to the integration workflow.&lt;/P&gt;
&lt;H1&gt;The Bigger Opportunity: In-App Connectors Plus Code&lt;/H1&gt;
&lt;P&gt;The most important reason to consider Local Functions is not just convenience. It is the integration outcome. Logic Apps Standard gives you native workflow orchestration and a broad In-app connector ecosystem. Local Functions add the ability to bring custom code of all kinds into that same solution boundary. Together, they let you build integrations where the platform handles connectivity, reliability, retries, monitoring, orchestration, and iPaaS semantics, while your code handles the business-specific decisions that make the workflow unique.&lt;/P&gt;
&lt;P&gt;For customers who are defaulting to Azure Functions because they believe Logic Apps cannot host meaningful code, Local Functions change the conversation. Azure Functions remain a strong option for independent compute and reusable services. But when the code belongs to the integration flow, Logic Apps Standard can be the place where connectors, workflow logic, and local code meet: connectors to reach systems, workflow logic to coordinate the process, and local code to implement the specialized behavior that customers need. The value is not that one runtime replaces the other; it is that Logic Apps and function execution can run alongside each other, each providing unique value inside the same integration application boundary. For workflow-scoped code, that same boundary also helps avoid adding a separate Azure Functions resource, with its own deployment, authentication, monitoring, scaling, and cost model, when the code is only needed by the Logic App.&lt;/P&gt;
&lt;H1&gt;CI/CD&lt;/H1&gt;
&lt;P&gt;Local Functions fit naturally into the same CI/CD model as Logic Apps Standard workflows. The workflow definitions, connections, configuration, and workflow-scoped .NET code can live in the same project. They can also move through the same build, test, and deployment process. This means teams can package the Logic Apps Standard application once and promote it across development, test, staging, and production environments. When the code belongs to the workflow, Local Functions help avoid a separate deployment pipeline, release process, and operational boundary for a standalone Azure Functions resource.&lt;/P&gt;
&lt;H1&gt;Looking Ahead&lt;/H1&gt;
&lt;P&gt;In the next articles in the Coding with Logic Apps Standard series, we will continue exploring the developer side of Logic Apps Standard. The goal is to help customers see Logic Apps Standard not only as a low-code workflow designer, but as a mission-critical integration development platform where connectors and code work together, and where workflows can be created, managed, and deployed as code.&lt;/P&gt;</description>
      <pubDate>Tue, 07 Jul 2026 05:38:35 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/coding-with-logic-apps-standard-local-functions/ba-p/4534240</guid>
      <dc:creator>hcamposu</dc:creator>
      <dc:date>2026-07-07T05:38:35Z</dc:date>
    </item>
    <item>
      <title>Logic Apps Aviators Newsletter - July 2026</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/logic-apps-aviators-newsletter-july-2026/ba-p/4533851</link>
      <description>&lt;P&gt;&lt;STRONG&gt;In this issue:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="#community--1-aceaviator" target="_blank" rel="noopener"&gt;Ace Aviator of the Month&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="#community--1-productnews" target="_blank" rel="noopener"&gt;News from our product group&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="#community--1-communitynews" target="_blank" rel="noopener"&gt;News from our community&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H1 id="aceaviator"&gt;Ace Aviator of the Month&lt;/H1&gt;
&lt;P&gt;&lt;STRONG&gt;July 2026's Ace Aviator:&amp;nbsp;&lt;A class="lia-external-url" href="https://www.linkedin.com/in/billchesnut/" target="_blank" rel="noopener"&gt;Bill Chesnut&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;img&gt;Bill Chesnut - Cloud Platform and API Evangelist @ SixPivot&lt;/img&gt;
&lt;H5&gt;What's your role and title? What are your responsibilities?&lt;/H5&gt;
&lt;P&gt;Cloud Platform and API Evangelist for SixPivot based in Melbourne, Australia - Everything Integration.&lt;/P&gt;
&lt;H5&gt;Can you give us some insights into your day-to-day activities?&lt;/H5&gt;
&lt;P&gt;My day-to-day activities are very much the same every day: some days working on Azure Landing Zones for Integration, developing Logic Apps and Function Apps, and supporting existing Azure Integration and BizTalk.&lt;/P&gt;
&lt;H5&gt;What motivates and inspires you to be an active member of the Aviators/Microsoft community?&lt;/H5&gt;
&lt;P&gt;I really enjoy helping others learn about technology and solve their business problems. At the start of my BizTalk journey in the early 2000s, I also did a lot of BizTalk training across Australia and NZ for Microsoft. When Azure Integration came around, I also created a Cloud Integration Training course that I delivered for SixPivot.&lt;/P&gt;
&lt;H5&gt;Looking back, what advice do you wish you had been given earlier?&lt;/H5&gt;
&lt;P&gt;Always keep your mind open to new things, and never stop learning.&lt;/P&gt;
&lt;H5&gt;What has helped you grow professionally?&lt;/H5&gt;
&lt;P&gt;Staying involved in the community has really helped me grow professionally. You are always encountering new things and meeting interesting people.&lt;/P&gt;
&lt;H5&gt;If you had a magic wand that could create a feature in Logic Apps, what would it be?&lt;/H5&gt;
&lt;P&gt;The one thing I use a lot in my development is Azure App Configuration. It would be nice to be able to create parameters and link them inside the logic app to Azure App Configuration, instead of in the environment variables.&lt;/P&gt;
&lt;HR /&gt;
&lt;H1 id="productnews"&gt;News from our product group&lt;/H1&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/on-the-road-to-net-10-support-logic-apps-migration-from-in-proc-to-out-of-proc-h/4522386" target="_blank" rel="noopener noreferrer"&gt;On the road to .NET 10 Support: Logic Apps Migration from In-Proc to Out-of-Proc hosting model&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Microsoft is migrating Logic Apps Standard from the in-proc to the Azure Functions out-of-proc hosting model as a step toward .NET 10 support. For most customers the change is automatic with no action required, but apps using the NuGet-based deployment model need manual preparation. Teams must preserve the LOGICAPP_INPROC_REDIRECT=1 app setting in their deployment pipelines to prevent premature auto-migration until the app is ready. Key points: the rollout begins around July 30, 2026; automatic migration happens on app restart for apps without the redirect flag; NuGet-based apps must download the latest Functions Core Tools, update project configuration to out-of-proc, and validate locally before removing the redirect setting.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/dynamic-connection-properties-in-azure-logic-apps-standard/4527525" target="_blank" rel="noopener noreferrer"&gt;Dynamic Connection Properties in Azure Logic Apps Standard&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Logic Apps Standard now supports dynamic connection names for built-in (service provider) connectors, solving the problem where a single workflow shared by multiple teams previously required duplicated workflows or hardcoded connections. Instead of hardcoding a connection name, you supply any workflow expression—trigger inputs, action outputs, parameters, or conditional logic—in the connectionName field, and the runtime resolves it against connections.json at execution time. Key points: define multiple connections (one per team/environment/tenant) in connections.json; resolve names via expressions like @triggerBody(), headers, or if() conditionals; works today only via Code View with no designer support; illustrated with a step-by-step dynamic SFTP connection example using app settings for credentials.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/productize-observe-version-and-automate-mcp-servers-in-azure-api-management/4526931" target="_blank" rel="noopener noreferrer"&gt;Productize, observe, version, and automate MCP servers in Azure API Management&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;As organizations move from AI-assisted apps to agentic workflows, MCP servers become a critical integration layer between agents, tools, APIs, and enterprise systems. Azure API Management already brings MCP servers under governance, but scaling adoption demands deeper management. This post announces new generally available capabilities that make MCP servers first-class managed resources. Key points: add MCP servers to Products to package and govern capabilities for specific consumers; MCP tool observability to trace tool usage, logs, errors, and payload context; MCP server versioning to run multiple versions side by side and manage change safely; and Management API plus Bicep support to automate MCP configuration in CI/CD—applying familiar API governance patterns (products, subscriptions) to MCP.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/automatically-route-azure-service-health-alerts-to-the-right-service-owners-usin/4531853" target="_blank" rel="noopener noreferrer"&gt;Automatically Route Azure Service Health Alerts to the Right Service Owners Using Agentic Logic Apps&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Azure Service Health alerts often land in a shared mailbox, requiring manual triage across platform, database, application, security, and AI teams. This post shows how to automate routing by combining Service Health, Azure Monitor Action Groups, and an Autonomous Agent Logic App. The agent matches impacted services to an ownership map and notifies the correct stakeholders, with a fallback for unmapped services. It covers configuring Service Health alerts, triggering Logic Apps from Action Groups, maintaining the service-to-owner repository, and designing agentic routing to reduce operational overhead and response delays.&lt;/P&gt;
&lt;HR /&gt;
&lt;H1 id="communitynews"&gt;News from our community&lt;/H1&gt;
&lt;H5&gt;&lt;A href="https://www.linkedin.com/pulse/dlq-replay-recovery-strategy-al-ghoniem-mba-k49dc?trk=public_post_feed-article-content" target="_blank" rel="noopener noreferrer"&gt;DLQ Replay Is Not a Recovery Strategy&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://au.linkedin.com/in/alghoniem" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Al Ghoniem, MBA&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This article explains why dead-letter queue (DLQ) replay is not a true recovery strategy in distributed systems. A DLQ contains failed messages but cannot decide if replay is business-safe, especially when downstream operations may have already committed. The author outlines risks like duplicate postings and incorrect outcomes, and proposes a controlled replay workflow with idempotency keys, reconciliation steps, failure classification, RBAC, and detailed observability. Practical guidance includes preserving original command context, checking an idempotency store before action, and exposing replay through API Management for governance. A simple decision tree and logging model support auditability and operational safety.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://sahinozdemir.nl/naming-conventions-for-azure-integration-services-how-i-structure-a-hybrid-integration-platform-in-microsoft-azure/" target="_blank" rel="noopener noreferrer"&gt;Naming conventions for Azure Integration Services: How I structure a Hybrid Integration Platform in Microsoft Azure&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://nl.linkedin.com/in/%C5%9Fahin-%C3%B6zdemir-2058666" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Şahin Özdemir&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This practical guide sets out a consistent naming convention for Azure Integration Services within a hybrid integration platform. It explains why disciplined naming improves readability, maintainability, RBAC clarity, and automation for IaC and DevOps. The core formula—resource-org-workload-integration-context-environment—is applied across three architectural tiers (core, shared, integration), with detailed examples for resource groups, virtual networks, subnets, NSGs, Function Apps, Logic Apps Standard, and API connections. The article covers lowercase and hyphen rules, storage account exceptions, and workflow naming (receiver, processor, sender, helper, agent loops). It also touches on claim-check patterns, observability artifacts, and practical constraints like Key Vault name limits.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://sjwiggers.com/2026/06/16/logic-apps-agent-loop-tools-connectors-mcp/" target="_blank" rel="noopener noreferrer"&gt;Building Azure Logic Apps Agent Tools: Connectors and MCP&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://nl.linkedin.com/in/steefjan" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Steef-Jan Wiggers&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Part 4 of the Logic Apps Agent Loop series dives into tools—the mechanisms that let an agent interact with the world. It describes three layers: built-in and managed connectors for common integrations, custom connectors wrapping internal REST APIs for reuse across a tenant, and MCP servers that invert the model by exposing a Logic Apps workflow as a tool provider callable by external agents. The post explains agent parameters, naming and descriptions, and shares preview limitations with API Center’s MCP wizard and Azure AI Foundry’s OpenAPI tool networking. It offers Azure API Management as a practical workaround and guidance on choosing the right layer.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://marczak.io/posts/2026/07/azure-sandbox-chatbot-with-azure-logic-apps/" target="_blank" rel="noopener noreferrer"&gt;Creating Azure Sandbox Chatbot with Azure Logic Apps&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://pl.linkedin.com/in/adam-marczak" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Adam Marczak&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This article outlines a practical Teams-based chatbot pattern for creating ephemeral Azure sandboxes using Azure Logic Apps. A Logic Apps workflow acts as the chatbot, granting users Owner permissions to temporary resource groups that auto-delete after 12 hours, with optional quotas and policies to prevent abuse. It explains single-tenant and multi-tenant setups, Entra objects (service principal, service user), the use of adaptive cards, and governance through tags, Azure Policies, and resource providers. Guidance includes enterprise pipelines (ADO/GitHub) for provisioning, sample workflow screenshots, and GitHub-hosted JSON for the Logic App and adaptive card.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.linkedin.com/pulse/mastering-enterprise-integration-patterns-logic-apps-parth-talaviya-f6xbf?trk=public_post_feed-article-content" target="_blank" rel="noopener noreferrer"&gt;Mastering Enterprise Integration Patterns with Logic Apps&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://in.linkedin.com/in/parth-talaviya" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Parth T.&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This piece introduces how Enterprise Integration Patterns (EIPs) pair with Azure Logic Apps to build scalable, maintainable cloud-native architectures. It explains the role of Logic Apps as an orchestration platform across APIs and events, and highlights benefits such as reusability, observability, and reduced complexity. The article surveys how messaging and workflow patterns map to Logic Apps constructs, when to apply them in distributed systems, and why integration architecture is increasingly strategic. It invites practitioners to consider their most-used EIPs and positions Logic Apps as a pragmatic way to implement patterns without heavy custom code.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.linkedin.com/pulse/your-retry-policy-idempotency-strategy-al-ghoniem-mba-81a5c" target="_blank" rel="noopener noreferrer"&gt;Your Retry Policy Is Not an Idempotency Strategy&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://au.linkedin.com/in/alghoniem" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Al Ghoniem, MBA&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Al Ghoniem clarifies why retries are not a safety mechanism and must be paired with idempotency to avoid duplicate business outcomes. The article distinguishes transport messages, business commands, and outcomes, and outlines practical idempotency keys (client-generated, natural, composite). It places responsibilities across Azure services—APIM as gatekeeper, Service Bus for durability, Functions as command handlers—and insists on a durable store with atomic handling and clear conflict behavior. Guidance covers DLQ replay, Logic App resubmission, payload hashing, and observability in Application Insights. The takeaway: design for safe repetition, not just repeated execution.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.linkedin.com/pulse/when-logic-apps-beat-custom-code-dont-parth-talaviya-etcyf" target="_blank" rel="noopener noreferrer"&gt;When Logic Apps Beat Custom Code (And When They Don’t)&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://in.linkedin.com/in/parth-talaviya" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Parth T.&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Parth Talaviya explains when Azure Logic Apps deliver the most value and when custom code is the better fit. Logic Apps excel in rapid orchestration, reduced operational overhead, cost-effective common workflows, and a rich connector ecosystem. Custom code is preferred for complex domain logic, high-performance processing, advanced security/compliance needs, and reduced platform dependency. The piece frames the decision as trade-offs, not rivalry, and encourages combining both approaches—using Logic Apps for orchestration and SaaS integrations, and code for core business services. Architecture should track complexity, team capabilities, and long-term maintainability.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://anithasantosh.wordpress.com/2026/06/01/boosting-retention-managing-execution-history-in-logic-apps-standard/" target="_blank" rel="noopener noreferrer"&gt;Boosting Retention: Managing Execution History in Logic Apps Standard&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://uk.linkedin.com/in/anithaeswaran" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Anitha Eswaran&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This guide explains how to extend or adjust the default 90‑day execution history retention in Logic Apps Standard. It details portal-based configuration and project settings, including Workflows.RuntimeConfiguration.RetentionInDays and Runtime.FlowMaintenanceJob.RetentionCooldownInterval. The article clarifies why some historical runs may persist up to 97 days due to the cleanup cadence, and how retention is calculated based on the run’s start time. It shows how to scope retention globally or per workflow (Workflows..RuntimeConfiguration.RetentionInDays), with practical steps, screenshots, and recommended ranges (7–365 days) to balance troubleshooting visibility and storage considerations.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.linkedin.com/pulse/choosing-right-ai-agent-logic-apps-loop-vs-microsoft-foundry-saha--lce5c" target="_blank" rel="noopener noreferrer"&gt;Choosing the Right AI Agent: Logic Apps Agent Loop vs Microsoft Foundry vs Copilot Studio — Real-Life Scenarios for Architects&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://in.linkedin.com/in/iamkunalsaha" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Kunal Saha&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Kunal Saha compares three Azure agent platforms from a Logic Apps practitioner’s viewpoint. Logic Apps Agent Loop suits event-driven, integration-heavy automation that benefits from adaptive reasoning across connectors. Microsoft Foundry is positioned for multi-agent systems, evaluation rigor, and deep model flexibility beyond OpenAI, making it fit when AI reasoning quality becomes the main engineering challenge. Copilot Studio specializes in conversational Teams experiences, with native publishing and Power Platform connectors. The article offers plain decision rules—event- vs conversation-driven, integration vs AI-centric—and maps five enterprise scenarios to the right choice, urging architects to mix platforms based on problem fit.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.linkedin.com/pulse/azure-integration-roadmap-sessions-michael-stephenson-6e10e?trk=public_post_feed-article-content" target="_blank" rel="noopener noreferrer"&gt;Azure Integration Roadmap Sessions&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://uk.linkedin.com/in/michaelstephensonuk1" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Michael Stephenson&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Michael Stephenson previews Microsoft’s Azure Integration roadmap sessions at the Integrate 2026 event. He links teaser videos covering BizTalk migration guidance, API Management roadmap, Logic Apps roadmap, Service Bus, Event Grid, and Event Hub. The piece provides the event page, YouTube playlist, and direct video links per topic. It positions these sessions as high‑value for architects and integration teams planning modernization and migration strategies, and suggests the content will outline direction and capabilities across core Azure Integration Services—useful for those moving BizTalk workloads or strengthening governance around APIs and messaging.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://marczak.io/posts/2026/06/logic-apps-automation-released-what-it-is-and-how-it-works/" target="_blank" rel="noopener noreferrer"&gt;Logic Apps Automation release, what is it, and how it works?&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://pl.linkedin.com/in/adam-marczak" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Adam Marczak&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Adam Marczak explains the Logic Apps Automation preview: a new AI‑first SKU with a redesigned portal (auto.azure.com), updated hierarchy (Projects → Applications → Workflows), sandboxes, and 0‑to‑N scaling. He contrasts Automation with Standard and Consumption across runtime isolation, scale‑to‑zero, networking, and billing. Noted gaps include CICD export, whole‑project code export, and VNET availability in preview. Practical guidance includes portal screenshots, run history differences (real‑time in Automation), and decision tables suggesting when Automation, Standard, or Consumption fits best. Related reading links to Microsoft docs and Logic Apps Labs content.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.linkedin.com/pulse/logic-apps-event-grid-event-driven-architecture-azure-marcel-broschk-hiooe?trk=public_post_feed-article-content" target="_blank" rel="noopener noreferrer"&gt;Logic Apps and Event Grid: Event-Driven Architecture in Azure&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://dk.linkedin.com/in/marcel-broschk-85349a1b0?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Marcel Broschk&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This article explains how Azure Event Grid and Azure Logic Apps combine to enable event-driven architecture at scale. Event Grid provides serverless, high-throughput event routing with filtering, retries, and dead-lettering, while Logic Apps orchestrate multi-step workflows using hundreds of connectors. The piece outlines common patterns, such as reacting to blob uploads to trigger AI extraction, storage, and approvals, and discusses key design considerations like idempotency, error handling, and security with managed identities and private endpoints. It also touches on cost and performance trade-offs and highlights practical use cases across operations, business automation, and hybrid integration.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.youtube.com/watch?v=YzqFIRZhAT4" target="_blank" rel="noopener noreferrer"&gt;Introduction to Azure Logic Apps Automation | Getting Started with Azure Logic Apps Automation&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Video by &lt;A href="https://au.linkedin.com/in/srikanthgunnala?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Srikanth Gunnala&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This introductory video walks through Azure Logic Apps Automation and how to get hands-on quickly. It explains the service’s goals, shows how to start building workflows, and demonstrates connecting triggers and actions to automate tasks with minimal setup. Viewers see how to design a simple end-to-end process, integrate with common Microsoft 365 services, and apply AI-assisted authoring to accelerate workflow creation. The session emphasizes practical steps—where to begin, how to wire inputs and outputs, and what to consider for moving from a demo to production-ready automation.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://blog.chiffers.com/how-to-call-an-azure-ai-foundry-agent-from-a-logic-app/" target="_blank" rel="noopener noreferrer"&gt;How To: Call an Azure AI Foundry Agent from a Logic App&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://uk.linkedin.com/in/cchiffers?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Craig Chiffers&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Craig Chiffers presents a step-by-step guide for wiring Microsoft Teams to an Azure AI Foundry agent using Azure Logic Apps—without custom connectors or Azure Functions. The walkthrough covers creating a Teams channel trigger, composing and cleaning message content, posting an HTTP request to the agent endpoint, parsing the JSON response, and replying in-thread to Teams. It includes tips for authentication (API key versus Managed Identity), error handling, and formatting replies, plus suggestions for enhancements like conversation history, loop prevention, and reusable patterns. It’s a practical blueprint for bringing agents into everyday workflows.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.linkedin.com/pulse/healthcare-integration-teams-get-lot-more-interesting-gyanendra-smmoc?trk=public_post_feed-article-content" target="_blank" rel="noopener noreferrer"&gt;Healthcare Integration Teams Are About to Get a Lot More Interesting&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://www.linkedin.com/in/gautam-gyanendra-98031210?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Gautam Gyanendra&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Gautam Gyanendra outlines how healthcare integration teams can evolve by layering agentic workflows on top of deterministic systems. He distinguishes predictable, auditable processes handled by tools like Azure Logic Apps, Service Bus, and API Management from AI-driven reasoning that adapts to context. The article proposes a hybrid architecture where agents summarize charts, detect gaps, and escalate uncertainty to humans, while deterministic layers execute reliably with governance and audit trails. It maps Microsoft services to each layer and explains why combining them will shape healthcare operations over the next three to five years.&lt;/P&gt;</description>
      <pubDate>Mon, 06 Jul 2026 15:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/logic-apps-aviators-newsletter-july-2026/ba-p/4533851</guid>
      <dc:creator>WSilveira</dc:creator>
      <dc:date>2026-07-06T15:00:00Z</dc:date>
    </item>
    <item>
      <title>Automatically Route Azure Service Health Alerts to the Right Service Owners Using Agentic Logic Apps</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/automatically-route-azure-service-health-alerts-to-the-right/ba-p/4531853</link>
      <description>&lt;P&gt;As organizations adopt more Azure services, operational ownership naturally becomes distributed across multiple teams. The platform team may own Azure Kubernetes Service (AKS), the database team may manage Azure SQL, while application teams are responsible for App Services and Logic Apps.&lt;/P&gt;
&lt;P&gt;Azure Service Health provides an excellent way to stay informed about service issues, planned maintenance, health advisories, and security events. However, in many environments, all notifications are sent to a shared mailbox or central operations team. Someone must then manually determine which team owns the affected service and forward the alert to the appropriate stakeholders.&lt;/P&gt;
&lt;P&gt;While manageable for a small environment, this quickly becomes inefficient as the number of Azure services and teams grows.&lt;/P&gt;
&lt;P&gt;In this article, we'll build an automated solution using &lt;A class="lia-external-url" href="https://docs.azure.cn/en-us/service-health/overview" target="_blank"&gt;Azure Service Health&lt;/A&gt;, &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/action-groups" target="_blank"&gt;Azure Monitor Action Groups&lt;/A&gt;, and &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/logic-apps/create-autonomous-agent-workflows?tabs=consumption" target="_blank"&gt;an Autonomous Agent Logic App&lt;/A&gt; that intelligently routes notifications to the teams responsible for the impacted Azure services.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;What You'll Learn&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Configure Azure Service Health Alerts&lt;/LI&gt;
&lt;LI&gt;Trigger a Logic App using an Azure Monitor Action Group&lt;/LI&gt;
&lt;LI&gt;Maintain a service-to-owner mapping repository&lt;/LI&gt;
&lt;LI&gt;Use an Autonomous Agent workflow for intelligent routing&lt;/LI&gt;
&lt;LI&gt;Automatically notify the appropriate service owners&lt;/LI&gt;
&lt;LI&gt;Implement a fallback mechanism for unmapped services&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2&gt;The Challenge&lt;/H2&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Azure Service&lt;/th&gt;&lt;th&gt;Service Owner&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Azure App Service&lt;/td&gt;&lt;td&gt;Application Team&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Azure SQL&lt;/td&gt;&lt;td&gt;Database Team&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Azure Kubernetes Service&lt;/td&gt;&lt;td&gt;Platform Team&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Azure OpenAI&lt;/td&gt;&lt;td&gt;AI Operations Team&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Microsoft Sentinel&lt;/td&gt;&lt;td&gt;Security Team&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;Now imagine Azure Service Health generates an advisory for Azure OpenAI.&lt;/P&gt;
&lt;P&gt;By default, the notification may be sent to a generic mailbox: &lt;EM&gt;cloudops@contoso.com&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;A member of the operations team must then:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Review the notification&lt;/LI&gt;
&lt;LI&gt;Determine who owns the affected service&lt;/LI&gt;
&lt;LI&gt;Forward the email manually&lt;/LI&gt;
&lt;LI&gt;Track who has been notified&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;This introduces operational overhead and can delay response times during critical events.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;Solution Overview&lt;/H2&gt;
&lt;P&gt;The solution consists of three Azure services:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Azure Service Health Alert&lt;/LI&gt;
&lt;LI&gt;Azure Monitor Action Group&lt;/LI&gt;
&lt;LI&gt;Azure Logic App (Autonomous Agent)&lt;/LI&gt;
&lt;/OL&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style="border-left: 4px solid #0078D4; padding: 12px; background-color: #f3f9fd;"&gt;The Logic App acts as the intelligent routing layer that determines who should receive each Service Health notification.&lt;/DIV&gt;
&lt;HR /&gt;
&lt;H2&gt;Service Owner Mapping&lt;/H2&gt;
&lt;P&gt;To determine who should receive an alert, the Logic App uses a service-to-owner mapping.&lt;/P&gt;
&lt;P&gt;In this example, the mapping is stored as a CSV file in Azure Blob Storage.&lt;/P&gt;
&lt;PRE class="lia-indent-padding-left-30px"&gt;Services,Owners
Azure App Service,ASPOwners@contoso.com
Azure SQL,DBAOwners@contoso.com
Logic Apps,LAOwners@contoso.com
Azure OpenAI,OpenAIOwners@contoso.com
Azure Kubernetes Service,AKSOwners@contoso.com
Microsoft Sentinel,SentinelOwners@contoso.com
Default,CloudAdmins@contoso.com
&lt;/PRE&gt;
&lt;DIV style="border-left: 4px solid #FFB900; padding: 12px; background-color: #fff8e1;"&gt;&lt;STRONG&gt;Important:&lt;/STRONG&gt; Always include a Default entry in your mapping file. If an alert is generated for a service that isn't mapped, the notification will still be routed to a fallback operations team.&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Flexible Service Owner Data Source&lt;/H3&gt;
&lt;P&gt;This solution uses Azure Blob Storage because it's simple to implement, easy to maintain, and suitable for most scenarios.&lt;/P&gt;
&lt;P&gt;However, the &lt;STRONG&gt;Service Owner Lookup&lt;/STRONG&gt; tool (More information in Step-1 Build the logic app) in the Logic App is only responsible for retrieving ownership information. The underlying data source can be replaced with any repository that best fits your organization's architecture.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="width: 83.1481%; border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Alternative Source&lt;/th&gt;&lt;th&gt;Implementation Approach&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SharePoint List or File&lt;/td&gt;&lt;td&gt;Replace the Blob Storage action with a SharePoint connector action.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Azure File Share (SMB)&lt;/td&gt;&lt;td&gt;Use a File connector instead of a Blob connector.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Logic App Parameters&lt;/td&gt;&lt;td&gt;Store a small owner mapping directly within the Logic App or ARM template parameters.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HTTP API / Database&lt;/td&gt;&lt;td&gt;Query an internal REST API, CMDB, Azure Storage Tables or SQL database dynamically.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 22.6112%" /&gt;&lt;col style="width: 77.3785%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;The key point is that the Autonomous Agent doesn't care where the information comes from.&lt;/P&gt;
&lt;P&gt;As long as the lookup tool returns a structured list of service-to-owner mappings, the routing logic remains unchanged.&lt;/P&gt;
&lt;P&gt;This flexibility allows organizations to integrate with existing governance platforms, CMDB systems, service catalogs, or internal APIs without modifying the overall workflow.&lt;/P&gt;
&lt;DIV style="border-left: 4px solid #0078D4; padding: 12px; background-color: #f3f9fd;"&gt;The Autonomous Agent doesn't directly query Blob Storage. It consumes the output returned by the Service Owner Lookup tool and determines the appropriate recipients for the incoming Service Health event.&lt;/DIV&gt;
&lt;HR /&gt;
&lt;H2&gt;Why Use an Autonomous Agent?&lt;/H2&gt;
&lt;P&gt;Traditional Logic App implementations often rely on numerous switch statements and conditions to determine routing logic.&lt;/P&gt;
&lt;P&gt;As service inventories grow, maintaining those conditions becomes increasingly difficult.&lt;/P&gt;
&lt;P&gt;Using an Autonomous Agent greatly simplifies the design.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Analyzes incoming Service Health events&lt;/LI&gt;
&lt;LI&gt;Identifies the impacted Azure service&lt;/LI&gt;
&lt;LI&gt;Retrieves ownership information&lt;/LI&gt;
&lt;LI&gt;Selects the correct recipients&lt;/LI&gt;
&lt;LI&gt;Formats and delivers notifications&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Maintenance typically becomes as simple as updating the service owner mapping rather than modifying workflow logic.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;Step 1: Build the Logic App&lt;/H2&gt;
&lt;P&gt;For this implementation, create a &lt;STRONG&gt;Consumption (Multi-Tenant)&lt;/STRONG&gt; Logic App and select an &lt;STRONG&gt;Autonomous Agent&lt;/STRONG&gt; workflow. I have added below &lt;STRONG&gt;tools &lt;/STRONG&gt;to my autonomous agent. The template for the logic app is provided in the deployment section below.&lt;/P&gt;
&lt;H5 class="lia-indent-padding-left-30px"&gt;Trigger Input Reader&lt;/H5&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Reads and interprets the Service Health payload received through the Action Group.&lt;/P&gt;
&lt;H5 class="lia-indent-padding-left-30px"&gt;Service Owner Lookup&lt;/H5&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Retrieves the service ownership mapping and identifies the correct recipients.&lt;/P&gt;
&lt;H5 class="lia-indent-padding-left-30px"&gt;Send Alert Email&lt;/H5&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Formats and sends notifications to the identified service owners.&lt;/P&gt;
&lt;H5 class="lia-indent-padding-left-30px"&gt;Failure Notification&lt;/H5&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Notifies Cloud Administrators if workflow execution fails.&lt;/P&gt;
&lt;P&gt;The logic app workflow should look like below.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;Step 2: Configure the Azure Monitor Action Group&lt;/H2&gt;
&lt;P&gt;The Azure Monitor Action Group is responsible for invoking the Logic App whenever a matching Service Health event occurs.&lt;/P&gt;
&lt;P&gt;Navigate to:&lt;/P&gt;
&lt;PRE class="lia-indent-padding-left-30px"&gt;Azure Portal → Monitor → Alerts → Action Groups
&lt;/PRE&gt;
&lt;P&gt;You can either create a new Action Group or modify an existing one.&lt;/P&gt;
&lt;P&gt;Provide the required information in the &lt;STRONG&gt;Basics&lt;/STRONG&gt; section and then navigate to the &lt;STRONG&gt;Actions&lt;/STRONG&gt; tab.&lt;/P&gt;
&lt;H4&gt;Configure the Logic App Action&lt;/H4&gt;
&lt;OL&gt;
&lt;LI&gt;Select &lt;STRONG&gt;Logic App&lt;/STRONG&gt; as the &lt;STRONG&gt;Action Type&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Select the subscription where the Logic App is deployed.&lt;/LI&gt;
&lt;LI&gt;Select the resource group that contains the Logic App.&lt;/LI&gt;
&lt;LI&gt;Select the Logic App created in Step 1.&lt;/LI&gt;
&lt;LI&gt;Choose the HTTP trigger:
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;When an HTTP request is received&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Provide a friendly name for the Action.&lt;/LI&gt;
&lt;LI&gt;Save the Action Group.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Your configuration should look similar to the example below:&lt;/P&gt;
&lt;img /&gt;
&lt;DIV style="border-left: 4px solid #FFB900; padding: 12px; background-color: #fff8e1;"&gt;&lt;STRONG&gt;Important:&lt;/STRONG&gt; Ensure that the Logic App trigger selected in the Action Group is &lt;STRONG&gt;"When an HTTP request is received"&lt;/STRONG&gt;. Selecting an incorrect trigger can prevent the Service Health payload from reaching the workflow.&lt;/DIV&gt;
&lt;DIV style="border-left: 4px solid #0078D4; padding: 12px; background-color: #f3f9fd;"&gt;&lt;STRONG&gt;Tip:&lt;/STRONG&gt; Service Health notifications use the Service Health alert payload format. The Logic App will receive the complete alert context through the HTTP trigger, allowing the Autonomous Agent to identify the affected Azure service and determine the correct recipients.&lt;/DIV&gt;
&lt;P&gt;Once the Action Group is saved, Azure Monitor will automatically invoke the Logic App whenever a Service Health alert matching your configured criteria is generated.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;Step 3: Create the Service Health Alert&lt;/H2&gt;
&lt;P&gt;Navigate to Azure Service Health and create a Service Health Alert.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Subscription&lt;/LI&gt;
&lt;LI&gt;Services&lt;/LI&gt;
&lt;LI&gt;Regions&lt;/LI&gt;
&lt;LI&gt;Event Types&lt;/LI&gt;
&lt;LI&gt;Severity&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Select &lt;STRONG&gt;Use an Existing Action Group&lt;/STRONG&gt; and choose the Action Group created earlier.&lt;/P&gt;
&lt;img /&gt;&lt;HR /&gt;
&lt;H2&gt;Validation and Testing&lt;/H2&gt;
&lt;P&gt;Keep the native Azure Service Health email notifications enabled for a week or two after deployment.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Validate Logic App execution&lt;/LI&gt;
&lt;LI&gt;Validate routing accuracy&lt;/LI&gt;
&lt;LI&gt;Verify email delivery&lt;/LI&gt;
&lt;LI&gt;Test fallback scenarios&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2&gt;Deployment Template&lt;/H2&gt;
&lt;P&gt;A sample deployment template that provisions the required resources is available on GitHub:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/jainarpit-ms/Azure-Service-Health-Alert-Automation" target="_blank" rel="noopener"&gt; Azure-Service-Health-Alert-Automation &lt;/A&gt;&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;Post-Deployment Requirement&lt;/H2&gt;
&lt;DIV style="border-left: 4px solid #FFB900; padding: 12px; background-color: #fff8e1;"&gt;&lt;STRONG&gt;Office 365 Authorization Required&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;After deployment, navigate to the Office 365 connection resource and complete the authorization process. This OAuth step is required before email notifications can be sent and cannot currently be automated through ARM template deployments.&lt;/DIV&gt;
&lt;HR /&gt;
&lt;H2&gt;Cost Considerations&lt;/H2&gt;
&lt;P&gt;This solution is designed using Azure services that generally follow either a consumption-based or pay-as-you-go pricing model. The overall cost of the implementation depends primarily on the number of Service Health notifications received, Logic App executions, connector usage, and any supporting storage resources.&lt;/P&gt;
&lt;H3 class="lia-indent-padding-left-30px"&gt;Azure Service Health&lt;/H3&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Azure Service Health is available to Azure subscribers at no additional cost.&lt;/P&gt;
&lt;H3 class="lia-indent-padding-left-30px"&gt;Azure Monitor Action Groups&lt;/H3&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Action Groups themselves are used to route notifications and automation actions. Certain notification channels and actions may incur charges depending on the notification type and usage volume.&lt;/P&gt;
&lt;H3 class="lia-indent-padding-left-30px"&gt;Azure Logic Apps&lt;/H3&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;This article uses a Consumption (Multi-Tenant) Logic App. In the Consumption model, billing is based on workflow executions, trigger executions, connector actions, and related operations. As a result, costs scale with actual usage, making it a cost-effective option for event-driven workloads such as Service Health notifications.&lt;/P&gt;
&lt;H3 class="lia-indent-padding-left-30px"&gt;Supporting Services&lt;/H3&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Depending on your implementation, additional charges may apply for:&lt;/P&gt;
&lt;UL class="lia-indent-padding-left-30px"&gt;
&lt;LI class="lia-indent-padding-left-30px" style="list-style-type: none;"&gt;
&lt;UL class="lia-indent-padding-left-30px"&gt;
&lt;LI class="lia-indent-padding-left-30px"&gt;Azure Blob Storage used to store service-owner mappings&lt;/LI&gt;
&lt;LI class="lia-indent-padding-left-30px"&gt;Office 365 or Outlook connectors used for email delivery&lt;/LI&gt;
&lt;LI class="lia-indent-padding-left-30px"&gt;Custom connectors, APIs, or databases used for owner lookups&lt;/LI&gt;
&lt;LI class="lia-indent-padding-left-30px"&gt;Any monitoring or logging resources used for diagnostics&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV style="border-left: 4px solid #0078D4; padding: 12px; background-color: #f3f9fd;"&gt;&lt;STRONG&gt;Tip:&lt;/STRONG&gt; Since Service Health events are relatively infrequent in most environments, the operational cost of this solution is typically low. However, it's always recommended to review pricing for the services used in your specific Azure subscription and region.&lt;/DIV&gt;
&lt;H3&gt;Official Pricing References&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://azure.microsoft.com/pricing/details/logic-apps/" target="_blank"&gt;Azure Logic Apps Pricing&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://azure.microsoft.com/en-us/pricing/details/monitor/" target="_blank"&gt;Azure Monitor Pricing&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2&gt;Conclusion&lt;/H2&gt;
&lt;P&gt;Azure Service Health provides valuable visibility into platform events, but the effectiveness of those alerts depends on whether they reach the people who can act on them.&lt;/P&gt;
&lt;P&gt;By combining Azure Service Health, Azure Monitor Action Groups, Blob Storage, and Autonomous Agent Logic Apps, you can build a scalable notification-routing solution that automatically delivers alerts to the teams responsible for the affected services.&lt;/P&gt;
&lt;P&gt;The result is less manual effort, faster response times, improved accountability, and a more efficient operational model for managing Azure environments at scale.&lt;/P&gt;</description>
      <pubDate>Sun, 05 Jul 2026 21:55:20 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/automatically-route-azure-service-health-alerts-to-the-right/ba-p/4531853</guid>
      <dc:creator>Arpit_MSFT</dc:creator>
      <dc:date>2026-07-05T21:55:20Z</dc:date>
    </item>
    <item>
      <title>On the road to .NET 10 Support: Logic Apps Migration from In-Proc to Out-of-Proc hosting model</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/on-the-road-to-net-10-support-logic-apps-migration-from-in-proc/ba-p/4522386</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We will begin this migration in the coming weeks. For most customers, the change will be automatic and require no action. However, some apps will need customer updates before they can move to the new hosting model. This exception is:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Logic Apps that use the current NuGet-based deployment model&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;If your app does not fall into one of these categories, it will be migrated automatically and no action is required.&lt;/STRONG&gt; If it does, review the guidance in this article to prepare your app for migration.&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;Getting ready for this update&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;STRONG&gt;If your application is using NuGet-based deployment, you should update your deployment processes to preserve the following app setting until your app is ready to move to the new hosting model:&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:2,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&lt;SPAN data-teams="true"&gt;LOGICAPP_INPROC_REDIRECT&lt;/SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;1&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:2,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;This app setting is used to prevent an app from being automatically migrated to the Azure Functions out-of-proc-hosting mode&lt;/STRONG&gt;l. We will update this app setting for apps that fall into the exception categories and will notify customers to update their deployment pipelines so this value is not overwritten.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;We will start rolling out a change that will automatically move any app that does not have the above app setting to the Azure Functions out-of-proc-hosting model the next time the app restarts.&lt;/LI&gt;
&lt;LI&gt;As part of the rollout process, we will add this flag to any application that fits the exception criteria. This will be done only once, so subsequent configuration changes could override our setting. This is why you need to update your processes to preserve this value until the app is ready to move.&lt;/LI&gt;
&lt;LI&gt;You must make this change before July 30, 2026. This is when we will be rolling out the changes.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;&lt;STRONG&gt;Manual steps needed for NuGet-based applications&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;STRONG&gt;If your application is using the NuGet-base deployment model, you will need to make the appropriate updates described below before removing the redirect app setting and allowing the app to move to the Azure Functions out-of-proc-hosting model&lt;/STRONG&gt;.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Download the latest Azure Functions Core Tools.&lt;/LI&gt;
&lt;LI&gt;Update your project configuration to the Azure Functions out-of-proc-hosting model.&lt;/LI&gt;
&lt;LI&gt;Validate your application locally before updating your deployment process and removing the redirect app setting.&lt;/LI&gt;
&lt;/OL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;After you have validated your application locally and updated your deployment process, you can remove the redirect app setting&lt;/STRONG&gt; and allow the deployed app to move to the Azure Functions out-of-proc-hosting model when appropriate guidance has been published for your scenario.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Frequently Asked Questions&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Q: How do I prevent my app from being migrated to the Azure Functions out-of-proc-hosting model?&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;The LOGICAPP_INPROC_REDIRECT setting is used to determine whether an app should remain on the current in-proc hosting model. By default, apps that do not have this setting will be moved to the Azure Functions out-of-proc-hosting model. Set the value to 1 if you need to prevent automatic migration until your app is ready.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Q: What happens if my app uses the NuGet deployment model?&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;If your app uses the NuGet deployment model, you should keep the redirect app setting in place for now. We will publish a separate communication when the required Logic Apps runtime package guidance and supported migration steps are confirmed for this scenario.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Q: &lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;Q: What happens if I accidentally remove the &lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:2,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&lt;SPAN data-teams="true"&gt;LOGICAPP_INPROC_REDIRECT = 1 from my configuration?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:2,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&lt;SPAN data-teams="true"&gt;&lt;EM&gt;The LOGICAPP_INPROC_REDIRECT setting is used to determine whether an app should remain on the current in-proc hosting model. If you remove it by accidenty, your application will be moved to the Azure Functions out-of-proc-hosting model. But you can reset that behavior by reapplying the setting and restarting the application.&lt;/EM&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Q: Will there be a separate communication about .NET 10 support?&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;Yes. We will send a separate communication once we have confirmed the Logic Apps runtime and workflow version guidance for .NET 10 support.&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 03 Jul 2026 00:25:23 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/on-the-road-to-net-10-support-logic-apps-migration-from-in-proc/ba-p/4522386</guid>
      <dc:creator>WSilveira</dc:creator>
      <dc:date>2026-07-03T00:25:23Z</dc:date>
    </item>
    <item>
      <title>Dynamic Connection Properties in Azure Logic Apps Standard</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/dynamic-connection-properties-in-azure-logic-apps-standard/ba-p/4527525</link>
      <description>&lt;H2&gt;Switching Built-in Connections at Runtime&lt;/H2&gt;
&lt;H3&gt;The Problem&lt;/H3&gt;
&lt;P&gt;Imagine your organization has a single Logic App workflow used by multiple teams. Each team has its own SFTP server, database, or service bus namespace. Traditionally, you'd need separate workflows or hardcode a single connection — neither scales well.&lt;/P&gt;
&lt;H3&gt;The Solution&lt;/H3&gt;
&lt;P&gt;Logic Apps Standard supports&amp;nbsp;&lt;STRONG&gt;dynamic connection names&lt;/STRONG&gt;&amp;nbsp;for built-in (service provider) connectors. Instead of hardcoding a connection name, you can use any workflow expression — trigger inputs, previous action outputs, parameters, or conditional logic — to determine which connection to use at runtime.&lt;/P&gt;
&lt;P&gt;No designer support is available at this time — this works today via &lt;STRONG&gt;Code View&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;How It Works&lt;/H3&gt;
&lt;OL&gt;
&lt;LI&gt;Define multiple connections in&amp;nbsp;connections.json&amp;nbsp;— one per team/environment/tenant&lt;/LI&gt;
&lt;LI&gt;Resolve the connection name dynamically using any expression&lt;/LI&gt;
&lt;LI&gt;Reference that expression in the&amp;nbsp;connectionName&amp;nbsp;field of your service provider action&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;The runtime evaluates the expression and resolves the connection from connections.json at execution time.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;The Key Pattern&lt;/H5&gt;
&lt;LI-CODE lang="json"&gt;"serviceProviderConfiguration": {
  "connectionName": "@&amp;lt;expression-that-resolves-to-connection-name&amp;gt;",
  "operationId": "listFolder",
  "serviceProviderId": "/serviceProviders/Sftp"
}&lt;/LI-CODE&gt;
&lt;P&gt;Instead of hardcoding "connectionName": "sftp", you provide an expression that evaluates to a connection key defined in connections.json.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;H5&gt;What You Can Use as the Dynamic Value&lt;/H5&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table class="lia-border-style-solid" border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Example&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Trigger body&lt;/td&gt;&lt;td&gt;@triggerBody()?['connectionName']&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Trigger header&lt;/td&gt;&lt;td&gt;@triggerOutputs()['headers']['X-Connection-Name']&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Conditional expression&lt;/td&gt;&lt;td&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="3330744" data-lia-user-login="if" class="lia-mention lia-mention-user"&gt;if​&lt;/a&gt;(equals(triggerBody()?['team'], 'teamA'), 'sftpTeamA', 'sftpTeamB')&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Previous action output&lt;/td&gt;&lt;td&gt;@outputs('Resolve_Connection')&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Workflow parameter&lt;/td&gt;&lt;td&gt;@parameters('defaultConnection')&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Step-by-Step Example: Dynamic SFTP Connection&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H6&gt;1. Define Connections in connections.json&lt;/H6&gt;
&lt;LI-CODE lang="json"&gt;{
  "serviceProviderConnections": {
    "sftpTeamA": {
      "parameterValues": {
        "sshHostAddress": "@appsetting('SftpTeamA_HostAddress')",
        "username": "@appsetting('SftpTeamA_Username')",
        "password": "@appsetting('SftpTeamA_Password')",
        "portNumber": "@appsetting('SftpTeamA_PortNumber')",
        "rootDirectory": "@appsetting('SftpTeamA_RootDirectory')"
      },
      "serviceProvider": {
        "id": "/serviceProviders/Sftp"
      },
      "displayName": "SFTP - Team A"
    },
    "sftpTeamB": {
      "parameterValues": {
        "sshHostAddress": "@appsetting('SftpTeamB_HostAddress')",
        "username": "@appsetting('SftpTeamB_Username')",
        "password": "@appsetting('SftpTeamB_Password')",
        "portNumber": "@appsetting('SftpTeamB_PortNumber')",
        "rootDirectory": "@appsetting('SftpTeamB_RootDirectory')"
      },
      "serviceProvider": {
        "id": "/serviceProviders/Sftp"
      },
      "displayName": "SFTP - Team B"
    }
  }
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H6&gt;2. Add App Settings&lt;/H6&gt;
&lt;P&gt;In your Logic App's&amp;nbsp;&lt;STRONG&gt;Configuration&lt;/STRONG&gt;&amp;nbsp;→&amp;nbsp;&lt;STRONG&gt;Application settings&lt;/STRONG&gt;, add values for each connection:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table class="lia-border-style-solid" border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Setting&lt;/th&gt;&lt;th&gt;Example Value&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;SftpTeamA_HostAddress&lt;/td&gt;&lt;td&gt;storageacctA.blob.core.windows.net&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SftpTeamA_Username&lt;/td&gt;&lt;td&gt;storageacctA.localuserA&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SftpTeamA_Password&lt;/td&gt;&lt;td&gt;&lt;EM&gt;(generated password)&lt;/EM&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SftpTeamA_PortNumber&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SftpTeamA_RootDirectory&lt;/td&gt;&lt;td&gt;/uploads&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SftpTeamB_HostAddress&lt;/td&gt;&lt;td&gt;storageacctB.blob.core.windows.net&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SftpTeamB_Username&lt;/td&gt;&lt;td&gt;storageacctB.localuserB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SftpTeamB_Password&lt;/td&gt;&lt;td&gt;&lt;EM&gt;(generated password)&lt;/EM&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SftpTeamB_PortNumber&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SftpTeamB_RootDirectory&lt;/td&gt;&lt;td&gt;/uploads&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H6&gt;3. Create the Workflow (Code View)&lt;/H6&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
  "definition": {
    "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
    "actions": {
      "List_files_in_folder": {
        "type": "ServiceProvider",
        "inputs": {
          "serviceProviderConfiguration": {
            "connectionName": "@if(equals(triggerBody()?['team'], 'teamA'), 'sftpTeamA', 'sftpTeamB')",
            "operationId": "listFolder",
            "serviceProviderId": "/serviceProviders/Sftp"
          },
          "parameters": {
            "path": "@triggerBody()?['folderPath']"
          }
        },
        "runAfter": {}
      },
      "Response": {
        "type": "Response",
        "kind": "Http",
        "inputs": {
          "statusCode": 200,
          "body": "@body('List_files_in_folder')"
        },
        "runAfter": {
          "List_files_in_folder": ["Succeeded"]
        }
      }
    },
    "triggers": {
      "When_a_HTTP_request_is_received": {
        "type": "Request",
        "kind": "Http",
        "inputs": {
          "schema": {
            "type": "object",
            "properties": {
              "team": { "type": "string" },
              "folderPath": { "type": "string" }
            }
          }
        }
      }
    },
    "contentVersion": "1.0.0.0"
  },
  "kind": "Stateful"
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H6&gt;4. Test It&lt;/H6&gt;
&lt;P&gt;Send a POST request to the workflow trigger URL:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
  "team": "teamA",
  "folderPath": "/uploads"
}&lt;/LI-CODE&gt;
&lt;P&gt;Change "team": "teamB" to route to the other SFTP server at runtime.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Multi-Step Resolution Example&lt;/H3&gt;
&lt;P&gt;For more complex logic — lookups, mappings, or multi-condition routing — resolve the connection in a prior action and reference its output:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
  "Resolve_Connection": {
    "type": "Compose",
    "inputs": "@if(contains(triggerBody()?['region'], 'eu'), 'sftpEurope', if(contains(triggerBody()?['region'], 'us'), 'sftpAmerica', 'sftpDefault'))",
    "runAfter": {}
  },
  "Upload_File": {
    "type": "ServiceProvider",
    "inputs": {
      "serviceProviderConfiguration": {
        "connectionName": "@outputs('Resolve_Connection')",
        "operationId": "createFile",
        "serviceProviderId": "/serviceProviders/Sftp"
      },
      "parameters": {
        "path": "/incoming/data.csv",
        "content": "@triggerBody()?['fileContent']"
      }
    },
    "runAfter": {
      "Resolve_Connection": ["Succeeded"]
    }
  }
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Applicable Connectors&lt;/H3&gt;
&lt;P&gt;This pattern works with&amp;nbsp;&lt;STRONG&gt;all built-in service provider connectors&lt;/STRONG&gt;&amp;nbsp;(type: "ServiceProvider"), including:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SFTP&lt;/LI&gt;
&lt;LI&gt;SQL&lt;/LI&gt;
&lt;LI&gt;Service Bus&lt;/LI&gt;
&lt;LI&gt;Event Hubs&lt;/LI&gt;
&lt;LI&gt;Azure Blob Storage (built-in)&lt;/LI&gt;
&lt;LI&gt;SMTP&lt;/LI&gt;
&lt;LI&gt;Azure Automation&lt;/LI&gt;
&lt;LI&gt;And any other built-in connector&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Limitations&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Code View only&lt;/STRONG&gt;&amp;nbsp;— The designer does not render or edit dynamic connection names visually.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Built-in connectors only&lt;/STRONG&gt;&amp;nbsp;— Managed API connections (type: "ApiConnection") do not support this pattern.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Connection must exist&lt;/STRONG&gt;&amp;nbsp;— The resolved name must match a key already defined in&amp;nbsp;connections.json. Connections cannot be created on-the-fly.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Case-sensitive&lt;/STRONG&gt; — The expression output must exactly match the connection key in&amp;nbsp;connections.json.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Tips&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Use&amp;nbsp;@appsetting()&amp;nbsp;references in&amp;nbsp;connections.json&amp;nbsp;to keep credentials out of source control&lt;/LI&gt;
&lt;LI&gt;Store passwords in&amp;nbsp;&lt;STRONG&gt;Azure Key Vault&lt;/STRONG&gt;&amp;nbsp;referenced via app settings&lt;/LI&gt;
&lt;LI&gt;Use meaningful connection names (e.g.,&amp;nbsp;sftpTeamA,&amp;nbsp;sqlProd,&amp;nbsp;serviceBusDev)&lt;/LI&gt;
&lt;LI&gt;You can scale to any number of connections — just add entries to&amp;nbsp;connections.json&amp;nbsp;and corresponding app settings&lt;/LI&gt;
&lt;LI&gt;Inline expressions like @if(...) work directly in connectionName — you don't always need a separate action&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 11 Jun 2026 13:20:10 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/dynamic-connection-properties-in-azure-logic-apps-standard/ba-p/4527525</guid>
      <dc:creator>ShubhamSachdeva99</dc:creator>
      <dc:date>2026-06-11T13:20:10Z</dc:date>
    </item>
    <item>
      <title>Productize, observe, version, and automate MCP servers in Azure API Management</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/productize-observe-version-and-automate-mcp-servers-in-azure-api/ba-p/4526931</link>
      <description>&lt;H2&gt;&lt;STRONG&gt;Introduction&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;As organizations move from AI-assisted applications to agentic workflows, MCP servers are becoming a critical integration layer between agents, tools, APIs, data sources, and enterprise systems. Azure API Management already helps teams bring MCP servers under enterprise governance. But as MCP adoption scales, platform teams need more than basic exposure. They need a way to package MCP servers for the right consumers, understand tool usage in detail, manage changes safely, and automate configuration across environments.&lt;/P&gt;
&lt;P&gt;These are familiar API management challenges — and the same patterns that organizations already use for APIs can now be applied more deeply to MCP servers. We are excited to announce new generally available capabilities for MCP server management in Azure API Management:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Add MCP servers to products&lt;/STRONG&gt; to package and govern MCP capabilities for specific consumers&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;MCP tool observability&lt;/STRONG&gt; to trace tool usage, logs, errors, and payload context&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;MCP server versioning&lt;/STRONG&gt; to run multiple versions side by side and manage change safely&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Management API and Bicep support&lt;/STRONG&gt; to automate MCP server configuration as part of CI/CD workflows&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Together, these capabilities extend MCP server management in Azure API Management and help make MCP servers first-class managed resources — productized, observable, versionable, and automatable.&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Why MCP server management matters&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;MCP gives agents a standard way to connect with tools and external capabilities. That standardization is powerful, but it also introduces a new operational surface for enterprises.&lt;/P&gt;
&lt;P&gt;Without a management layer, teams can quickly run into questions such as:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Which MCP servers are approved for use?&lt;/LI&gt;
&lt;LI&gt;Who can access each server?&lt;/LI&gt;
&lt;LI&gt;How do we expose MCP servers to different developer or agent audiences?&lt;/LI&gt;
&lt;LI&gt;How do we monitor tool calls, latency, errors, and cost?&lt;/LI&gt;
&lt;LI&gt;How do we run preview and production versions side by side?&lt;/LI&gt;
&lt;LI&gt;How do we automate MCP server configuration across environments?&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;These are not just developer experience questions. They are enterprise governance questions. With Azure API Management, MCP servers can now be managed using the same core patterns organizations already use for APIs: products, subscriptions, policies, observability, versioning, and automation.&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;What’s new&lt;/STRONG&gt;&lt;/H2&gt;
&lt;H3&gt;&lt;STRONG&gt;1. Add MCP servers to products&lt;/STRONG&gt;&lt;/H3&gt;
&lt;img /&gt;
&lt;P&gt;Azure API Management products are a proven way to package APIs for consumption. With this release, you can now add one or more MCP servers to APIM products as well. This makes it easier to expose MCP capabilities to specific consumers, teams, applications, or agent experiences using familiar product-based governance.&lt;/P&gt;
&lt;P&gt;For example, a platform team can create a product for internal agents that includes approved MCP servers such as:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Customer profile lookup&lt;/LI&gt;
&lt;LI&gt;Order status retrieval&lt;/LI&gt;
&lt;LI&gt;Knowledge base search&lt;/LI&gt;
&lt;LI&gt;Ticket creation&lt;/LI&gt;
&lt;LI&gt;Workflow automation tools&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;By adding MCP servers to products, teams can use familiar controls such as subscriptions, quotas, approval workflows, and access management to govern how MCP capabilities are consumed.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Why it matters:&lt;/STRONG&gt; MCP servers are no longer isolated endpoints. They can be bundled, governed, and delivered as secure, consumable products.&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;2. MCP tool observability&lt;/STRONG&gt;&lt;/H3&gt;
&lt;img /&gt;
&lt;P&gt;As agents use MCP servers to discover and invoke tools, teams need more than basic traffic visibility. They need end-to-end trace context for each agent-to-tool interaction. With MCP observability in Azure API Management, teams can inspect key MCP-specific details, including:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Operation context:&lt;/STRONG&gt; whether the request was a tools/list or tools/call operation&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Session context:&lt;/STRONG&gt; the MCP session ID through gen_ai.conversation.id&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Client context:&lt;/STRONG&gt; MCP client name and version&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Protocol context:&lt;/STRONG&gt; MCP protocol name and version&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Server context:&lt;/STRONG&gt; MCP server name and version&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Access context:&lt;/STRONG&gt; authentication type and API type&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Tool context:&lt;/STRONG&gt; tool name and tool type for tool invocation traces&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Error context:&lt;/STRONG&gt; error type and error message when a call fails&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Payload context:&lt;/STRONG&gt; tool invocation arguments and results when payload logging is enabled&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This is especially important for agentic workflows, where a single user request may trigger multiple tool calls across different systems. With APIM, MCP traffic can be traced, inspected, and monitored using the same operational practices teams already use across their API estate.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Why it matters:&lt;/STRONG&gt; MCP servers are not just accessible through APIM — they are observable. Platform teams can trace tool calls, inspect errors, and understand MCP usage with the same operational discipline they expect from managed APIs.&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;3. Expose multiple MCP versions&lt;/STRONG&gt;&lt;/H3&gt;
&lt;img /&gt;
&lt;P&gt;Enterprise teams need safe ways to evolve MCP servers over time. With MCP server versioning in Azure API Management, you can expose multiple versions of the same MCP server side by side. This allows teams to run a stable GA version while introducing a preview or next version for early adopters.&lt;/P&gt;
&lt;P&gt;For example:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;v1 can serve the majority of production traffic.&lt;/LI&gt;
&lt;LI&gt;v2 can be exposed to a subset of consumers for testing.&lt;/LI&gt;
&lt;LI&gt;Teams can monitor adoption, errors, latency, and behavior.&lt;/LI&gt;
&lt;LI&gt;Once the new version is validated, v2 can be promoted with confidence.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This pattern is especially useful when MCP tools evolve, schemas change, new capabilities are added, or teams want to validate agent behavior before rolling changes out broadly.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Why it matters:&lt;/STRONG&gt; MCP servers can now follow a safer lifecycle model: preview, validate, route, promote, and retire.&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;4. Management API and Infrastructure as Code&lt;/STRONG&gt;&lt;/H3&gt;
&lt;img /&gt;
&lt;P&gt;MCP server management also needs to work at enterprise scale. With Management API and Infrastructure as Code support, teams can provision and configure MCP servers programmatically through Azure API Management APIs and automation pipelines. This allows platform teams to define MCP server resources as part of repeatable deployment workflows using tools such as Bicep, Terraform, ARM, REST APIs, and CI/CD pipelines.&lt;/P&gt;
&lt;P&gt;Teams can automate configuration for:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;MCP server endpoints&lt;/LI&gt;
&lt;LI&gt;Runtime and transport settings&lt;/LI&gt;
&lt;LI&gt;Authentication configuration&lt;/LI&gt;
&lt;LI&gt;Metadata and ownership&lt;/LI&gt;
&lt;LI&gt;Versioning&lt;/LI&gt;
&lt;LI&gt;Product association&lt;/LI&gt;
&lt;LI&gt;Policies&lt;/LI&gt;
&lt;LI&gt;Environment promotion&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This is critical for organizations that need consistent MCP governance across development, test, staging, and production environments.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Why it matters:&lt;/STRONG&gt; MCP server management can now be automated, reviewed, deployed, and governed like the rest of your API platform.&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;How these capabilities work together&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Individually, each capability solves an important operational need. Together, they create a complete management model for MCP servers in Azure API Management. A platform team can:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Register or expose MCP servers through Azure API Management.&lt;/LI&gt;
&lt;LI&gt;Package them into products for specific consumers.&lt;/LI&gt;
&lt;LI&gt;Apply access controls, subscriptions, quotas, and policies.&lt;/LI&gt;
&lt;LI&gt;Observe tool-level usage, latency, errors, traces, and cost.&lt;/LI&gt;
&lt;LI&gt;Run multiple versions side by side.&lt;/LI&gt;
&lt;LI&gt;Promote changes safely.&lt;/LI&gt;
&lt;LI&gt;Automate deployment through APIs and Infrastructure as Code.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;This brings the full API management playbook to MCP. Instead of treating MCP servers as unmanaged agent extensions, organizations can operate them as governed enterprise resources.&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Example scenario&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Imagine a company building internal copilots for customer support, sales, and operations. Each copilot needs access to different tools:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Customer lookup&lt;/LI&gt;
&lt;LI&gt;Order history&lt;/LI&gt;
&lt;LI&gt;Case management&lt;/LI&gt;
&lt;LI&gt;Knowledge search&lt;/LI&gt;
&lt;LI&gt;Refund workflows&lt;/LI&gt;
&lt;LI&gt;Escalation workflows&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;With MCP and Azure API Management, the platform team can expose these capabilities as MCP servers and organize them into products. The customer support copilot can subscribe to the support product. The sales copilot can subscribe to the sales product. Early adopters can be routed to a preview version of a tool. Operations teams can monitor usage, errors, latency, traces, and cost. Platform teams can automate the entire setup across environments. The result is a more governed and scalable way to bring MCP-based tools into enterprise agent workflows.&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Getting started&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;To get started with MCP server management in Azure API Management:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Create or identify an MCP server you want to expose through Azure API Management.&lt;/LI&gt;
&lt;LI&gt;Add the MCP server as a managed resource in APIM.&lt;/LI&gt;
&lt;LI&gt;Add the MCP server to an APIM product.&lt;/LI&gt;
&lt;LI&gt;Configure access, subscriptions, quotas, and approval workflows.&lt;/LI&gt;
&lt;LI&gt;Enable observability to monitor tool-level usage and traces.&lt;/LI&gt;
&lt;LI&gt;Use versioning to manage preview and production versions.&lt;/LI&gt;
&lt;LI&gt;Use the Management API or Infrastructure as Code to automate configuration.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2&gt;&lt;STRONG&gt;Conclusion&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;MCP is quickly becoming an important standard for connecting agents to tools and enterprise capabilities. But for MCP to succeed in production, organizations need more than connectivity. They need governance, lifecycle management, observability, and automation. With these new MCP server management capabilities in Azure API Management, platform teams can manage MCP servers using the same trusted patterns they already use for APIs.&lt;/P&gt;
&lt;P&gt;MCP servers are now first-class APIM resources — productized, observable, versionable, and automatable. We are excited to see how customers use these capabilities to build the next generation of governed, enterprise-ready agentic applications.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jun 2026 03:18:33 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/productize-observe-version-and-automate-mcp-servers-in-azure-api/ba-p/4526931</guid>
      <dc:creator>anishta</dc:creator>
      <dc:date>2026-06-10T03:18:33Z</dc:date>
    </item>
    <item>
      <title>Logic Apps Aviators Newsletter - June 2026</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/logic-apps-aviators-newsletter-june-2026/ba-p/4526525</link>
      <description>&lt;P&gt;&lt;STRONG&gt;In this issue:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="#community--1-aceaviator" target="_blank" rel="noopener"&gt;Ace Aviator of the Month&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="#community--1-productnews" target="_blank" rel="noopener"&gt;News from our product group&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="#community--1-communitynews" target="_blank" rel="noopener"&gt;News from our community&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H1 id="aceaviator"&gt;Ace Aviator of the Month&lt;/H1&gt;
&lt;P&gt;&lt;STRONG&gt;June 2026's Ace Aviator:&amp;nbsp;Florian De Langhe&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;LinkedIn: &lt;A href="https://www.linkedin.com/in/floriandelanghe/" target="_blank" rel="noopener nofollow noreferrer"&gt;https://www.linkedin.com/in/floriandelanghe/&lt;/A&gt;&lt;/P&gt;
&lt;img&gt;Florian De Langhe Lead Expert/Team Lead - Microsoft Integration @ delaware&lt;/img&gt;
&lt;H5&gt;What's your role and title? What are your responsibilities?&lt;/H5&gt;
&lt;P&gt;Lead Expert/Team Lead for the Microsoft Integration team at delaware.&lt;BR /&gt;I have a wide range of responsibilities:&lt;BR /&gt;- People management&lt;BR /&gt;- Resource planning&lt;BR /&gt;- Design and operate our integration solutions at our customers, what we brand as "SmartLink".&lt;BR /&gt;&lt;BR /&gt;Next to this, as many of us, I follow the latest AI news closely to keep up to date and try to stay ahead of the curve.&lt;/P&gt;
&lt;H5&gt;Can you give us some insights into your day-to-day activities?&lt;/H5&gt;
&lt;P&gt;I wear many hats so no two days look the same. That is also what keeps it interesting.&lt;BR /&gt;&lt;BR /&gt;A typical day starts with reviewing resource planning across our active projects, followed by a technical design review for a new integration. Sprinkle some one-on-one coaching conversations and research into new technologies/features and you have my day.&lt;BR /&gt;&lt;BR /&gt;The balance between People leadership and hands-on technical work is what I enjoy most.&lt;/P&gt;
&lt;H5&gt;What motivates and inspires you to be an active member of the Aviators/Microsoft community?&lt;/H5&gt;
&lt;P&gt;I started out being an active member on the Microsoft Logic App forum 10 years ago. I remember going back and forth with Wagner through the forum posts trying to solve questions. Good times.&lt;BR /&gt;&lt;BR /&gt;Integration is one of those disciplines where you're constantly connecting systems, teams, and ideas. What motivates me is seeing how members of our community across different companies and countries solve similar problems in completely different ways. The Aviators community has that right mix of deep technical knowledge and willingness to help each other out. Since discovering Integration and the Microsoft community, I basically never left.&lt;/P&gt;
&lt;H5&gt;Looking back, what advice do you wish you had been given earlier?&lt;/H5&gt;
&lt;P&gt;Document everything and treat documentation as a deliverable, not an afterthought.&lt;BR /&gt;Early in my career I saw documentation as the boring part that you do after the development work.&lt;BR /&gt;Now I see it as the leverage point. A well-written design document doesn't just help the next person understand what you built, it compounds. It feeds code generation, easier onboarding of new members and validation with your customers on what and how to build it.&lt;/P&gt;
&lt;H5&gt;What has helped you grow professionally?&lt;/H5&gt;
&lt;P&gt;Two things:&lt;BR /&gt;1) Always challenge yourself and your implementations; everything can be better, so I am always pushing myself to keep learning, stay up to date, and think about every idea/solution posted in this community—how it could improve my way of thinking or solutions that I am building/have built.&lt;BR /&gt;2) Focus on understanding the integration concepts and patterns. At the end of the day everything is a pattern; it is how you implement where we make the difference. So knowing the base layer itself helps a lot when building integration solutions.&lt;/P&gt;
&lt;H5&gt;If you had a magic wand that could create a feature in Logic Apps, what would it be?&lt;/H5&gt;
&lt;P&gt;To be able to control scaling of the workflow service plans more fine grained. Being able to control this would unlock a lot of use cases, especially for the combination of Logic Apps and Service Bus concurrency and throughput.&lt;/P&gt;
&lt;HR /&gt;
&lt;H1 id="productnews"&gt;News from our product group&lt;/H1&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/write-logic-apps-in-c-introducing-the-logic-apps-standard-sdk/4524277" target="_blank" rel="noopener noreferrer"&gt;Write Logic Apps in C#: introducing the Logic Apps Standard SDK&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;This article introduces the Logic Apps Standard SDK (Microsoft.Azure.Workflows.Sdk), a code-first way to define Logic Apps Standard workflows in C#. Developers compose workflows using a fluent builder with strongly typed triggers and actions, including both built-in and managed connector operations. The SDK preserves the existing runtime, connectors, monitoring, and run history while changing only the authoring experience. It supports control flow constructs, custom C# code steps, and run-after conditions for fault handling. Guidance covers getting started in VS Code, project layout, local F5 execution, and preview limitations such as no service provider connectors and work-in-progress managed identity support.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/new-ai-gateway-capabilities-in-azure-api-management/4524604" target="_blank" rel="noopener noreferrer"&gt;New AI gateway capabilities in Azure API Management&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Azure API Management expands its AI gateway with a Unified Model API (preview) that lets clients use a single OpenAI-style format across providers, plus model aliases and discovery. GA updates include support for Anthropic and Google Vertex AI and content safety for MCP and Agent-to-Agent (A2A) traffic. Token observability now tracks cached, reasoning, and thinking tokens in Application Insights. Foundry import adds Anthropic API operations. A2A APIs reach GA with richer diagnostics and availability in classic tiers. Together, these features standardize governance, security, and observability for multi-model, multi-protocol AI applications.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/%F0%9F%8E%89-automation-just-became-a-team-sport-meet-azure-logic-apps-automation-/4524555" target="_blank" rel="noopener noreferrer"&gt;🎉 Automation just became a team sport. Meet Azure Logic Apps Automation.&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Azure Logic Apps Automation (public preview) is a new SKU that delivers a managed, SaaS-like experience for building and running workflow automations. It keeps the enterprise-grade Logic Apps engine while simplifying onboarding, collaboration, and governance with projects and applications, flexible permissions, and policy inheritance. The experience is AI-native with natural language authoring, first-class agents, tools via MCP, and managed sandboxes. It introduces a modern designer, draft mode, live run history, JavaScript expressions, elastic scale to zero, and knowledge-as-a-service integration—aimed at helping teams prototype quickly and operate securely at scale.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/%F0%9F%93%A2-announcing-knowledge-as-a-service-for-azure-logic-apps/4524601" target="_blank" rel="noopener noreferrer"&gt;📢 Announcing Knowledge as a Service for Azure Logic Apps&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Knowledge as a Service (public preview) provides a managed knowledge layer for Logic Apps that turns documents into a ready-to-use knowledge base without building a custom RAG pipeline. The service handles ingestion (parsing, chunking, embeddings) and retrieval (query rewriting, semantic search, ranking) and integrates with agentic workflows in Logic Apps Standard and the Automation SKU. On Standard, teams bring their own vector store and models; on Automation, the platform hosts them on behalf of the user. It supports Entra authentication and focuses on secure, grounded responses for agents and workflows.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/better-together-build-agents-in-microsoft-foundry-automate-them-with-azure-logic/4524557" target="_blank" rel="noopener noreferrer"&gt;Better Together: Build Agents in Microsoft Foundry, Automate them with Azure Logic Apps&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;This post outlines a combined stack for agentic applications: Microsoft Foundry for building and hosting agents, and Azure Logic Apps for invoking and orchestrating them. New capabilities let teams create or select Foundry agents directly from the Logic Apps designer, pair any trigger with an agent for autonomous execution, and expose 1,400+ Logic Apps connectors and entire workflows as agent tools. The approach enables agents to act across systems, handle long-running processes, and integrate with enterprise events, making deterministic workflows and AI-driven reasoning work together in production.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/whats-new-in-azure-api-management-at-microsoft-build-2026/4524683" target="_blank" rel="noopener noreferrer"&gt;What's new in Azure API Management at Microsoft Build 2026&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;This roundup covers Build 2026 updates for API Management and API Center: GA for agent registration, assessment, and Git sync in API Center, plus a data plane MCP server for enterprise discovery. API Management adds GA support for JSON‑RPC agent‑to‑agent (A2A) APIs and extends content safety controls to MCP and A2A flows. Unified Model API enters preview to standardize client integration across model providers, and AI Gateway expands to Anthropic and Vertex AI with broader token metrics. Platform enhancements include multi‑domain and wildcard custom hostnames in v2 tiers and workspace support on the built‑in gateway.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/azure-connector-namespaces-managed-integration-for-any-azure-compute/4524250" target="_blank" rel="noopener noreferrer"&gt;Azure Connector Namespaces: managed integration for any Azure compute&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Azure Connector Namespace (preview) offers a fully managed integration layer that brings the Logic Apps connector ecosystem to any Azure or self‑hosted compute without requiring a workflow engine. Apps call strongly typed SDKs for C#, Node.js, or Python to invoke actions and subscribe to triggers, while the namespace handles auth, token rotation, retries, throttling, and webhook delivery. It also projects connectors as MCP servers for agents, and supports hosted MCP servers like Playwright and Azure SQL. The post details building blocks, scenarios, security, governance, and preview limitations.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/whats-new-in-azure-logic-apps-at-microsoft-build-2026/4524685" target="_blank" rel="noopener noreferrer"&gt;What's new in Azure Logic Apps at Microsoft Build 2026&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;This Build 2026 overview highlights Logic Apps Automation (public preview), GA for the Logic Apps MCP Server to expose workflows as MCP tools, direct invocation of Microsoft Foundry agents from Logic Apps, Knowledge as a Service, and code‑first development with the Logic Apps Standard SDK (Codeful Workflows). It also introduces a Migration Agent to help modernize from legacy platforms. The theme is making enterprise‑grade automation more accessible while preserving governance, reliability, and operational controls for production use.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/hosted-mcp-servers-in-connector-namespace-preview/4524588" target="_blank" rel="noopener noreferrer"&gt;Hosted MCP Servers in Connector Namespace (Preview)&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Hosted MCP servers in Connector Namespace let teams deploy managed, enterprise‑ready MCP servers from a curated catalog in minutes. The platform handles deployment, scaling, authentication (inbound with Entra ID, outbound with managed identity or on‑behalf‑of), availability, and observability via Application Insights. Preview servers include Playwright for browser automation and Azure SQL via Data API Builder, enabling agents to use reliable tools without the overhead of self‑hosting. The post explains setup, benefits over self‑hosted servers, and areas of ongoing investment like catalog expansion and VNet support.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/mcp-test-console-and-git-repository-synch-in-azure-api-center/4524617" target="_blank" rel="noopener noreferrer"&gt;MCP Test Console and Git Repository synch in Azure API Center&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Azure API Center adds a built‑in MCP Test Console in the developer portal and Git repository synchronization for MCP servers and other assets. Developers can validate MCP tools interactively on the Documentation tab and browse server tiles with endpoints and schemas. Git sync keeps the API Center inventory aligned with source‑controlled definitions, with secure access via Key Vault and managed identity. Together, these additions streamline discovery, testing, and governance of MCP assets across the enterprise.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/bringing-all-your-integration-workloads-to-logic-apps-standard/4517262" target="_blank" rel="noopener noreferrer"&gt;Bringing all your Integration workloads to Logic Apps Standard&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;This post outlines Microsoft’s guided path for moving enterprise integration workloads—especially BizTalk—to Azure Logic Apps Standard. It introduces the open-source Logic Apps Migration Agent, which delivers an AI‑assisted, stage‑gated process across discovery, planning, baseline conversion, and continuous validation with human‑in‑the‑loop checkpoints. The workflow integrates with VS Code and GitHub Copilot, supports incremental “flow‑group” migration, and accommodates existing black‑box tests. The article also previews mission‑critical capabilities arriving for Standard and Hybrid (HL7, MLLP, Rules Engine, MSMQ, Oracle DB, flat‑file generation, Integration Accounts, and more), giving teams a repeatable, auditable modernization path with reduced risk.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/announcing-microsoft-host-integration-server-2028-modern-connectivity-for-ibm-ma/4517606" target="_blank" rel="noopener noreferrer"&gt;Announcing Microsoft Host Integration Server 2028: Modern connectivity for IBM Mainframes Midranges&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Host Integration Server 2028 (HIS 2028) is the next HIS release, delivered as a standalone SKU decoupled from BizTalk. It modernizes platform foundations (.NET 10) and, for non‑SNA features, introduces Linux support. New investments include Foundry integration for agent scenarios, REST APIs for DB2 and Transaction Integrator workloads, Entra ID and Azure Arc for hybrid management, a move to Visual Studio Code for designers, and alignment with newer IBM middleware. The post also lists product cleanup and deprecations (e.g., 32‑bit, WMI/WCF, BizTalk adapters), helping enterprises secure, govern, and operate host connectivity for years ahead.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/easy-auth-configuration-for-logic-app-standard-through-cicd/4520539" target="_blank" rel="noopener noreferrer"&gt;Easy Auth Configuration for Logic App Standard through CI/CD&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Enabling App Service Easy Auth on Logic Apps Standard can break run‑history views because SAS‑based runtime calls are blocked before the Logic Apps engine can validate them. This article explains two remedies: allow unauthenticated requests (so the runtime enforces its own auth), or keep Easy Auth strict and exclude runtime endpoints (e.g., /runtime/*) using authsettingsV2. It provides CI/CD‑ready approaches via ARM/Bicep templates or a post‑deployment REST API call, and highlights key settings such as requireAuthentication, unauthenticatedClientAction, excludedPaths, and allowedApplications. The guidance restores run‑history usability while maintaining enterprise authentication policies.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/run-javascript-code-on-agent-loop/4519880" target="_blank" rel="noopener noreferrer"&gt;Run Javascript code on Agent Loop&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Azure Logic Apps Agent Loop now supports a JavaScript code interpreter, extending earlier code‑execution support and enabling reliable computations, validations, and transformations alongside LLMs. The runtime executes generated or pre‑written code inside a V8 isolate using the isolated‑vm library, providing memory limits, timeouts, and failure isolation (not a full sandbox) to reduce blast radius. A worked example shows expense‑validation with agent tools orchestrated in a workflow. For Consumption, attaching an Integration Account provides isolated compute for the interpreter. The capability helps teams combine deterministic steps with agentic reasoning to deliver robust, auditable outcomes.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/bulk-configure-diagnostic-settings-on-azure-logic-apps-consumptions/4521454" target="_blank" rel="noopener noreferrer"&gt;Bulk-configure diagnostic settings on Azure Logic Apps Consumptions&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;LA‑BulkDiag is a single‑file PowerShell script that bulk‑applies diagnostic settings across Logic Apps Consumption in a resource group. It inventories workflows, supports quick scopes (bare/all/pick), verifies destinations, auto‑renames on name collisions, and ships with 129 Pester tests. Presets cover logs, metrics, and workflow‑runtime categories; selection grammar enables non‑interactive runs suitable for CI. The post includes quick‑start commands and clarifies scope: it targets Consumption only (not Standard) and doesn’t configure Event Hub sinks. The result is faster, consistent observability at scale without repetitive portal clicks or accidental overwrites.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/clean-up-idle-and-always-failing-azure-logic-app-consumption/4521728" target="_blank" rel="noopener noreferrer"&gt;Clean up idle and always-failing Azure Logic App Consumption&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;LA‑CleanUp is a PowerShell utility that scans a subscription for Logic Apps Consumption workflows, classifying them as Idle (no runs in N days) or AlwaysFailing (runs in the window with zero successes). It can export candidates to CSV, then guide per‑item deletion with y/N/q prompts, reporting final counts. Under the hood, it uses OData filters and $top=1 queries for fast server‑side checks, caches an ARM token once, and intentionally avoids cross‑subscription operations. Scope notes: it doesn’t touch Standard workflows or API connections. The tool reduces noise, costs, and operational drag from abandoned or broken apps.&lt;/P&gt;
&lt;HR /&gt;
&lt;H1 id="communitynews"&gt;News from our community&lt;/H1&gt;
&lt;H5&gt;&lt;A href="https://github.com/balbrench/cci-spec2integration" target="_blank" rel="noopener noreferrer"&gt;Spec2Integration&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://uk.linkedin.com/in/balbir-singh-b449352?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Balbir Singh&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Spec2Integration proposes a spec-driven approach to building Azure Integration Services solutions. The open-source toolkit guides teams from a product brief through specification, modeling, contracts, mapping, and architecture to a deployable implementation targeting Azure Logic Apps, Functions, and related services. It includes governance gates for idempotency, observability, retries, and PII handling, plus a VS Code extension that visualizes pipeline status and the integration representation. Templates and tooling support greenfield projects and BizTalk migrations. The result aims to standardize repeatable steps, reduce failure modes, and accelerate delivery while keeping architectural control outside individual workflows.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.linkedin.com/pulse/stateful-orchestration-azure-when-logic-apps-break-do-al-ghoniem-mba-xbbhc" target="_blank" rel="noopener noreferrer"&gt;Stateful Orchestration in Azure: When Logic Apps Break, and What to Do Instead&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://au.linkedin.com/in/alghoniem" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Al Ghoniem, MBA&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This article examines where stateful orchestration with Azure Logic Apps can fall short and how to design around those gaps. It differentiates execution state from business state and highlights common failure modes: long-running instances, retry-induced duplicates, partial completion across SAP/Oracle/APIs, lost correlation, and unowned DLQs. It then contrasts orchestration choices—stateful Logic Apps, Durable Functions, Service Bus–backed orchestration, and choreography—emphasizing idempotency, correlation, reconciliation, and compensation. The guidance steers architects toward a control and observability layer so production incidents can be traced, replayed, and recovered without relying on workflow run history alone.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.youtube.com/watch?v=zjRm58mFTqY" target="_blank" rel="noopener noreferrer"&gt;Logic Apps Announcements at Microsoft Build&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Video by &lt;A href="https://de.linkedin.com/in/sebastianmeyerit?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Sebastian Meyer&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This video recaps Logic Apps announcements from Microsoft Build with insights from a member of the product team. It highlights newly introduced capabilities and shares resources for deeper dives. Viewers get a concise overview of what’s new, why it matters for integration practitioners, and where to learn more. The discussion points architects toward practical use cases and next steps, making it a useful primer for anyone assessing roadmap impacts on existing or upcoming Azure Integration Services projects.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.linkedin.com/pulse/logic-apps-standard-vs-consumption-which-plan-should-you-choose-azl8e?trk=public_post_feed-article-content" target="_blank" rel="noopener noreferrer"&gt;Logic Apps Standard vs. Consumption: Which Plan Should You Choose?&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://ae.linkedin.com/in/chiranjibghatak?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Chiranjib Ghatak&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The article compares Logic Apps Standard and Consumption, explaining differences in hosting models, pricing, networking, and development experience. It outlines when to pick each plan, noting Standard’s single-tenant model, VNet/private endpoints, built-in connectors, and local DevOps workflow, versus Consumption’s pay-per-execution model and simplicity for sporadic or low-volume workloads. It also covers performance trade-offs, stateful vs. stateless options available in Standard, and typical enterprise scenarios where Standard provides predictable costs and better throughput.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://sahinozdemir.nl/azure-connector-namespaces-managed-connectors-beyond-logic-apps" target="_blank" rel="noopener noreferrer"&gt;Azure Connector Namespaces: Managed Connectors Beyond Logic Apps&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://nl.linkedin.com/in/%C5%9Fahin-%C3%B6zdemir-2058666?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Şahin Özdemir&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This post introduces Azure Connector Namespaces and previews managed connectors for Azure Functions, extending the Logic Apps connector ecosystem to more compute services. It explains the motivation, how namespaces decouple connectors from workflows, and the benefits: reduced custom code, consistent authentication via managed identity, and reuse of Microsoft-managed integrations. A step-by-step walkthrough shows creating a namespace, adding a managed connector, and using the Azure Connectors .NET SDK in Functions, illustrating how teams can standardize connectivity while keeping business logic in code.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.sonnygillissen.nl/blog/azure/azure-logic-apps/stop-working-harder-and-start-flowing-smarter-with-logic-apps-automation/" target="_blank" rel="noopener noreferrer"&gt;Stop working harder and start flowing smarter, with Logic Apps Automation&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://nl.linkedin.com/in/sonnygillissen?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Sonny Gillissen&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Sonny Gillissen explores Logic Apps Automation, a new, governed experience for building enterprise automations. He explains the Project → Application → Workflow model, dedicated portal (auto.azure.com), and reusable Sandboxes for agent code. The post shows how the AI assistant can scaffold workflows from intent, with Knowledge sources to ground agents, while monitoring and analytics provide visibility. Benefits include familiar Logic Apps design, reduced operational overhead, and scale-to-zero. Current gaps are noted—OBO auth shift, occasional assistant syntax issues, managed vs. built‑in connector choices, no migration tooling yet, and pending VNet/private endpoint support.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://anithasantosh.wordpress.com/2026/05/05/dixf-export-with-dynamic-filter-using-logic-apps/" target="_blank" rel="noopener noreferrer"&gt;Stop Using Static Filters! Automate DIXF Exports with Logic App&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://uk.linkedin.com/in/anithaeswaran?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Anitha Eswaran&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Anitha Eswaran demonstrates how to make DIXF exports in D365FO dynamic using Azure Logic Apps and a small X++ customization. A custom OData action updates the DIXF Definition Group filter at runtime based on a parameter such as Customer Group. A Logic App triggered by a business event parses the input, stores the value, calls the OData action, invokes the standard ExportToPackage API, and then retrieves the download URL via GetExportedPackageUrl to fetch the ZIP with a time‑limited SAS token. Screenshots and code samples illustrate the end‑to‑end flow and implementation details.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.youtube.com/watch?v=yF8YB6ag_HY" target="_blank" rel="noopener noreferrer"&gt;Logic Apps Agent Loops: Master Class&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Video by &lt;A href="https://www.linkedin.com/in/stephen-w-thomas?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Stephen W Thomas&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Stephen W Thomas compiles his full Logic Apps Agent Loop series into one master‑class video. It covers getting started with Agent Loop on Logic Apps Standard, a human‑in‑the‑loop pattern used to resolve failed code translations, interactive chat agents with secure website embedding via Easy Auth, and when to choose the Consumption tier for simpler, pay‑as‑you‑go deployments. The chaptered format lets viewers jump to relevant topics. The emphasis is on the orchestration pattern—agents that select and compose tools to achieve goals—offering a practical foundation for teams moving from deterministic workflows toward agentic automation.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://dev.to/imdj/forget-sampling-this-one-hostjson-setting-cuts-logic-apps-telemetry-costs-by-80-2dpj" target="_blank" rel="noopener noreferrer"&gt;Forget Sampling — This One host.json Setting Cuts Logic Apps Telemetry Costs by 80%&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://be.linkedin.com/in/danielj45?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Daniel Jonathan&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This article tackles high Application Insights ingestion costs in Logic Apps Standard and shows a data‑driven path to reduce spend. Through a controlled experiment, it demonstrates that switching Runtime.ApplicationInsightTelemetryVersion to v2 in host.json delivers ~80% reduction without sacrificing troubleshooting. Further options include disabling dependency tracking (eliminates AppDependencies with the trade‑off of losing per‑call HTTP detail) and using adaptive sampling for marginal additional savings, while excluding exceptions. It also explains why some run‑level telemetry bypasses sampling and how to toggle sampling via an environment variable for short‑term diagnostics.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://www.linkedin.com/pulse/production-only-truth-integration-marcelo-gomes-bwlne?trk=public_post_feed-article-content" target="_blank" rel="noopener noreferrer"&gt;Production Is the Only Truth in Integration&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://pt.linkedin.com/in/marcelogomesdasilva/en?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Marcelo Gomes&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This piece reframes integration success through a production‑first lens. It argues that reliability emerges when systems are designed for failure as the norm, not the exception. The article urges separating orchestration from business logic—using tools like Azure Logic Apps for coordination and Azure Functions for rules and transformations—to keep retries safe and evolution predictable. It positions production‑readiness as a design concern, emphasizing idempotency, replay, observability, runbooks, and ownership. The practical outcome is reduced operational risk and cost, more predictable behavior, and greater business trust in automated processes.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://youtu.be/GhSlwiGYzd8" target="_blank" rel="noopener noreferrer"&gt;DevUP Talks #05 – Logic Apps Tips &amp;amp; Tricks with Sandro Pereira&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Video by &lt;A href="https://se.linkedin.com/in/logdberg?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Mattias Lögdberg&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;In this session, Sandro Pereira distills practical guidance from real projects to help teams build more resilient Logic Apps. Topics include applying environment‑specific timer conditions, deploying Logic Apps in a disabled state to control activation during releases, and using User‑Managed Identity with Azure Service Bus in Logic Apps Standard. The video focuses on patterns that improve reliability, security, and operational control across environments, offering actionable advice for developers and architects working in Azure Integration Services who want fewer surprises in production and a smoother deployment lifecycle.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://blog.sandro-pereira.com/2026/05/06/logic-apps-service-bus-user-assigned-managed-identity/" target="_blank" rel="noopener noreferrer"&gt;Logic Apps: Service Bus with User‑Assigned Managed Identity&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://pt.linkedin.com/in/sandropereira?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Sandro Pereira&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This best‑practices guide shows how to configure the Azure Service Bus connector in Logic Apps Standard to use a user‑assigned managed identity. Sandro Pereira explains why system‑assigned identities complicate CI/CD—RBAC can’t be fully declared until the identity exists—then demonstrates a pattern that keeps deployments reproducible. The approach uses app settings for the Service Bus namespace and identity resource ID, a custom serviceProviderConnections entry referencing those settings, and workflow actions bound to that connection. The result is secretless, declarative authentication that avoids RBAC timing issues across environments.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://blog.sandro-pereira.com/2024/02/09/logic-app-consumption-bulk-failed-runs-resubmit-tool/" target="_blank" rel="noopener noreferrer"&gt;Logic App Consumption Bulk Failed Runs Resubmit Tool&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://pt.linkedin.com/in/sandropereira?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Sandro Pereira&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Sandro Pereira introduces a small .NET Windows utility that lists and bulk resubmits failed Logic Apps Consumption runs. After authenticating to Azure, users supply the Logic App name, resource group and subscription. The tool can optionally filter by a date range, otherwise it returns up to 250 failed runs for fast triage. It targets a common pain point the portal features don’t fully streamline and includes a link to the GitHub source so teams can adapt or integrate it into operational workflows. A concise “one‑minute brief” outlines the problem and practical benefits.&lt;/P&gt;
&lt;H5&gt;&lt;A href="https://blog.sandro-pereira.com/2026/04/30/control-initial-state-logic-apps-standard-workflows/" target="_blank" rel="noopener noreferrer"&gt;Control the Initial State of Logic Apps Standard Workflows&lt;/A&gt;&lt;/H5&gt;
&lt;P&gt;Post by &lt;A href="https://pt.linkedin.com/in/sandropereira?trk=public_post_feed-actor-name" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;EM&gt;Sandro Pereira&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This tip explains how to prevent Logic Apps Standard workflows from starting immediately after deployment—a common production risk. Instead of a state property in ARM/Bicep, the initial state is controlled via App Settings on the underlying App Service. By setting Workflows..FlowState to Disabled (in local.settings.json and/or app settings), teams ensure workflows deploy in a safe, non‑running state. The article outlines the rationale, differences from Consumption, and provides concrete examples and screenshots to adopt the practice across environments.&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jun 2026 19:10:51 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/logic-apps-aviators-newsletter-june-2026/ba-p/4526525</guid>
      <dc:creator>WSilveira</dc:creator>
      <dc:date>2026-06-08T19:10:51Z</dc:date>
    </item>
    <item>
      <title>Write Logic Apps in C#: introducing the Logic Apps Standard SDK</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/write-logic-apps-in-c-introducing-the-logic-apps-standard-sdk/ba-p/4524277</link>
      <description>&lt;H3&gt;The workflow you always wished you could write in code&lt;/H3&gt;
&lt;P&gt;If you build on Logic Apps Standard, you already know the deal: the runtime is excellent at the unglamorous parts of integration - connecting to systems, retrying, scaling, keeping run history you can actually debug. What you sometimes wanted was a different front door. You're a .NET developer. You live in C#, source control, and pull requests. And for a long time, authoring a workflow meant leaving all of that behind for a visual designer and a JSON file.&lt;/P&gt;
&lt;P&gt;That's the gap the new Logic Apps Standard SDK closes. It lets you define Logic Apps Standard workflows in code - strongly typed, IntelliSense-guided C# - without giving up a single thing the runtime already does for you.&lt;/P&gt;
&lt;H3&gt;What is the Logic Apps Standard SDK?&lt;/H3&gt;
&lt;P&gt;The Logic Apps Standard SDK (Microsoft.Azure.Workflows.Sdk) is a NuGet package that gives you a fluent, code-first way to build workflow definitions in C#. Instead of dragging actions onto a canvas, you compose a workflow with method chaining: a trigger, then the actions that follow it, all the way to a response.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Worth saying clearly, because people ask:&lt;/STRONG&gt;&lt;EM&gt; &lt;/EM&gt;this is a new way to &lt;EM&gt;define&lt;/EM&gt; workflows - not a new runtime. The workflows you write with the SDK compile down to the same definitions and run on the same Logic Apps Standard runtime you use today. Same connectors. Same hosting. Same rich run history and monitoring. You're changing the authoring experience, not the engine underneath it.&lt;/P&gt;
&lt;img /&gt;
&lt;H3&gt;Why this matters for developers&lt;/H3&gt;
&lt;P&gt;When your workflow lives in C#, it behaves like the rest of your code. A few things fall out of that almost for free:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Type safety and IntelliSense&lt;/STRONG&gt; - connector operations, triggers, and outputs are discoverable as you type, and the compiler catches mistakes before you run anything.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Real source control and reviews&lt;/STRONG&gt; - workflows diff like code, get reviewed in pull requests, and version alongside the services they orchestrate.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Familiar tooling&lt;/STRONG&gt; - refactor, debug with F5, and lean on the .NET ecosystem you already know.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Extensibility on your terms &lt;/STRONG&gt;— Compose your workflow declaratively with the fluent builder, then drop into plain imperative C# wherever a step needs logic that might be too complex to implement declaratively - loops, branching, a call into your own library, all encapsulated in a step of your workflow - without leaving the file or the language.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;And it isn't limited to one style of work. The SDK covers both &lt;STRONG&gt;enterprise integration&lt;/STRONG&gt; workflows - the connect-systems-and-move-data scenarios Logic Apps is known for - and &lt;STRONG&gt;agentic workflows&lt;/STRONG&gt;, where a conversational or autonomous AI agent drives the steps. Both are first-class in the same SDK, built from the same building blocks.&lt;/P&gt;
&lt;P&gt;There's one more angle worth calling out, because it's becoming hard to ignore: &lt;STRONG&gt;coding agents are simply better at writing imperative code than declarative JSON&lt;/STRONG&gt;. And the reason is the same set of guardrails that helps you. Strong typing and a compilation step mean the code an agent produces is syntactically correct out of the gate — the type system and the compiler do the checking, so you don't have to. Layer unit tests on top and you've covered north of 90% of what matters; what's left is integration testing. Getting an LLM to the same level of accuracy against declarative JSON means building dedicated tooling to stand in for everything the compiler gives you for free. With code-first workflows, those guardrails are just there — which makes this a natural fit for an agent-assisted way of building.&lt;/P&gt;
&lt;H3&gt;Getting started&lt;/H3&gt;
&lt;P&gt;Everything here lives in the Logic Apps extension for VS Code. You'll want the &lt;STRONG&gt;Logic Apps Standard VS Code extension version 5.961.10&lt;/STRONG&gt; or later, which includes all the components you need to create code first workflows. Beyond that, the prerequisites are the ones you'd expect - VS Code with the Logic Apps extension, an Azure subscription you can create resources in, and a working comfort with C# and .NET.&lt;/P&gt;
&lt;P&gt;From a clean start, you're a handful of steps from a running workflow:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Create the workspace &lt;/STRONG&gt;— launch the Logic Apps extension and choose Create new Logic Apps workspace. Pick a folder, name the workspace and project, and when prompted for the workflow type, choose Logic Apps codeful - that's the code-first option that uses the SDK.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Pick a workflow kind&lt;/STRONG&gt; - name your first workflow and choose how it runs: Stateful, Autonomous agents (Preview), or Conversational agents (Preview). The agent options are where the agentic scenarios live.&lt;/LI&gt;
&lt;/OL&gt;
&lt;img /&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Enable connectors&lt;/STRONG&gt; - when prompted, select Use connectors from Azure, choose your subscription and resource group, and pick Connection Keys for authentication. Managed identity is still in development, so connection keys are the way in for now.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Find your way around&lt;/STRONG&gt; - the project opens with Program.cs, which builds and starts the host, plus a workflow file (like workflow1.cs) where your trigger and actions are defined. The SDK compiles those definitions and runs them on the Logic Apps runtime.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Run it&lt;/STRONG&gt; - press F5 (or right-click Program.cs and pick Overview). The runtime starts locally and an overview page opens where you can fire triggers, watch run history, and inspect inputs and outputs.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;That last part is worth dwelling on: run history for SDK workflows uses the same rich visual view as designer-built ones. You author in code, but you monitor and troubleshoot exactly as you always have.&lt;/P&gt;
&lt;img /&gt;
&lt;H3&gt;A look at the capabilities&lt;/H3&gt;
&lt;H4&gt;Connectors and triggers&lt;/H4&gt;
&lt;P&gt;Every workflow starts with a trigger and runs a series of actions. The SDK exposes both through two entry points - WorkflowTriggers and WorkflowActions - each split into BuiltIn and Managed.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Built-in&lt;/STRONG&gt; triggers and actions run directly in the runtime: HTTP request, recurrence, and the conversational agent trigger; actions like Compose, HTTP, Response, and custom code.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Managed&lt;/STRONG&gt; connectors give you the full Logic Apps connector catalog - Service Bus, SharePoint, SQL, and hundreds more - typed and ready to call.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The managed surface is generated from the same connector definitions the designer uses, so the operations you know are right there:&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;// Built-in trigger 
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
  
// Managed connector action — full catalog, strongly typed 
var getItems = WorkflowActions.Managed 
    .Sharepointonline("sharepoint") 
    .GetItems( 
        dataset: () =&amp;gt; "https://contoso.sharepoint.com", 
        table: () =&amp;gt; "orders-list-id") 
    .WithName("GetOrders"); &lt;/LI-CODE&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="0" style="width: 100%; border-width: 0px;"&gt;&lt;colgroup&gt;&lt;col style="width: 50%" /&gt;&lt;col style="width: 50%" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border-width: 0px;"&gt;&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;td style="border-width: 0px;"&gt;&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H3&gt;The fluent API streamlines the definition&lt;/H3&gt;
&lt;P&gt;This is where it comes together. You compose a workflow by chaining operations with .Then(...). The shape of your code mirrors the shape of your workflow - read it top to bottom and you read the execution path.&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;trigger 
    .Then(validateOrder) 
    .Then(getOrders) 
    .Then(sendResponse); &lt;/LI-CODE&gt;
&lt;P&gt;Control flow is part of the same fluent model. Built-in structures like Condition (if/else) and ForEach - along with Switch, Until, Scope, and Terminate - are just actions you chain in, each taking a small factory for the branch or loop body:&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;var checkTotal = WorkflowActions.BuiltIn.Control.Condition( 
    expression: () =&amp;gt; order.Total &amp;gt; 1000, 
    trueBranch:  () =&amp;gt; requireApproval, 
    falseBranch: () =&amp;gt; autoApprove 
).WithName("CheckOrderValue"); &lt;/LI-CODE&gt;
&lt;P&gt;And ForEach takes the collection to iterate and a factory that builds the body for each item:&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;var processLines = WorkflowActions.BuiltIn.Control.ForEach( 
    items: () =&amp;gt; order.LineItems, 
    actions: (item) =&amp;gt; new WorkflowBuiltInActions() 
        .Compose(inputs: () =&amp;gt; $"Line: {item}").WithName("HandleLine") 
).WithName("ProcessLineItems"); &lt;/LI-CODE&gt;
&lt;P&gt;Need parallel branches that fan back in? The same Then pattern handles branching and join - no JSON wiring, no run-after blocks to hand-edit.&lt;/P&gt;
&lt;H3&gt;Extending workflows with custom code&lt;/H3&gt;
&lt;P&gt;Some logic doesn't belong in a connector or an expression - it's just code. The CustomCode action lets you drop a real C# method into the middle of a workflow. It receives a WorkflowContext, so you can read the trigger payload or any earlier action's results and return a strongly typed value the next step can use:&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;var enrich = WorkflowActions.BuiltIn.CustomCode&amp;lt;string&amp;gt;(async (context) =&amp;gt; 
{ 
    var trigger = await context.GetTriggerResults(); 
    var order   = await context.GetActionResults("GetOrders"); 
    // your logic, your libraries, your types 
    return "enriched"; 
}).WithName("EnrichOrder"); &lt;/LI-CODE&gt;
&lt;P&gt;That's the escape hatch that keeps you in flow: when a step needs custom transformation, validation, or a call into your own libraries, you write a method instead of bending an expression to do something it was never meant to.&lt;/P&gt;
&lt;H3&gt;Handling failures: try/catch with run-after&lt;/H3&gt;
&lt;P&gt;Real workflows have to deal with things going wrong, and the SDK gives you the same try/catch shape Logic Apps has always had - expressed in code. The .Then(...) overload takes a FlowStatus[] run-after condition, so a handler runs only when the step before it ends in a status you name. Wrap the risky work in a Scope (your &lt;EM&gt;try&lt;/EM&gt;), then chain a handler that runs after it Failed or TimedOut (your &lt;EM&gt;catch&lt;/EM&gt;):&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;var tryProcess = WorkflowActions.BuiltIn.Control.Scope(() =&amp;gt; 
    callPaymentApi.Then(saveOrder) 
).WithName("ProcessPayment"); 

var handleFailure = WorkflowActions.BuiltIn 
    .Compose(inputs: () =&amp;gt; "Payment failed — compensating") 
    .WithName("HandleFailure"); 

trigger 
    .Then(tryProcess) 
    .Then(handleFailure, 
        runAfter: new[] { FlowStatus.Failed, FlowStatus.TimedOut }); &lt;/LI-CODE&gt;
&lt;P&gt;The status set is the whole vocabulary: Succeeded, Failed, Skipped, and TimedOut. Combine them however a step needs - a cleanup action that should run no matter what can list every status; a &lt;EM&gt;finally&lt;/EM&gt; is just the union.&lt;/P&gt;
&lt;P&gt;The same idea scales to fan-in. When several parallel branches converge, the per-predecessor RunAfter overload lets the join wait on each branch independently - so you can require some to succeed and tolerate others failing:&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;leftChain 
    .Join(rightChain) 
    .Then(merge, runAfter: new[] 
    { 
        new RunAfter(leftChain,  FlowStatus.Succeeded), 
        new RunAfter(rightChain, FlowStatus.Succeeded), 
    }); &lt;/LI-CODE&gt;
&lt;H3&gt;Putting it together&lt;/H3&gt;
&lt;P&gt;Here's a small but complete shape - an HTTP-triggered order workflow that validates input, branches on order value, loops over line items, runs custom code, and replies. The core steps live in a Scope so a single failure handler can catch anything that goes wrong, and a clean reply only runs when the work succeeds. Notice it's all one readable chain:&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;namespace LogicApps
{
    using Microsoft.Azure.Workflows.Sdk;
    using Microsoft.Azure.Workflows.Sdk.Connectors.Msnweather;
    using System.Net;

    public class OrderWorkflow : IWorkflowProvider
    {
        /// &amp;lt;summary&amp;gt;
        /// Gets the HTTP request/response workflow definition.
        /// &amp;lt;/summary&amp;gt;
        public FlowDefinition[] GetWorkflows()
        {
            // --- Trigger ----------------------------------------------------
            var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();


            // --- Managed connector action (full catalog, strongly typed) ----
            // Reused verbatim from the confirmed stateful1.cs pattern.
            var getWeather = WorkflowActions.Managed.Msnweather("msnweather").CurrentWeather(
                location: () =&amp;gt; "98058",
                units: () =&amp;gt; unitsInput.Imperial).WithName("GetWeather");

            // --- Custom code: real C# in the middle of the workflow ---------
            var enrich = WorkflowActions.BuiltIn.CustomCode&amp;lt;string&amp;gt;(async (context) =&amp;gt;
            {
                var triggerResults = await context.GetTriggerResults();
                var weather = await context.GetActionResults("GetWeather");
                // your logic, your libraries, your types
                return "enriched";
            }).WithName("EnrichOrder");

            // --- ForEach over a collection (control flow via .Control) -------
            var processLines = WorkflowActions.BuiltIn.Control.ForEach(
                items: () =&amp;gt; trigger.TriggerOutput.Body["lineItems"],
                actions: (item) =&amp;gt; WorkflowActions.BuiltIn
                    .Compose(inputs: () =&amp;gt; $"Line: {item}").WithName("HandleLine")
            ).WithName("ProcessLineItems");

            // --- Condition (if/else) (control flow via .Control) ------------
            var checkTotal = WorkflowActions.BuiltIn.Control.Condition(
                expression: () =&amp;gt; true,
                trueBranch: () =&amp;gt; processLines,
                falseBranch: () =&amp;gt; WorkflowActions.BuiltIn
                    .Compose(inputs: () =&amp;gt; "Auto-approved").WithName("AutoApprove")
            ).WithName("CheckOrderValue");

            // --- Scope groups the core steps so one handler catches failures -
            var processOrder = WorkflowActions.BuiltIn.Control.Scope(() =&amp;gt;
                checkTotal
                    .Then(getWeather)
                    .Then(enrich)
            ).WithName("ProcessOrder");

            // --- Responses --------------------------------------------------
            var ok = WorkflowActions.BuiltIn.Response(
                responseBody: () =&amp;gt; "Order processed").WithName("Reply");

            var failed = WorkflowActions.BuiltIn.Response(
                statusCode: () =&amp;gt; HttpStatusCode.InternalServerError,
                responseBody: () =&amp;gt; "Order failed").WithName("ReplyFailed");

            // --- Assemble ---------------------------------------------------
            // Happy path runs after the Scope Succeeded; the handler runs after
            // Failed or TimedOut.
            trigger
                .Then(processOrder)
                .Then(ok, runAfter: new[] { FlowStatus.Succeeded })
                .Then(failed, runAfter: new[] { FlowStatus.Failed, FlowStatus.TimedOut });

            return new[] { WorkflowFactory.CreateStatefulWorkflow("OrderWorkflow", trigger) };
        }
    }
}&lt;/LI-CODE&gt;
&lt;P&gt;That last stretch is the best-practice shape in miniature: the happy-path Reply runs only after the Scope Succeeded, while a separate handler catches Failed or TimedOut and returns a 500 - no exception plumbing, just run-after conditions.&lt;/P&gt;
&lt;P&gt;You implement IWorkflowProvider, hand your trigger graph to WorkflowFactory as a stateful, stateless, or agent workflow, and the host registers it. Run it with F5 and the Logic Apps runtime starts locally - same as any Standard project.&lt;/P&gt;
&lt;H3&gt;Before you build: preview realities&lt;/H3&gt;
&lt;P&gt;I'd rather you go in clear-eyed. While the SDK is in public preview, keep these in mind:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Service Provider connectors aren't supported yet&lt;/STRONG&gt; - that connector type is coming in a future release.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Dynamic schemas aren't supported&lt;/STRONG&gt; - support is planned.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Custom code supports callback methods only&lt;/STRONG&gt; - inline lambdas aren't available in this version.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Define and name actions before referencing them&lt;/STRONG&gt; - name an action before using it as a dependency elsewhere.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Managed identity authentication is in development&lt;/STRONG&gt; - use connection keys for connectors in the meantime.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Try it, and tell us what you think&lt;/H3&gt;
&lt;P&gt;If you've ever wanted your workflows to live where the rest of your code lives - in C#, in source control, in your pull requests - this is for you. Install the Logic Apps extension for VS Code, create a Logic Apps codeful project, and build your first workflow in code.&lt;/P&gt;
&lt;P&gt;This is a preview, which means your feedback genuinely shapes where it goes - which capabilities come next, where the rough edges are.&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://github.com/Azure/LogicAppsUX/issues" target="_blank" rel="noopener"&gt;Bring issues, feature requests and feedback to our GitHub page&lt;/A&gt;. I read it. Let's make code-first workflows something you actually want to use.&lt;/P&gt;
&lt;H3&gt;Related content&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/logic-apps/standard-sdk/create-workflows-with-csharp" target="_blank"&gt;Create Standard workflow projects with the SDK&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/logic-apps/standard-sdk/logic-apps-standard-sdk" target="_blank"&gt;Logic Apps Standard SDK class library&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Mon, 08 Jun 2026 21:52:53 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/write-logic-apps-in-c-introducing-the-logic-apps-standard-sdk/ba-p/4524277</guid>
      <dc:creator>WSilveira</dc:creator>
      <dc:date>2026-06-08T21:52:53Z</dc:date>
    </item>
    <item>
      <title>New AI gateway capabilities in Azure API Management</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/new-ai-gateway-capabilities-in-azure-api-management/ba-p/4524604</link>
      <description>&lt;P&gt;Multi-model, multi-protocol AI applications are quickly becoming the norm. Teams are mixing OpenAI, Anthropic, and Vertex AI models, exposing tools through MCP, and wiring agents together with A2A. As that surface grows, so does the work of keeping it secure, observable, and consistent.&lt;/P&gt;
&lt;P&gt;Our ongoing strategy for the AI gateway capabilities in Azure API Management centers on that problem: providing one place to manage models, MCP tools, and agents, no matter which provider or protocol is behind them. The updates below are the latest steps in that direction.&lt;/P&gt;
&lt;H2 data-heading="Unified Model API (preview)"&gt;Unified Model API (preview)&lt;/H2&gt;
&lt;P&gt;The headline change in this release: the &lt;STRONG&gt;Unified Model API&lt;/STRONG&gt; lets clients speak one API format — OpenAI Chat Completions — while API Management transforms requests to the backend provider, whether that's a model using OpenAI Chat Completions or Anthropic Messages API.&lt;/P&gt;
&lt;P&gt;By centralizing model access behind a single API layer, you can:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Standardize on a single API format&lt;/STRONG&gt; for clients, independently from the formats used by backend models.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Unify observability, security, and governance&lt;/STRONG&gt; with policies that apply across model providers.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Configure failover&lt;/STRONG&gt; across model providers.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Decouple client-facing model names from backend model names&lt;/STRONG&gt; using aliases.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://aka.ms/apimdocs/unified-model-api" target="_blank" rel="noopener"&gt;Learn more about the unified model API.&lt;/A&gt;&lt;/P&gt;
&lt;H3 data-heading="Model aliases"&gt;Model aliases&lt;/H3&gt;
&lt;P&gt;Model aliases give clients a stable, provider-neutral name to use when calling a model. By assigning an alias like gpt or claude-sonnet, you decouple the client-facing model name from the actual backend deployment.&lt;/P&gt;
&lt;P&gt;That makes a few common operations a lot easier:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Upgrading a model.&lt;/STRONG&gt; Update the alias target to point at a new version — no client code changes required.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;A/B tests.&lt;/STRONG&gt; Shift traffic between backends behind the same alias using API Management's load balancing capabilities.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Vendor swaps.&lt;/STRONG&gt; Replace one provider with another without touching application code.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 data-heading="Model discovery"&gt;Model discovery&lt;/H3&gt;
&lt;P&gt;Developers can discover available models by calling the /models endpoint of the Unified Model API. API Management returns the list of model aliases, so apps and tools can adapt to what the platform team has published — without out-of-band documentation.&lt;/P&gt;
&lt;H2 data-heading="Anthropic and Vertex AI models (GA)"&gt;Anthropic and Vertex AI models (GA)&lt;/H2&gt;
&lt;P&gt;AI gateway policies and observability now work with Anthropic and Google Vertex AI models, alongside the providers we already support.&lt;/P&gt;
&lt;P&gt;You can:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Apply runtime policies such as content safety, token limits, and semantic caching to Anthropic and Vertex AI traffic.&lt;/LI&gt;
&lt;LI&gt;Collect logs, traces, and metrics for these models in the same place as the rest of your AI traffic.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If you're running a multi-provider setup, you no longer need a separate governance story for each vendor.&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/api-management/genai-gateway-capabilities" target="_blank" rel="noopener"&gt;Learn more about AI gateway capabilities in API Management.&lt;/A&gt;&lt;/P&gt;
&lt;H2 data-heading="Anthropic API operations in Microsoft Foundry import"&gt;Anthropic API operations in Microsoft Foundry import&lt;/H2&gt;
&lt;P&gt;When you import a Microsoft Foundry resource as an API in Azure API Management, the import now creates operations for &lt;STRONG&gt;Anthropic APIs&lt;/STRONG&gt; alongside the existing model APIs. In a few clicks, you can stand up an API that mediates traffic to Foundry models using either the OpenAI or Anthropic API format — no manual operation definitions needed — and then apply the same policies, security, and observability you use for the rest of your AI traffic.&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/api-management/azure-ai-foundry-api" target="_blank" rel="noopener"&gt;Learn more about Microsoft Foundry import.&lt;/A&gt;&lt;/P&gt;
&lt;H2 data-heading="Token metrics for additional token types (preview)"&gt;Token metrics for additional token types (preview)&lt;/H2&gt;
&lt;P&gt;Token tracking used to stop at prompt, completion, and total tokens. Modern models add cached, reasoning, and thinking tokens, which can make up a significant share of token consumption, cost, and latency.&lt;/P&gt;
&lt;P&gt;API Management now logs metrics for these additional token types into Application Insights, across API formats (OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages API) and providers (Microsoft Foundry, OpenAI, Amazon Bedrock, Google Vertex AI, and others).&lt;/P&gt;
&lt;P&gt;With richer signals, your cost dashboards, budget alerts, and capacity planning can actually reflect how today's models behave.&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/api-management/llm-emit-token-metric-policy" target="_blank" rel="noopener"&gt;Learn more about token metrics.&lt;/A&gt;&lt;/P&gt;
&lt;H2 data-heading="Content safety for MCP and A2A (GA)"&gt;Content safety for MCP and A2A (GA)&lt;/H2&gt;
&lt;P&gt;The llm-content-safety policy now covers MCP and A2A traffic in addition to LLM traffic. That includes MCP tool-call arguments, MCP response text, and A2A payloads.&lt;/P&gt;
&lt;P&gt;A couple of related improvements:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;llm-content-safety can now be configured directly as an outbound policy.&lt;/LI&gt;
&lt;LI&gt;Two new attributes — window-size and window-overlap-size — let you tune how messages exceeding the Azure Content Safety limit of 10,000 characters are chunked and forwarded for validation, balancing detection sensitivity with Azure Content Safety call volume.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The result is one consistent safety policy across LLM, MCP, and A2A flows instead of stitching together custom filters per protocol.&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/api-management/llm-content-safety-policy" target="_blank" rel="noopener"&gt;Learn more about the content safety policy.&lt;/A&gt;&lt;/P&gt;
&lt;H2 data-heading="A2A APIs (GA)"&gt;A2A APIs (GA)&lt;/H2&gt;
&lt;P&gt;Support for Agent-to-Agent (A2A) APIs in API Management is now generally available. Agent APIs can now be governed with the same policies, identity, and observability you use for the rest of your APIs.&lt;/P&gt;
&lt;P&gt;What you can do with A2A APIs in API Management:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Mediate JSON-RPC runtime operations&lt;/STRONG&gt; to your agent backend with full policy support — including the content safety improvements above.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Expose and manage agent cards&lt;/STRONG&gt;, automatically transformed by API Management to represent the managed agent API.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Log traces to Application Insights using OpenTelemetry GenAI semantic conventions&lt;/STRONG&gt; for deep correlation between API and agent execution traces.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;What's new in GA, on top of the preview:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Available in classic tiers&lt;/STRONG&gt;, in addition to v2 tiers — bring A2A governance to existing API Management resources without migrating tiers.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Richer diagnostic logging&lt;/STRONG&gt; for A2A APIs, giving more actionable telemetry for monitoring and troubleshooting agent traffic.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/api-management/agent-to-agent-api" target="_blank" rel="noopener"&gt;Learn more about A2A support in API Management.&lt;/A&gt;&lt;/P&gt;
&lt;H2 data-heading="Related: Bring Your Own Model in Foundry Agent Service (GA)"&gt;Related: Bring Your Own Model in Foundry Agent Service (GA)&lt;/H2&gt;
&lt;P&gt;Last month, &lt;A href="https://aka.ms/foundry/byo-model-ga" target="_blank" rel="noopener" aria-label="https://aka.ms/foundry/byo-model-ga" data-tooltip-position="top"&gt;Bring Your Own Model (BYOM) in Foundry Agent Service went GA&lt;/A&gt;. BYOM lets enterprise teams route Foundry agent model calls through their own infrastructure — typically for compliance, governance, or to reuse an existing model gateway.&lt;/P&gt;
&lt;P&gt;This pairs naturally with the AI gateway capabilities in Azure API Management. Put API Management in front of your models, apply the policies and observability described above, and have Foundry agents call through it — getting consistent governance for both your direct AI traffic and your agent workloads.&lt;/P&gt;
&lt;H2&gt;Get started&lt;/H2&gt;
&lt;P&gt;Together, these updates make Azure API Management a more complete AI gateway: consistent governance, security, and observability across models from various providers, MCP tools, and agent interactions.&lt;/P&gt;
&lt;P&gt;Some of these features are still rolling out. They will first become available in v2 tiers of API Management and &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/api-management/configure-service-update-settings#update-group" target="_blank" rel="noopener"&gt;in the AI release channel for classic tiers&lt;/A&gt;, then continue rolling out to the rest of classic tier resources over the following weeks.&lt;/P&gt;
&lt;P&gt;Get started with &lt;A class="lia-external-url" href="https://aka.ms/apimdocs/unified-model-api" target="_blank" rel="noopener"&gt;the unified model API&lt;/A&gt; or explore &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/api-management/genai-gateway-capabilities" target="_blank" rel="noopener"&gt;the AI gateway capabilities in API Management&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jun 2026 20:48:15 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/new-ai-gateway-capabilities-in-azure-api-management/ba-p/4524604</guid>
      <dc:creator>budzynski</dc:creator>
      <dc:date>2026-06-02T20:48:15Z</dc:date>
    </item>
    <item>
      <title>🎉 Automation just became a team sport. Meet Azure Logic Apps Automation.</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/automation-just-became-a-team-sport-meet-azure-logic-apps/ba-p/4524555</link>
      <description>&lt;DIV class="lia-align-center"&gt;
&lt;H4&gt;Low barrier to entry. Built for production.&amp;nbsp;&lt;/H4&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-align-center"&gt;
&lt;H4&gt;&lt;STRONG&gt;Now in Public Preview&amp;nbsp;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;There's a moment that plays out in almost every organization right now. Someone closest a business problem - a retail ops lead, a finance analyst, a security analyst looks at a repetitive process and thinks, &lt;EM&gt;this should just run itself&lt;/EM&gt;. For most of computing history, turning that idea into reality required specialized skills, significant setup, and engineering resources that were often focused elsewhere.&lt;/P&gt;
&lt;P&gt;AI is changing that. Today, people can describe what they want in natural language and watch working solutions take shape. The bottleneck is no longer generating an idea for automation. It's turning that idea into something secure, governed, and reliable enough to run in production. The demos are everywhere. The question organizations are increasingly asking is the harder one: which of these can we actually run in production?&lt;/P&gt;
&lt;P&gt;That's exactly the shift we built for.&lt;/P&gt;
&lt;P&gt;Today at Microsoft Build we're &lt;A class="lia-external-url" href="https://build.microsoft.com/en-US/sessions/OD832?source=/speakers/1768245294609build26-1777934900615001XSkq" target="_blank"&gt;introducing&amp;nbsp;&lt;/A&gt;&lt;STRONG&gt;Azure Logic Apps Automation&lt;/STRONG&gt;, a new Logic Apps SKU that delivers the experience of a modern SaaS product for creating and running workflow automations. It makes it easier for teams to get started quickly while preserving the security, governance, reliability, and scale organizations expect from Azure. It's open to builders of every kind, available now in public preview at&amp;nbsp;&lt;A href="https://auto.azure.com" target="_blank" rel="noopener"&gt;https://auto.azure.com&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;div data-video-id="https://youtu.be/mS8FbGVJww4/1780364405761" data-video-remote-vid="https://youtu.be/mS8FbGVJww4/1780364405761" class="lia-video-container lia-media-is-center lia-media-size-medium"&gt;&lt;iframe src="https://www.youtube.com/embed/mS8FbGVJww4" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P class="lia-clear-both"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;New experience, same enterprise engine&lt;/H2&gt;
&lt;P&gt;The goal was straightforward: simplify the experience of building and running automations without compromising the enterprise foundation underneath.&lt;/P&gt;
&lt;P&gt;Logic Apps Automation provides a managed experience where compute, model endpoints, knowledge services, and execution environments are available out of the box. Teams can focus on solving business problems rather than assembling infrastructure and services.&lt;/P&gt;
&lt;P&gt;We also introduced a dedicated SaaS experience designed around productivity and collaboration. Administrators establish governance and policies, while builders can quickly begin creating workflows without requiring deep Azure expertise.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P data-line="159"&gt;"The redesigned experience lets me build AI-based solutions in record time. This platform will serve as the glue in most modern solutions.", &lt;SPAN data-teams="true"&gt;Mick Badran,&lt;/SPAN&gt; Founder &amp;amp; Director at&amp;nbsp;SolveIT.Today [LA Automation Early Adopter]&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;What we &lt;EM&gt;kept&lt;/EM&gt; is &amp;nbsp;just as important. Logic Apps Automation is built on the same Azure Logic Apps platform organizations trust today. The reliability, scale, security, governance, and operational maturity remain the foundation. The experience is simpler, but the platform underneath is the same proven technology customers rely on every day.&lt;/P&gt;
&lt;P&gt;Low barrier to entry. Built for production. We mean both halves of that sentence.&lt;/P&gt;
&lt;H2&gt;Build like a startup, ship like an enterprise&lt;/H2&gt;
&lt;P&gt;Building an automation is only part of the full application journey. As solutions move from experimentation to production, along with simple experience, organizations need security, governance, networking, identity, and operational controls to ensure those automations can be trusted at scale.Logic Apps Automation is designed for both realities.&lt;/P&gt;
&lt;P&gt;On the build side, it's fast to get started. Login and start building workflows; stay on a single canvas throughout the experience: use AI assisted workflow development, use visual workflows when they’re the right fit, and drop into code the moment you need additional control. No switching tools, no handoffs, no separate infrastructure to manage.&lt;/P&gt;
&lt;P&gt;On the production side, organizations get the capabilities they expect from an enterprise platform, on day-0: isolated compute, virtual network integration and private endpoints, identity, role-based access, audit logging, and governance policies.&lt;/P&gt;
&lt;P&gt;For many automation tools, becoming "enterprise-ready" is something that happens later. With Logic Apps Automation , production-readiness &amp;nbsp;is part of the foundation.&lt;/P&gt;
&lt;H2&gt;Built for how teams actually work&lt;/H2&gt;
&lt;P&gt;Making automation easier for builders shouldn't create additional complexity for administrators.&lt;/P&gt;
&lt;P&gt;Organizations already have established governance boundaries, ownership models, and operational processes. Logic Apps Automation is designed to align with those realities through a simple two-level hierarchy of Projects and Applications. &lt;STRONG&gt;Project&lt;/STRONG&gt; sits at the top and act as your security and governance boundary; inside each project you run one or more &lt;STRONG&gt;Applications&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Admins and project owners set networking policies, connector policies, sandbox configuration, and approved AI models once, at the project scope and every application inherits them. Builders get a wide-open space to create. Admins get a firm line around it. Nobody has to choose between the two.&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;Flexible permission management for individuals and teams&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;The permission model is also designed to match how teams collaborate:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;A private space for an individual. To give a single user a place to run their own automations with a privacy boundary around personal resources such as their email account - create an application that only that individual can access.&lt;/LI&gt;
&lt;LI&gt;A shared space for a team. To support an automation that several people co-develop and operate together, add multiple users to the application so they can build, run, and maintain it collectively.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The same model accommodates both access patterns, giving builders clear control over the scope of each application and who can work within it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;AI-native, not AI-retrofitted&lt;/H2&gt;
&lt;P&gt;Logic Apps Automation is designed for a new generation of business processes that combine workflows, AI agents, enterprise systems, and human decision-making.&lt;/P&gt;
&lt;P&gt;It starts with how you build. A built-in AI Assistant turns plain language into working automation. You describe what you want and it drafts the workflow, configures actions, writes expressions, and generates inline code, then helps you edit the same way. You can author at the level of a single step or an entire end-to-end flow. This is the thing that opens the platform to *every* developer: the person closest to the problem can describe it and get something real, while pros stay in control and drop to code whenever they want.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P data-line="46"&gt;"With the power of AI, automations just got on steroids! Simply tell it what you need, explain the intent, et voilà! Love it.", Sonny Gillissen,&lt;/P&gt;
&lt;P data-line="46"&gt;Integration Architect at Rubicon Cloud Advisor [LA Automation Early Adopter]&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;Agents are first-class&lt;/H2&gt;
&lt;P&gt;Agents are first-class, and we meet you where you are with three ways to integrate them:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Agent-loop orchestration. If you're already using Logic Apps actions as tools inside an agent loop, that pattern carries forward. Your actions are callable tools the agent can invoke, so you keep orchestrating the way you always have.&lt;/LI&gt;
&lt;LI&gt;Foundry agents. Connect to an existing Microsoft Foundry Hosted or Prompt Agent or create a new one right from the canvas. The platform handles the wiring, and your workflow calls the agent, gets results back, and keeps moving.&lt;/LI&gt;
&lt;LI&gt;Managed sandbox for agent harnesses. Bring a well-known agent harness, like GitHub Copilot and run it in a managed, isolated sandbox. We take care of the compute, the isolation, native shell access, and your GitHub repos as first-class context; you just define the business logic.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Then orchestrate all of these inside a larger workflow, right next to traditional rule-based actions, on a single canvas. Deterministic and agentic, in one place.&lt;/P&gt;
&lt;P&gt;A few capabilities that make this especially powerful:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Sandboxed agent harnesses.&lt;/STRONG&gt; Run agent harnesses such as GitHub Copilot in a managed, isolated sandbox with shell execution, skills, and GitHub repos as first-class context, without operating any of that infrastructure yourself.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Tools and MCP.&lt;/STRONG&gt; Turn any of the 1400+ connectors into a tool or expose any workflow as an MCP server that any compatible agent can call. No code required.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Knowledge as a Service.&lt;/STRONG&gt; Drop in your documents and the platform handles ingestion, chunking, embeddings, and retrieval. No RAG pipeline to build, no vector store to operate; just grounded answers.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Any model, anywhere.&lt;/STRONG&gt; Plug in whatever fits the job: frontier, open-source, fine-tuned, or local. You're never locked in.&lt;/LI&gt;
&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P data-line="93"&gt;"Azure Automation closes the gap between integration and intelligence with agents as first-class workflow actions, grounded in your own data, executing in isolated sandboxes, all within the same canvas where your triggers and connectors live. Excited to see the evolution.", Sagar Sharma, Enterprise Solution Architect at i8c NL [LA Automation Early Adopter]&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;What's new in this release&lt;/H2&gt;
&lt;P&gt;Logic Apps Automation introduces several new capabilities designed to help teams build, deploy, and govern AI-powered automations:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Zero-friction onboarding. &lt;/STRONG&gt;Get from Sign-in to first workflow in minutes, with managed infrastructure and enterprise capabilities available from the start.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;A new designer.&lt;/STRONG&gt; Modern designer with single pane experience to build and monitor workflows, draft-mode for workflows for easy iterations, instant code-to-workflow synchronization when you want to work in code-view, run history you can stream live, and so much more&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Natural language authoring.&lt;/STRONG&gt; Describe workflows in plain language to create and edit them, with AI assistance in the designer.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;More powerful agents.&lt;/STRONG&gt; Three ways to bring agents into a workflow; agent-loop orchestration, Foundry Hosted Agents, and well-known harnesses like GitHub Copilot running in a managed, isolated sandbox with shell access and GitHub repos as context.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Knowledge as a Service.&lt;/STRONG&gt; A managed knowledge layer that turns your documents into a ready-to-use knowledge base; no RAG pipeline required.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;JavaScript expressions.&lt;/STRONG&gt; Write inline JavaScript to transform data and express logic without leaving the designer; no domain-specific language to learn.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Projects and applications.&lt;/STRONG&gt; A two-level governance hierarchy that gives admins a clear boundary and builders room to create. A permission management model that accommodates different level of access patterns, giving builders clear control over the scope of each application and who can work within it.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Elastic scale, including to zero.&lt;/STRONG&gt; Workflows scale up automatically when load arrives and scale all the way down to zero when there's no work to do. You pay only for the vCPU-seconds you actually use.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Built to scale&lt;/H2&gt;
&lt;P&gt;Logic Apps Automation scales automatically with demand, from idle workloads to business-critical processes. Customers pay only for the resources they use, without per-seat licensing requirements or infrastructure management overhead. When workflows aren't running, you're not paying for compute. When demand increases, the platform scales with you.&lt;/P&gt;
&lt;H2&gt;Pricing&lt;/H2&gt;
&lt;P&gt;Logic Apps Automation uses a consumption-based pricing model, so you pay only for what you use.&amp;nbsp; Pricing is based on a small managed-environment fee, workflow execution, and optional services such as AI model usage, knowledge, sandboxes, connector calls. There is no annual commitment, no per-seat license, no quota cliff. When your workflows sit idle, you pay nothing for compute. More details to follow soon.&lt;/P&gt;
&lt;H2&gt;What's available, and what's next&lt;/H2&gt;
&lt;P&gt;Logic Apps Automation is available today in public preview, with an intial &amp;nbsp;set of regions today, with more rolling out over the coming weeks. Here is the list of regions its available today:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;East Asia&lt;/LI&gt;
&lt;LI&gt;Sweden Central&lt;/LI&gt;
&lt;LI&gt;Australia East&lt;/LI&gt;
&lt;LI&gt;North Central US&lt;/LI&gt;
&lt;LI&gt;UK South&lt;/LI&gt;
&lt;LI&gt;Southeast Asia&lt;/LI&gt;
&lt;LI&gt;West US&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;&lt;STRONG&gt;Coming Soon&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;&amp;nbsp;We're continuing to expand the platform with additional AI and enterprise capabilities, including:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Foundry Hosted Agents. Create or Invoke Foundry Hosted Agents directly inside your workflows.&lt;/LI&gt;
&lt;LI&gt;Foundry Prompt Agents. Create/Invoke Foundry prompt directly inside your workflows.&lt;/LI&gt;
&lt;LI&gt;Hosted Models. Managed model endpoints provided for you; no keys or infrastructure to bring.&lt;/LI&gt;
&lt;LI&gt;Inline Python.&amp;nbsp;Write inline Python alongside JavaScript when you need it.&lt;/LI&gt;
&lt;LI&gt;Bring your own container image. Run your own code in sandboxes; for example, orchestrate a Python ETL job from within a Logic Apps workflow.&lt;/LI&gt;
&lt;LI&gt;VNet support and private endpoints.&lt;/LI&gt;
&lt;LI&gt;Custom connectors and more Automation templates. Build custom connectors, start from a growing library of templates, and set project-level policies on connectors and more.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN style="color: rgb(30, 30, 30); font-size: 32px;"&gt;Get started&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Whether you're automating a business process, orchestrating AI agents, integrating enterprise systems, or building entirely new AI-powered experiences, Logic Apps Automation provides a simpler path from idea to production.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Start building today at &lt;A href="https://auto.azure.com" target="_blank" rel="noopener"&gt;https://auto.azure.com&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Read the docs at &lt;A class="lia-external-url" href="http://auto.azure.com/docs" target="_blank" rel="noopener"&gt;http://auto.azure.com/docs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Watch the &lt;A class="lia-external-url" href="https://build.microsoft.com/en-US/sessions/OD832?source=/speakers/1768245294609build26-1777934900615001XSkq" target="_blank"&gt;announcement session&lt;/A&gt; at Microsoft Build 2026.&lt;/LI&gt;
&lt;LI&gt;See it live at the &lt;A class="lia-external-url" href="https://turbo360.com/events/integrate-2026/?utm_source=kovai_co&amp;amp;utm_medium=organic_referral#agenda" target="_blank" rel="noopener"&gt;Integrate conference&lt;/A&gt;, June 8–9.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;div data-video-id="https://youtu.be/Ua-Ary0-DI4/1780369025322" data-video-remote-vid="https://youtu.be/Ua-Ary0-DI4/1780369025322" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DUa-Ary0-DI4&amp;amp;type=text%2Fhtml&amp;amp;schema=google&amp;amp;display_name=YouTube&amp;amp;src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FUa-Ary0-DI4" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jun 2026 19:45:58 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/automation-just-became-a-team-sport-meet-azure-logic-apps/ba-p/4524555</guid>
      <dc:creator>DivSwa</dc:creator>
      <dc:date>2026-06-02T19:45:58Z</dc:date>
    </item>
    <item>
      <title>📢 Announcing Knowledge as a Service for Azure Logic Apps</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/announcing-knowledge-as-a-service-for-azure-logic-apps/ba-p/4524601</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="lia-align-center"&gt;
&lt;H4&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Now in Public Preview&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-align-center"&gt;
&lt;H5&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Turn your documents into a ready-to-use knowledge base without custom RAG pipelines.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335551550&amp;quot;:2,&amp;quot;335551620&amp;quot;:2}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="6"&gt;Today at Microsoft Build 2026, we are announcing the &lt;STRONG&gt;Public Preview of&amp;nbsp;Knowledge as a Service&lt;/STRONG&gt; for Azure Logic Apps. It is a managed knowledge layer that transforms your documents into a ready-to-use knowledge base, removing the need to build custom Retrieval-Augmented Generation (RAG) pipeline, operate a vector store, or maintain retrieval logic. The result is grounded, accurate answers for the agents and workflows you are building today.&lt;/P&gt;
&lt;P data-line="8"&gt;Most organizations hold a significant amount of institutional knowledge such as HR policies, product manuals, support runbooks, contracts, and specifications distributed across documents, spreadsheets, and internal systems. The challenge has rarely been the availability of content. It has been making that content reliably and accurately retrievable by AI agents and workflows.&lt;/P&gt;
&lt;P data-line="10"&gt;Until now, addressing this challenge required building a RAG pipeline in-house. As any team that has implemented one can attest, a production-grade RAG pipeline involves substantial engineering effort and ongoing operational overhead.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3 data-line="12"&gt;The complexity of building RAG in-house&lt;/H3&gt;
&lt;P data-line="14"&gt;A production-grade RAG pipeline is not a single component. It is a set of interdependent systems that must be designed, integrated, and maintained:&lt;/P&gt;
&lt;UL data-line="16"&gt;
&lt;LI data-line="16"&gt;&lt;STRONG&gt;Ingestion&lt;/STRONG&gt;: parsing multiple file formats, chunking content appropriately, summarizing, and generating embeddings.&lt;/LI&gt;
&lt;LI data-line="17"&gt;&lt;STRONG&gt;Storage&lt;/STRONG&gt;: provisioning a vector database, defining indexing policies, and tuning for cost and performance.&lt;/LI&gt;
&lt;LI data-line="18"&gt;&lt;STRONG&gt;Retrieval&lt;/STRONG&gt;: rewriting queries, vectorizing them, executing semantic search, and returning the most relevant chunks to the model.&lt;/LI&gt;
&lt;LI data-line="19"&gt;&lt;STRONG&gt;Operations&lt;/STRONG&gt;: monitoring upload status, handling failures, managing credentials, and maintaining security.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="21"&gt;Each component represents a meaningful engineering investment. Together, they constitute a platform — one that diverts engineering capacity away from the business problems teams set out to solve.&lt;/P&gt;
&lt;H3 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Introducing Knowledge as a Service&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:480,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P data-line="25"&gt;&lt;STRONG&gt;Knowledge as a Service (also referred to as Knowledge Base as a Service, or KBaaS)&lt;/STRONG&gt;&amp;nbsp;is a managed knowledge layer built into&amp;nbsp;&lt;STRONG&gt;Azure Logic Apps&lt;/STRONG&gt;&amp;nbsp;that turns your documents into a ready-to-use knowledge base, without requiring you to build or operate a RAG pipeline.&lt;/P&gt;
&lt;P data-line="27"&gt;You provide the documents, and the platform manages the remainder of the process, both ingestion and retrieval, end to end. Built directly into Logic Apps, KBaaS provides an abstraction over the underlying vector store and AI models, enabling your workflows to consume structured, semantically searchable knowledge through a single connection.&lt;/P&gt;
&lt;P data-line="29"&gt;A&amp;nbsp;&lt;STRONG&gt;knowledge base&lt;/STRONG&gt; is a logical container that organizes related sources for a given domain. For example, an "HR Policies" knowledge base might hold all relevant HR documents. You create the knowledge base, upload your files, and attach it as a tool that your agent can call.&lt;/P&gt;
&lt;H3 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;How it works&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:480,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P data-line="33"&gt;KBaaS is built around two managed pipelines.&lt;/P&gt;
&lt;P data-line="35"&gt;&lt;STRONG&gt;Ingestion pipeline.&lt;/STRONG&gt; When you upload a knowledge source, the service automatically parses, chunks, summarizes, and vectorizes the content, then stores the results, with no manual preprocessing required. The current preview supports a broad range of formats out of the box:&amp;nbsp;DOC, DOCX, HTML, MD, PDF, PPT, PPTX, TXT, XLS, and XLSX. Each upload provides a progress status and a clear Completed or Failed result.&lt;/P&gt;
&lt;P data-line="37"&gt;&lt;STRONG&gt;Retrieval pipeline.&lt;/STRONG&gt;&amp;nbsp;When your agent queries the knowledge base, the service rewrites the query where beneficial, generates a vector representation, executes a semantic search, and returns the most relevant chunks to the language model for response generation. Query planning, vector search, and ranking are all handled by the service.&lt;/P&gt;
&lt;P data-line="39"&gt;The outcome is that your agents receive accurate, context-rich answers grounded in your own content, without requiring you to author retrieval logic.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Built for agentic workflows&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:480,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P data-line="43"&gt;KBaaS is available in Azure Logic Apps Standard, where it integrates directly with agentic workflows. Once a knowledge base has been created, it appears as a capability that can be attached to an agent loop. From there, the agent automatically queries the knowledge base to retrieve semantically relevant information from your uploaded documents at the point it is needed, as part of completing a task.&lt;/P&gt;
&lt;P data-line="45"&gt;Getting started involves three steps:&lt;/P&gt;
&lt;OL data-line="47"&gt;
&lt;LI data-line="47"&gt;Create the knowledge base connection -&amp;nbsp;associate your vector store and your completions and embeddings models.&lt;/LI&gt;
&lt;LI data-line="48"&gt;Add knowledge sources -&amp;nbsp;upload files into a knowledge base, optionally organized into groups.&lt;/LI&gt;
&lt;LI data-line="49"&gt;Add the knowledge base as a context&amp;nbsp;- select it from the agent node so your agent can begin retrieving.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-line="51"&gt;The platform provisions and manages the required databases, containers, and indexing policies on your behalf, removing the burden of operating the underlying storage and search infrastructure.&lt;/P&gt;
&lt;H2 data-line="53"&gt;Two SKUs to consume it - Standard or Automation&lt;/H2&gt;
&lt;P aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;This feature is available across Logic Apps SKUs, with some differences in how you setup and manage them.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P data-line="57"&gt;&lt;STRONG&gt;Logic Apps Standard — bring your own resources.&lt;/STRONG&gt; On Standard SKU, the model operates on your own Cosmos DB vector store and AI models, KBaaS integrates with them directly. You connect your existing resources, and the platform manages the complete ingestion and retrieval pipeline on top of them. This approach retains full control over your data and models while removing the need to build and maintain the RAG pipeline.&lt;/P&gt;
&lt;P data-line="59"&gt;&lt;STRONG&gt;Logic Apps Automation SKU — bring only your documents.&lt;/STRONG&gt;&amp;nbsp;On the Automation SKU, KBaaS operates on a&amp;nbsp;&lt;STRONG&gt;hosted-on-behalf-of model&lt;/STRONG&gt;, in which the platform provisions and manages both the underlying vector store and the AI models. There is no Cosmos DB to provision, no embeddings or completions model to deploy, and no connections to configure. You upload your documents and attach the knowledge base to your agent, and the entire knowledge layer, including the supporting infrastructure is fully managed for you.&lt;/P&gt;
&lt;P data-line="61"&gt;This delivers the same managed knowledge experience with the maximum degree of abstraction, providing the most direct path from source documents to a working, agent-ready knowledge base.&lt;/P&gt;
&lt;H3 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Secure by design&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:480,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;KBaaS supports authentication through Microsoft Entra ID using either a managed identity or an API key. We recommend&amp;nbsp;managed identity wherever possible. It is the most secure option and eliminates the need to manually provision and rotate credentials, secrets, or access keys.&lt;/P&gt;
&lt;H3 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Available today in Public Preview&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:480,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This initial release focuses on the most common starting point: uploading unstructured documents. Additional capabilities are planned, including support for more knowledge sources, richer ingestion (such as image parsing, semantic chunking, and multimodal embeddings), configurable retrieval settings, access checks during retrieval, and more.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P data-line="71"&gt;&lt;STRONG&gt;Knowledge as a Service is available now in Public Preview.&lt;/STRONG&gt;&amp;nbsp;Provide your documents and give your agents a knowledge base that is ready to use, without building or operating a RAG pipeline.&lt;/P&gt;
&lt;UL data-line="73"&gt;
&lt;LI data-line="74"&gt;Read the &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/logic-apps/create-knowledge-base-agentic-workflow" target="_blank"&gt;MS Learn docs&lt;/A&gt; to get started&lt;/LI&gt;
&lt;LI data-line="74"&gt;Check out the demo below&lt;/LI&gt;
&lt;/UL&gt;
&lt;div data-video-id="https://youtu.be/tSvvCiNOy88/1780382299094" data-video-remote-vid="https://youtu.be/tSvvCiNOy88/1780382299094" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DtSvvCiNOy88&amp;amp;type=text%2Fhtml&amp;amp;schema=google&amp;amp;display_name=YouTube&amp;amp;src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FtSvvCiNOy88" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jun 2026 15:32:29 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/announcing-knowledge-as-a-service-for-azure-logic-apps/ba-p/4524601</guid>
      <dc:creator>DivSwa</dc:creator>
      <dc:date>2026-06-03T15:32:29Z</dc:date>
    </item>
    <item>
      <title>Better Together: Build Agents in Microsoft Foundry, Automate them with Azure Logic Apps</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/better-together-build-agents-in-microsoft-foundry-automate-them/ba-p/4524557</link>
      <description>&lt;DIV class="lia-align-center"&gt;
&lt;H5 data-line="2"&gt;&lt;STRONG&gt;One agentic stack: Foundry brings the intelligence; Logic Apps brings the automation and orchestration.&lt;/STRONG&gt;&lt;/H5&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-center" data-line="2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="4"&gt;The promise of agentic AI is not simply more capable chat. It is autonomous work that advances real business processes. To achieve this, agents require two things: a place to be built with the appropriate models, instructions, knowledge, and guardrails and a place to be invoked and orchestrated, with triggers, workflows, and connections to the systems where work actually occurs.&lt;/P&gt;
&lt;P data-line="6"&gt;Today, we are announcing a significantly improved experience that brings these two platforms together: Microsoft Foundry and Azure Logic Apps. Together, they form a single agentic stack. Foundry provides the intelligence, and Logic Apps provides the automation and orchestration.&lt;/P&gt;
&lt;H2&gt;What's new&lt;/H2&gt;
&lt;P data-line="10"&gt;This release introduces a set of updates that taken together, brings a really better together experience to build and automate AI&amp;nbsp;&lt;/P&gt;
&lt;P data-line="12"&gt;&lt;STRONG&gt;A streamlined experience to create and invoke Foundry Agents from Azure Logic Apps.&lt;/STRONG&gt;&amp;nbsp;You can now move from having an agent to running that agent inside a production business workflow in a few steps. You can author, configure, and call a Foundry Agent directly from the Logic Apps designer, with no custom integration code required.&lt;/P&gt;
&lt;P data-line="14"&gt;&lt;STRONG&gt;Run Foundry Agents autonomously with Logic Apps triggers.&lt;/STRONG&gt; This capability is what enables embedding Foundry Agents in workflows. A chat-bound agent runs only when a user types a message; an autonomous agent runs when the business requires it. With this release, you can pair any Logic Apps trigger with a Foundry Agent to build a business process, automating agents to react to events, run on a schedule, or both. These triggers can come from any of the 1,400+ connectors that expose them — such as ServiceNow incidents, GitHub issues, Jira tickets, and SAP IDocs — each capable of initiating a Foundry Agent. The result is that your agents do not wait for someone to interact with them. They activate the moment work arrives, reason about it, take action through their tools, and, where appropriate, hand off to long-running workflows.&amp;nbsp;&lt;/P&gt;
&lt;P data-line="18"&gt;&lt;STRONG&gt;Logic Apps connectors are now available as tools for Foundry Agents.&lt;/STRONG&gt;&amp;nbsp;Any of those same 1,400+ Azure Logic Apps connectors can now be exposed directly to a Foundry Agent as a native tool. An agent can reason about a customer issue and then update the CRM, file the ticket, send the approval, or post the message.&lt;/P&gt;
&lt;P data-line="20"&gt;&lt;STRONG&gt;Invoke entire workflows, including long-running ones, as Foundry agent tools.&lt;/STRONG&gt;&amp;nbsp;Tools are not limited to a single API call. With Logic Apps, an agent can invoke an entire workflow as a tool: a multi-step approval that waits days for a human response, a webhook callback, a long-running orchestration spanning multiple systems, or a process that pauses and resumes on external events. The agent reasons, and the workflow executes durably for as long as the process requires.&lt;/P&gt;
&lt;P data-line="22"&gt;Business process automation, durable workflows, and agentic AI are now available on the same stack.&lt;/P&gt;
&lt;H2&gt;Why this matters&lt;/H2&gt;
&lt;P&gt;Building automations with agents and deterministic logic has meant working across two separate worlds: one platform to build and host the agent, and another to connect it to the systems where work happens and to invoke it when needed. This release brings those two worlds together. Foundry and Logic Apps now work as one agentic stack, with each platform handling what it does best&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Azure AI Foundry —&amp;nbsp;&lt;EM&gt;Where agents are built and hosted&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Azure Logic Apps —&amp;nbsp;&lt;EM&gt;Where agents are invoked and orchestrated&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Define agents with models, instructions, and tools&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Trigger agents from any event, on any schedule&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Ground responses in knowledge and enterprise data&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Orchestrate multi-step, multi-agent business processes&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Evaluate, version, and observe agent behavior&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Expose 1,400+ connectors, workflows, MCPs, webhooks, and agents as native tools&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H2&gt;Getting Started&lt;/H2&gt;
&lt;P&gt;If you already have a Foundry Agent and a Logic Apps environment, you're a few clicks away. Here are the steps to Create and/or Invoke Foundry Agents from Logic Apps Workflows&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Add an Agent node to your workflow: &lt;/STRONG&gt;In the Logic Apps designer, add the &lt;STRONG&gt;Agent&lt;/STRONG&gt; node to your workflow.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Creation connection:&lt;/STRONG&gt;&amp;nbsp;If you don't already have a connection, you'll be prompted to create one. Make sure it's a&amp;nbsp;Foundry Project connection: select Foundry Project from the Agent Model Source drop-down, then provide your project endpoint and API key.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Invoke an existing Foundry agent: &lt;/STRONG&gt;Once the Agent node is added, pick an agent from the Agent drop-down. Logic Apps defaults to the latest version and shows the agent's configured model and instructions. You can invoke the agent as-is, or make changes from the designer, including adding Logic Apps tools to the Foundry Agent.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Or create a new agent: &lt;/STRONG&gt;To create a new agent from the designer, provide an Agent Name and Model, then choose Create;&amp;nbsp;the agent is created in Foundry. You can optionally add Instructions and Logic Apps tools before saving.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Configure Agent:&lt;/STRONG&gt; When you choose to create a new agent, you add the Agent Name and Model and that allows you to Create that agent in Foundry. Optionally you can add Instructions and Logic Apps tools from the designer. The Agent is Created when you click on Create. You can invoke from Logic Apps or from Foundry portal as well.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Add tools:&lt;/STRONG&gt; Logic Apps tools are how your agent takes action. A tool can include not just 1400 connectors, but also MCPs, workflows, custom code, Agents or APIs&lt;/P&gt;
&lt;img /&gt;
&lt;H3&gt;Closing&lt;/H3&gt;
&lt;P&gt;Agents are only useful when they can act - and act autonomously, durably, and across the systems and timeframes that real business processes require. With Microsoft Foundry providing the agent platform, and Azure Logic Apps providing the triggers, workflows, connectors, webhooks, and agent-as-tool composition, AI capability turns into automated business processes.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;div data-video-id="https://youtu.be/TMOX5QWCUKw/1780385761846" data-video-remote-vid="https://youtu.be/TMOX5QWCUKw/1780385761846" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DTMOX5QWCUKw&amp;amp;type=text%2Fhtml&amp;amp;schema=google&amp;amp;display_name=YouTube&amp;amp;src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FTMOX5QWCUKw" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jun 2026 19:33:15 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/better-together-build-agents-in-microsoft-foundry-automate-them/ba-p/4524557</guid>
      <dc:creator>DivSwa</dc:creator>
      <dc:date>2026-06-02T19:33:15Z</dc:date>
    </item>
    <item>
      <title>What's new in Azure API Management at Microsoft Build 2026</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/what-s-new-in-azure-api-management-at-microsoft-build-2026/ba-p/4524683</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;For more than a decade, Azure API Management has helped organizations secure, govern, and&amp;nbsp;operate&amp;nbsp;APIs at&amp;nbsp;enterprise&amp;nbsp;scale.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;As organizations build more AI-powered applications, APIs are increasingly part of a broader architecture that includes AI models, agents, MCP tools, and agent-to-agent interactions. These new patterns increase the need for consistent governance, discovery, security, and observability across the full application ecosystem.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Azure API Management already&amp;nbsp;provides&amp;nbsp;AI gateway capabilities that help organizations govern and&amp;nbsp;observe&amp;nbsp;AI workloads. At Build 2026,&amp;nbsp;we're&amp;nbsp;continuing to expand those capabilities and introducing&amp;nbsp;new updates&amp;nbsp;that help organizations manage the growing ecosystem of APIs, models, agents, MCP tools, and AI-powered interactions.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;General Availability: Azure API Center expands discovery and governance for APIs and AI assets&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;As organizations build more AI-powered applications, APIs are no longer the only reusable enterprise asset. Agents, MCP tools, prompts, skills, and AI services are rapidly becoming building blocks that developers need to discover, evaluate, and reuse.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;To support this shift,&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Azure API Center now &lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/azure-api-center-now-supports-agent-registration-agent-assessment-and-git-based-/4524630?previewMessage=true" data-lia-auto-title="Azure API Center now supports agent registration, agent assessment, and Git-based synchronization | Microsoft Community Hub" data-lia-auto-title-active="0" target="_blank"&gt;Azure API Center now supports agent registration, agent assessment, and Git-based synchronization | Microsoft Community Hub&lt;/A&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;, helping organizations create a centralized catalog for APIs and AI assets.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Developers can register agents directly into API Center, making them discoverable alongside APIs and other enterprise assets. Agent definitions can be synchronized automatically from Git repositories, ensuring catalog entries&amp;nbsp;remain&amp;nbsp;aligned with source-controlled implementations and evolving codebases.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;To help organizations&amp;nbsp;establish&amp;nbsp;trust and quality standards,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;API Center now also provides automated agent assessment using an LLM-as-a-Judge framework&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;. Agents can be evaluated for safety, reliability, and behavioral completeness before being published to the enterprise catalog.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;We're&amp;nbsp;also announcing the general availability of the&amp;nbsp;&lt;/SPAN&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/azure-api-center-introduces-a-data-plane-mcp-server-for-enterprise-wide-api-and-/4524635?previewMessage=true" data-lia-auto-title="Azure API Center data plane MCP server" data-lia-auto-title-active="0" target="_blank"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Azure API Center data plane MCP server&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;. As organizations adopt MCP-based tooling and AI agents at scale, developers need a simpler way to discover and connect to the growing ecosystem of enterprise MCP servers, tools, APIs, agents, and AI assets. The Azure API Center data plane MCP server acts as a unified enterprise discovery endpoint, enabling agents and developer tools to access registered MCP servers, tools, APIs, agents, and AI assets through a single MCP connection. This allows organizations to provide centralized access to enterprise capabilities, simplify discovery across growing catalogs, and automatically make newly registered MCP servers and tools available without requiring individual client reconfiguration.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Together with agent registration, assessment, and Git synchronization, the Azure API Center data plane MCP server helps organizations create a centralized source of truth for APIs, agents, MCP tools, and AI assets improving discoverability, governance, and reuse across the enterprise&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;General Availability: Agent-to-Agent APIs and content safety controls&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Agentic systems introduce new governance challenges.&amp;nbsp;As agents begin coordinating work on behalf of applications and users, agent-to-agent communication is becoming an increasingly important architectural pattern. Historically, these interactions have often existed outside traditional API governance boundaries, creating operational blind spots and fragmented governance models.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Azure API Management now supports&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;JSON-RPC-based Agent-to-Agent (A2A) APIs&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, enabling organizations to manage agent interactions alongside REST APIs,&amp;nbsp;GraphQL&amp;nbsp;APIs, MCP tools, and AI model APIs using the same API management platform they already rely on today.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;We're&amp;nbsp;also extending&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;content safety capabilities to MCP tools and A2A&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;interactions. Organizations can now centrally apply safety controls across model invocations, tool execution, and agent communication patterns through a unified governance layer.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Rather than introducing separate governance platforms for agents, Azure API Management enables organizations to extend familiar API governance principles to&amp;nbsp;emerging&amp;nbsp;agent ecosystems.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Public Preview: Unified Model API for multi-model AI applications&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Most organizations are quickly discovering that AI is becoming a multi-model world.&amp;nbsp;Applications increasingly combine models from Microsoft, OpenAI, Anthropic, Google, and other providers based on performance, cost, latency, regional requirements, or workload-specific needs.&amp;nbsp;This creates complexity for developers and platform teams alike. Different providers expose different APIs. SDKs vary. Governance becomes fragmented. Switching providers often&amp;nbsp;requires&amp;nbsp;application changes.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;To simplify multi-model architectures,&amp;nbsp;we're&amp;nbsp;introducing the&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Unified Model API in public preview&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The Unified Model API allows organizations to&amp;nbsp;standardize on&amp;nbsp;a single client-facing API format while Azure API Management transparently handles provider-specific transformations behind the scenes. Developers can continue using familiar APIs and SDKs while platform teams gain the flexibility to route traffic across multiple providers, implement failover strategies, and evolve model choices over time.&amp;nbsp;By abstracting provider-specific differences behind a unified API layer, organizations can build more portable, resilient, and governable AI applications.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;General Availability: Expanded AI Gateway support for Anthropic and Vertex AI&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Azure API Management AI&amp;nbsp;gateway&amp;nbsp;capabilities&amp;nbsp;already&amp;nbsp;helps&amp;nbsp;organizations govern and&amp;nbsp;observe&amp;nbsp;AI traffic across model providers. As multi-model architectures become increasingly common, organizations need consistent governance regardless of where those models are hosted.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;API Management now extends AI Gateway capabilities to Anthropic and Google Vertex AI models. Organizations can apply runtime governance, security controls, content safety policies, semantic caching, token controls, logging, tracing, and observability across a broader range of AI providers.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This enables platform teams to apply consistent governance practices across multi-model environments without introducing separate management tools or operational processes for each provider.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;General Availability: Expanded token observability for AI workloads&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Understanding AI usage is becoming increasingly important as model providers introduce new token types beyond traditional prompt and completion tokens.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Azure API Management now supports token metrics for all token types, including cached, reasoning, and thinking tokens, with metrics available through Application Insights.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Organizations can collect token usage data across multiple providers and API formats, build more&amp;nbsp;accurate&amp;nbsp;cost dashboards, improve budget monitoring, and gain deeper visibility into evolving model behaviors.&amp;nbsp;As AI workloads continue to grow, expanded token observability helps organizations better manage costs,&amp;nbsp;optimize&amp;nbsp;usage, and strengthen governance across AI applications.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;General Availability: Enterprise platform enhancements&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Alongside our AI-focused investments,&amp;nbsp;we're&amp;nbsp;continuing to&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;expand the core platform capabilities organizations&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;rely on to&amp;nbsp;operate&amp;nbsp;API programs at scale.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Azure API Management&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Premium v2 now supports multiple custom domains&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;, allowing organizations to expose APIs, developer portals, and management endpoints under multiple branded experiences while&amp;nbsp;maintaining&amp;nbsp;centralized governance.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Azure API Management&amp;nbsp;&lt;/SPAN&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/more-control-less-overhead-custom-domain-upgrades-in-azure-api-management-v2/4524661?previewMessage=true" data-lia-auto-title="Premium v2 and Standard v2 now support wildcard custom hostnames" data-lia-auto-title-active="0" target="_blank"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Premium v2 and Standard v2 now support wildcard custom hostnames&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;, significantly reducing certificate and hostname management overhead for growing API estates.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;We're&amp;nbsp;also expanding&amp;nbsp;&lt;/SPAN&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/new-ai-gateway-capabilities-in-azure-api-management/4524604?previewMessage=true" data-lia-auto-title="workspace support to the built-in gateway" data-lia-auto-title-active="0" target="_blank"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;workspace support to the built-in gateway&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;. Organizations can now adopt team-based governance and delegated API management models across&amp;nbsp;additional&amp;nbsp;deployment options while&amp;nbsp;benefiting&amp;nbsp;from built-in gateway capabilities such as multi-region deployments, custom hostnames, and Private Link connectivity.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Together, these enhancements make it easier for organizations to&amp;nbsp;scale up&amp;nbsp;API programs while&amp;nbsp;maintaining&amp;nbsp;operational simplicity.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Looking ahead&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;APIs&amp;nbsp;remain&amp;nbsp;the foundation of modern applications.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;But increasingly, they are no longer the only assets developers interact with. Models, agents, MCP tools, and agent-to-agent interactions are becoming important components of enterprise application architectures.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The governance challenge is no longer limited to APIs alone.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;With these Build announcements, Azure API Management and Azure API Center continue to expand the governance foundation organizations rely&amp;nbsp;onhelping&amp;nbsp;teams discover, secure, govern, and&amp;nbsp;observe&amp;nbsp;APIs, models, agents, MCP tools, and AI interactions through a unified platform experience.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;As organizations build the next generation of AI-powered applications,&amp;nbsp;we're&amp;nbsp;committed to providing the governance, security, visibility, and operational controls&amp;nbsp;required&amp;nbsp;to run those systems with confidence at enterprise scale.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jun 2026 19:30:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/what-s-new-in-azure-api-management-at-microsoft-build-2026/ba-p/4524683</guid>
      <dc:creator>beenamore</dc:creator>
      <dc:date>2026-06-02T19:30:00Z</dc:date>
    </item>
    <item>
      <title>Azure Connector Namespaces: managed integration for any Azure compute</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/azure-connector-namespaces-managed-integration-for-any-azure/ba-p/4524250</link>
      <description>&lt;H3&gt;The integration tax nobody budgets for&lt;/H3&gt;
&lt;P&gt;It is always a simple task on paper: connect apps to the systems the business actually runs on — SharePoint, Salesforce, SAP, Outlook — and get back to building features. What gets in the way is rarely the business logic. It's the &lt;STRONG&gt;plumbing&lt;/STRONG&gt;. You write a custom API client for each service. You wire up OAuth flows and then babysit token refresh. You add retry policies, handle throttling, page through results, and stand up webhook subscriptions you now have to keep alive. None of that is the feature. All of it is on you.&lt;/P&gt;
&lt;P&gt;Historically, if you wanted that work done for you, the answer was a workflow engine. That's great when you want a workflow — but a lot of apps just want to &lt;STRONG&gt;call an action&lt;/STRONG&gt; or &lt;STRONG&gt;react to an event&lt;/STRONG&gt; from code they already have, running on the compute they already use. That's the gap &lt;STRONG&gt;Azure Connector Namespace&lt;/STRONG&gt; fills.&lt;/P&gt;
&lt;H3&gt;What is Azure Connector Namespace?&lt;/H3&gt;
&lt;P&gt;Azure Connector Namespace is a &lt;STRONG&gt;fully managed integration service&lt;/STRONG&gt; that hosts a catalog of prebuilt, reusable connectors&amp;nbsp; and MCP servers that your apps consume through a consistent programming model. Instead of writing and operating a client for each system, you create a connection once and call typed operations from your code. The namespace handles authentication, credential rotation, polling, webhook delivery, retries, throttling, and error handling on your behalf.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Worth saying clearly, because people ask: &lt;/STRONG&gt;a connector namespace is independent of Azure Logic Apps. It doesn't require, use, or change anything in Logic Apps, and the Logic Apps connectors gallery keeps working separately for workflows. Connector Namespace is the integration path for compute that &lt;EM&gt;doesn't&lt;/EM&gt; run on a workflow engine — your Functions, Container Apps, App Service, and self-hosted services.&lt;/P&gt;
&lt;P&gt;Each connector exposes three kinds of surface through one shared connection model:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Triggers&lt;/STRONG&gt; — event subscriptions your app registers (a new email arrives, a record updates, a file lands in a folder).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Actions&lt;/STRONG&gt; — operations your app calls (send a message, read a row, upload a file).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;AI agent tools&lt;/STRONG&gt; — the same operations, exposed to agents and Copilot through MCP servers.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;You call all of it from &lt;STRONG&gt;strongly typed SDKs&lt;/STRONG&gt; for C# (Azure.Connectors.Sdk), Node.js (@azure/connectors), and Python (azure-connectors) — or over plain HTTP if a typed SDK isn't a fit.&lt;/P&gt;
&lt;img /&gt;
&lt;H3&gt;The building blocks&lt;/H3&gt;
&lt;P&gt;Five concepts and you have the whole model:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table class="lia-background-color-16 lia-border-color-21" border="1" style="width: 813px; border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td class="lia-border-color-21" style="border-width: 1px;"&gt;
&lt;P&gt;&lt;STRONG&gt;Concept&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21" style="border-width: 1px;"&gt;
&lt;P&gt;&lt;STRONG&gt;What it is&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-border-color-21" style="border-width: 1px;"&gt;
&lt;P&gt;&lt;STRONG&gt;Connector namespace&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21" style="border-width: 1px;"&gt;
&lt;P&gt;The Azure resource that hosts the connector runtime — loads and runs operations, maintains connection state and credentials, polls source systems, dispatches webhook events, and applies retry and diagnostic policies. Create it from the Azure portal, ARM/Bicep, or the CLI.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-21" style="border-width: 1px;"&gt;
&lt;P&gt;&lt;STRONG&gt;Connector&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21" style="border-width: 1px;"&gt;
&lt;P&gt;A prebuilt component for one service (SharePoint, Salesforce, SAP, Outlook). It abstracts the underlying API, auth protocol, pagination, and retry behavior so your code stays on business logic.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-21" style="border-width: 1px;"&gt;
&lt;P&gt;&lt;STRONG&gt;Connection&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21" style="border-width: 1px;"&gt;
&lt;P&gt;An authenticated, configured binding to an account or tenant. Connections are reusable — multiple apps and connectors can share one. Auth types: OAuth, API key, and Basic.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-21" style="border-width: 1px;"&gt;
&lt;P&gt;&lt;STRONG&gt;MCP server&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21" style="border-width: 1px;"&gt;
&lt;P&gt;A first-class resource that exposes tools to AI agents over the Model Context Protocol. Comes in managed and hosted flavors (more below).&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-21" style="border-width: 1px;"&gt;
&lt;P&gt;&lt;STRONG&gt;Connector SDKs&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21" style="border-width: 1px;"&gt;
&lt;P&gt;Strongly typed clients for C#, Node.js, and Python that share the same catalog, connection model, telemetry, and retry semantics. Or call connectors over HTTP.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 188px" /&gt;&lt;col style="width: 624px" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H3&gt;What you can actually do with it&lt;/H3&gt;
&lt;P&gt;The point of all this is the scenarios it unlocks. A few that show the range:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table class="lia-background-color-16 lia-border-color-21" border="1" style="width: 813px; border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;&lt;STRONG&gt;Scenario&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;&lt;STRONG&gt;What it looks like&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;&lt;STRONG&gt;Process documents and content&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;An Azure Function uses SharePoint connector operations to detect new or updated files, processes them, and writes results back to SharePoint.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;&lt;STRONG&gt;Monitor events from external services&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;An Azure Container App uses a Salesforce trigger to receive events about new leads as they're created.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;&lt;STRONG&gt;Automate productivity&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;A Node.js app uses Outlook operations to read and send email — reusing a connection another app already owns.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;&lt;STRONG&gt;Ground AI and agentic workloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;A Python service calls connector actions to enrich model output with data from business systems.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;&lt;STRONG&gt;Reuse existing app code&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;ASP.NET, Node.js, and Python services use managed integrations with no workflow engine in the call path.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;&lt;STRONG&gt;Publish connectors to agents&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21"&gt;
&lt;P&gt;Turn any connector into an MCP server in one step so Copilot and other agents can call it as a tool.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 224px" /&gt;&lt;col style="width: 588px" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H3&gt;Connections: authenticate once, reuse everywhere&lt;/H3&gt;
&lt;P&gt;Connections are where the Logic Apps connector ecosystem pays off. You get the same broad catalog of &lt;STRONG&gt;first-party Azure services and popular SaaS apps&lt;/STRONG&gt; — built on years of connector investment — without bringing a workflow engine along for the ride. You create a connection to a service, authenticate it once, and then any number of apps and connectors reuse it.&lt;/P&gt;
&lt;P&gt;Creating one is deliberately simple, which is the point:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;In the Connector Namespaces portal (connectors.azure.com), open your namespace and select &lt;STRONG&gt;Connections &amp;gt; Create connection&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Find and select the connector — say, &lt;STRONG&gt;Office 365 Outlook&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Give the connection a clear, specific name so it's easy to pick later.&lt;/LI&gt;
&lt;LI&gt;Sign in to authorize, and complete any extra steps the service requires.&lt;/LI&gt;
&lt;LI&gt;Confirm the connection shows as healthy on the &lt;STRONG&gt;Overview&lt;/STRONG&gt; page — it's now ready for your apps to use.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Supported authentication types today are &lt;STRONG&gt;OAuth&lt;/STRONG&gt;, &lt;STRONG&gt;API key&lt;/STRONG&gt;, and &lt;STRONG&gt;Basic&lt;/STRONG&gt;. And because the namespace stores and rotates the credentials, &lt;STRONG&gt;your app never touches a raw secret.&lt;/STRONG&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;H3&gt;Triggers: deliver events to the compute you already run&lt;/H3&gt;
&lt;P&gt;A trigger is an event subscription your app registers on a connector — new email, updated record, new file. When the source system raises that event, the namespace delivers the payload to &lt;STRONG&gt;your&lt;/STRONG&gt; compute. And it does the hard part for you: it manages polling schedules and webhook registration based on what the underlying service supports, so you don't stand up or maintain subscription infrastructure.&lt;/P&gt;
&lt;P&gt;Your app can receive those events running on:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure Container Apps Sandboxes&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure Functions&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Direct HTTP&lt;/STRONG&gt; — App Services or self-hosted ASP.NET, Node.js, or Python on AKS or VMs, through the same connector namespace.&lt;/LI&gt;
&lt;/UL&gt;
&lt;img /&gt;
&lt;P&gt;Two details that matter in practice: a trigger is defined independently of any specific app, and &lt;STRONG&gt;multiple apps can subscribe to the same trigger event over the same connection&lt;/STRONG&gt;. Actions, for contrast, run synchronously when your app calls them; trigger delivery uses webhooks or pull-based subscriptions depending on the connector and source service.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;You can learn more about how to use the Connectors SDK to inject connectors on Azure Functions &lt;A class="lia-external-url" href="https://aka.ms/connectors-with-functions-blog" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;H3&gt;MCP servers: turn connectors into agent tools&lt;/H3&gt;
&lt;P&gt;This is the part I'm most excited about. An MCP server in your namespace exposes tools that AI agents — Copilot, custom agents, any MCP-aware client — can discover and call, using the same connection model as everything else. That's how you put your line-of-business systems directly in front of an agent without writing tool wrappers or standing up hosting. There are &lt;STRONG&gt;two ways&lt;/STRONG&gt; to get one.&lt;/P&gt;
&lt;H4&gt;Managed MCP servers&lt;/H4&gt;
&lt;P&gt;Take any connector in your namespace and &lt;STRONG&gt;publish it as an MCP server in a single step&lt;/STRONG&gt;. The namespace builds and configures the server — tool definitions, lifecycle, runtime — and the only thing you do is authenticate the underlying connection. If you can create a connection, you can give an agent a tool.&lt;/P&gt;
&lt;H4&gt;Hosted MCP servers&lt;/H4&gt;
&lt;P&gt;Sometimes you want a ready-made server rather than one projected from a connector. Hosted MCP servers are &lt;STRONG&gt;pre-built images from a curated catalog&lt;/STRONG&gt; that the namespace runs in dedicated compute it provisions for you. You own the configuration; the platform handles hosting, scaling, networking, lifecycle, dependencies, health monitoring, and credentials. When you deploy one, the namespace pulls the image, provisions the runtime with your config, and exposes a secure MCP endpoint agents can connect to.&lt;/P&gt;
&lt;P&gt;The curated catalog during preview includes:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Playwright&lt;/STRONG&gt; — browser automation tools for navigation, screenshots, and page interaction.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure SQL&lt;/STRONG&gt; — SQL operations exposed as MCP tools through Data API builder, with entity abstraction, RBAC, and caching so agents work through a controlled, secure contract.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;It's a deliberately curated set today, and it expands over time based on demand. You can learn more about Hosted MCP Servers &lt;A class="lia-external-url" href="https://aka.ms/hosted-mcp" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;How agents authenticate&lt;/H4&gt;
&lt;P&gt;Hosted MCP servers have two auth boundaries:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Inbound (client to server)&lt;/STRONG&gt; — OAuth with Microsoft Entra ID. Connections from &lt;STRONG&gt;GitHub Copilot in VS Code work out of the box&lt;/STRONG&gt;; other MCP clients need a little extra config.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Outbound (server to downstream system)&lt;/STRONG&gt; — either a managed identity assigned to the namespace, or on-behalf-of (OBO) using the calling user's identity for delegated access.&lt;/LI&gt;
&lt;/UL&gt;
&lt;img /&gt;
&lt;H3&gt;How it fits together&lt;/H3&gt;
&lt;P&gt;End to end, the flow for connectors is short:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Create a connector namespace resource in your subscription.&lt;/LI&gt;
&lt;LI&gt;Create one or more connections to the services you want — say, an OAuth connection to Microsoft 365.&lt;/LI&gt;
&lt;LI&gt;Your app — in Functions, Container Apps, App Service, or self-hosted compute — references the namespace and connection through a Connector SDK, then subscribes to triggers or calls actions.&lt;/LI&gt;
&lt;LI&gt;The namespace handles authentication, request signing, polling, webhook subscription, and retries. Your app gets back typed responses and event payloads.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;For MCP servers, it's the same shape: create the namespace, add a managed or hosted server from the catalog, authenticate the underlying connection, and agents can find the server, read its tool catalog, and invoke tools.&lt;/P&gt;
&lt;H3&gt;Where you can run it&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure compute&lt;/STRONG&gt; — App Service, Container Apps, and Functions can all consume connector operations.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Self-hosted&lt;/STRONG&gt; — any self-hosted service works too: ASP.NET, Node.js, or Python on AKS or Azure VMs.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Agents, directly&lt;/STRONG&gt; — Copilot extensions and MCP-aware clients call tools on MCP servers in your namespace without going through a separate compute layer; the namespace provides the compute that runs the servers.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Security and governance, by default&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Credentials stay with the namespace&lt;/STRONG&gt; — it stores, manages, and rotates them; your app never handles raw secrets.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Network isolation&lt;/STRONG&gt; — restrict access with virtual network integration and private endpoints.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;RBAC&lt;/STRONG&gt; — control who can create connections, register triggers, and invoke actions.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Observability&lt;/STRONG&gt; — diagnostic logs and correlation IDs flow to Azure Monitor for end-to-end tracing across the namespace and your compute.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Before you build: preview realities&lt;/H3&gt;
&lt;P&gt;I'd rather you go in clear-eyed. While Connector Namespace is in preview, keep these in mind:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table class="lia-background-color-16 lia-border-color-21" border="1" style="width: 814px; border-width: 1px;"&gt;&lt;thead&gt;&lt;tr style="height: 39px;"&gt;&lt;td class="lia-border-color-21" style="height: 39px;"&gt;
&lt;P&gt;&lt;STRONG&gt;Consideration&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21" style="height: 39px;"&gt;
&lt;P&gt;&lt;STRONG&gt;What to expect&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr style="height: 39px;"&gt;&lt;td class="lia-border-color-21" style="height: 39px;"&gt;
&lt;P&gt;&lt;STRONG&gt;No SLA&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21" style="height: 39px;"&gt;
&lt;P&gt;Not recommended for production workloads during preview.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 39px;"&gt;&lt;td class="lia-border-color-21" style="height: 39px;"&gt;
&lt;P&gt;&lt;STRONG&gt;Region availability&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21" style="height: 39px;"&gt;
&lt;P&gt;Limited regions today; the list expands over time.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 95px;"&gt;&lt;td class="lia-border-color-21" style="height: 95px;"&gt;
&lt;P&gt;&lt;STRONG&gt;Connector coverage&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21" style="height: 95px;"&gt;
&lt;P&gt;High-usage and standard connectors first; enterprise connectors like SAP, IBM MQ, and Oracle Database follow in later waves.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 95px;"&gt;&lt;td class="lia-border-color-21" style="height: 95px;"&gt;
&lt;P&gt;&lt;STRONG&gt;Identity&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21" style="height: 95px;"&gt;
&lt;P&gt;API key and OAuth connections now; managed identity for connections comes later (and arrives earlier for select MCP servers).&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 67px;"&gt;&lt;td class="lia-border-color-21" style="height: 67px;"&gt;
&lt;P&gt;&lt;STRONG&gt;Versioning&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21" style="height: 67px;"&gt;
&lt;P&gt;SDK and namespace runtime versions are paired during preview — expect breaking changes between milestones.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 67px;"&gt;&lt;td class="lia-border-color-21" style="height: 67px;"&gt;
&lt;P&gt;&lt;STRONG&gt;Pricing&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-border-color-21" style="height: 67px;"&gt;
&lt;P&gt;The pricing model isn't finalized; the metering shape may change before GA.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 179px" /&gt;&lt;col style="width: 635px" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Try it, and tell us your feedback&lt;/H3&gt;
&lt;P&gt;If you've ever shipped an integration and then spent the next quarter maintaining its plumbing, this is for you. The preview is open: create a namespace from the Azure portal, wire up a connection at &lt;A class="lia-external-url" href="https://connectors.azure.com" target="_blank" rel="noopener"&gt;connectors.azure.com&lt;/A&gt;, and call your first action or publish your first MCP server. It is easy to start here:&lt;/P&gt;
&lt;P&gt;Learn more:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/logic-apps/connector-namespace/connector-namespace-overview" target="_blank" rel="noopener"&gt;What is Azure Connector Namespace?&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/logic-apps/connector-namespace/create-connector-namespace" target="_blank" rel="noopener"&gt;Quickstart: Create and manage connector namespaces&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/logic-apps/connector-namespace/create-connector-namespace-connection" target="_blank" rel="noopener"&gt;Create reusable connections in connector namespaces&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/logic-apps/connector-namespace/connector-namespace-hosted-mcp" target="_blank" rel="noopener"&gt;Hosted MCP servers in Azure Connector Namespace&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Related Blog Posts:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://aka.ms/connectors-with-functions-blog" target="_blank" rel="noopener"&gt;Azure Functions - Connectors SDK&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://aka.ms/hosted-mcp" target="_blank" rel="noopener"&gt;Hosted MCP Server announcement&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Samples repositories:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://aka.ms/connectors-with-functions-samples" target="_blank" rel="noopener"&gt;Using connectors SDK with Azure Functions&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This is a preview, which means your feedback genuinely shapes where it goes — which connectors come next, which MCP servers land in the catalog, where the rough edges are. &lt;A class="lia-external-url" href="https://github.com/Azure/Connectors/issues/new?template=portal_bug.yml" target="_blank" rel="noopener"&gt;Bring issues, feature requests and feedback to our GitHub page&lt;/A&gt;. I read it. Let's build the integration layer you actually want to use.&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jun 2026 20:33:37 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/azure-connector-namespaces-managed-integration-for-any-azure/ba-p/4524250</guid>
      <dc:creator>WSilveira</dc:creator>
      <dc:date>2026-06-02T20:33:37Z</dc:date>
    </item>
    <item>
      <title>What's new in Azure Logic Apps at Microsoft Build 2026</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/what-s-new-in-azure-logic-apps-at-microsoft-build-2026/ba-p/4524685</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Automation is entering a new era&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Automation has traditionally been powerful, but not always accessible.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Building production-grade automations often requires specialized expertise in workflows, integrations, APIs, infrastructure, identity, security, networking, and operations. Organizations could build sophisticated solutions, but doing so typically requires dedicated development or integration teams&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;AI is changing that equation.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Across every organization, more people want to automate work. Developers want to build AI-powered applications faster. Startup teams want to move from idea to production without assembling complex infrastructure. Operations, security, and business teams want to&amp;nbsp;leverage&amp;nbsp;AI to automate repetitive processes and accelerate decision making.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Expectations have changed as well. Builders increasingly expect natural language experiences, AI&amp;nbsp;assistance, integrated knowledge, and faster paths from idea to execution.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;At the same time, organizations still need the governance, security, reliability, compliance, and operational controls&amp;nbsp;required&amp;nbsp;to run automation in production.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This creates a new opportunity: &lt;STRONG&gt;making enterprise-grade automation accessible to far more builders without sacrificing the foundations required to&amp;nbsp;operate&amp;nbsp;at scale&lt;/STRONG&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;At Build 2026,&amp;nbsp;we're&amp;nbsp;introducing Azure Logic Apps Automation along with several new Azure Logic Apps capabilities that help organizations build, connect, and operationalize AI-powered automation on Azure.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Public Preview: Azure Logic Apps Automation&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Azure Logic Apps Automation is a new Logic Apps SKU designed to make enterprise-grade automation dramatically easier to build.&amp;nbsp;Built on the same&amp;nbsp;Azure&amp;nbsp;platform organizations trust today, Logic Apps Automation provides a managed environment where workflows, AI agents, enterprise connectivity, knowledge services, and model access are available out of the box.&amp;nbsp;A built-in AI assistant helps users move from intent to implementation using natural language. Developers can generate workflows, configure actions, create expressions, and build automations faster while&amp;nbsp;maintaining&amp;nbsp;full control over the final implementation.&amp;nbsp;Logic Apps Automation also brings AI agents directly into the automation experience. Developers can build and use Microsoft Foundry&amp;nbsp;agents alongside traditional workflow actions, enabling business processes that combine deterministic execution with AI-driven reasoning.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Whether&amp;nbsp;you're&amp;nbsp;a startup building AI-native applications, an enterprise modernizing internal processes, or a developer looking to accelerate automation projects, Logic Apps Automation provides a simpler path from idea to production.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;General Availability: Azure Logic Apps MCP Server&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;As AI agents become increasingly&amp;nbsp;important&amp;nbsp;participants in enterprise applications, organizations need a straightforward way to connect those agents to existing business processes.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The Azure Logic Apps MCP Server is now generally available and enables developers to expose existing Logic Apps workflows as MCP-compatible tools that agents can discover and invoke directly.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This allows organizations to reuse years of existing automation investments without building custom APIs or integration layers. Workflows that already connect enterprise systems, business applications, and operational processes can now become AI-callable capabilities in minutes.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Public Preview: Invoke&amp;nbsp;Microsoft&amp;nbsp;Foundry Agents directly from Logic Apps&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Organizations increasingly build agents in Microsoft Foundry.&amp;nbsp;With new&amp;nbsp;Foundry integration capabilities, developers can now invoke Foundry&amp;nbsp;agents directly from Logic Apps workflows.&amp;nbsp;This enables business processes that combine enterprise systems, APIs, human approvals, schedules, events, and AI-driven reasoning within a single automation experience. Workflows can trigger&amp;nbsp;agents,&amp;nbsp;agents can provide analysis or&amp;nbsp;recommendations, and Logic Apps coordinates&amp;nbsp;the broader business process around those outcomes.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Public Preview: Knowledge as a Service&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;One of the biggest challenges organizations face when building AI-powered applications is making enterprise knowledge accessible.&amp;nbsp;Retrieval-augmented generation often&amp;nbsp;requires&amp;nbsp;ingestion pipelines, chunking strategies, embedding models, vector databases, and retrieval infrastructure before developers can begin building the experiences they&amp;nbsp;actually care&amp;nbsp;about.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Knowledge as a Service simplifies this process.&amp;nbsp;Developers can upload documents directly into Logic&amp;nbsp;Apps&amp;nbsp;workflows, automatically ingest and process content, generate embeddings, and use retrieval as a built-in workflow capability.&amp;nbsp;Instead of building and operating knowledge infrastructure, teams can focus on creating grounded AI experiences and intelligent automations that&amp;nbsp;leverage&amp;nbsp;organizational knowledge.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Public Preview:&amp;nbsp;Codeful&amp;nbsp;Workflows with the Logic Apps Standard SDK&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Different developers prefer&amp;nbsp;different ways&amp;nbsp;of building software.&amp;nbsp;Some teams prefer visual workflow design. Others want the flexibility and familiarity of code-first development.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Codeful&amp;nbsp;Workflows introduces a new code-first development experience for Azure Logic Apps Standard.&amp;nbsp;Built on the Logic Apps Standard SDK,&amp;nbsp;Codeful&amp;nbsp;Workflows enable developers to create workflows directly in code using familiar .NET development patterns while continuing to&amp;nbsp;benefit&amp;nbsp;from Logic Apps connectors, orchestration capabilities, and operational infrastructure.&amp;nbsp;Developers can build, test, debug, and run workflows locally while&amp;nbsp;leveraging&amp;nbsp;existing development tools, source control practices, and AI-assisted coding experiences.&amp;nbsp;This gives teams more flexibility in how they build automation while preserving the benefits of the Logic Apps platform.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Public Preview: Migration Agent for Azure Logic Apps&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Modernization&amp;nbsp;remains&amp;nbsp;a top priority for many organizations as they evaluate legacy integration platforms and prepare for the next generation of cloud-native architectures.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The new Migration Agent for Azure Logic Apps helps simplify that journey.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Designed to&amp;nbsp;assist&amp;nbsp;organizations migrating from BizTalk Server and other third-party integration solutions, the Migration Agent provides intelligent assessments, migration guidance, compatibility analysis, and automated recommendations.&amp;nbsp;By reducing the manual effort traditionally associated with migration projects, organizations can accelerate modernization initiatives while lowering risk and improving confidence throughout the migration process.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Looking ahead&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The future of automation is not simply about adding AI to existing workflows.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;It's&amp;nbsp;about making powerful automation accessible to more builders while preserving the governance, reliability, security, and operational controls organizations&amp;nbsp;require.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Azure Logic Apps has long provided the foundation for enterprise integration and business process automation. With Logic Apps Automation, Foundry&amp;nbsp;agent integration, MCP support, Knowledge as a Service,&amp;nbsp;Codeful&amp;nbsp;Workflows, and AI-powered migration capabilities,&amp;nbsp;we're&amp;nbsp;continuing to expand&amp;nbsp;what's&amp;nbsp;possible while making it easier for organizations to move from idea to production.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;We're excited to see what developers, startups, enterprises, and builders of every kind create next.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jun 2026 19:30:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/what-s-new-in-azure-logic-apps-at-microsoft-build-2026/ba-p/4524685</guid>
      <dc:creator>beenamore</dc:creator>
      <dc:date>2026-06-02T19:30:00Z</dc:date>
    </item>
    <item>
      <title>Hosted MCP Servers in Connector Namespace (Preview)</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/hosted-mcp-servers-in-connector-namespace-preview/ba-p/4524588</link>
      <description>&lt;P&gt;Imagine you've built an agent and you want to give it access to tools via MCP servers. Local servers won't work because your agent can't connect to them in production. Wouldn't it be great if you could quickly stand up secure, enterprise-ready remote MCP servers that your agent can use?&lt;/P&gt;
&lt;P&gt;This is what Connector Namespace enables. Among other capabilities, the namespace provides a feature called &lt;STRONG&gt;hosted MCP servers &lt;/STRONG&gt;that lets you deploy remote MCP servers in minutes. Pick a server from the catalog, deploy it and your agents can discover and call its tools immediately, with infrastructure, deployment, scaling, observability, authentication, and more handled by the platform.&lt;/P&gt;
&lt;H3&gt;Why hosted MCP?&lt;/H3&gt;
&lt;P&gt;Self-hosting MCP servers comes with real operational cost: infrastructure, authentication, monitoring, scaling, availability, and debugging are all on you. For servers that expose standard capabilities like database access or browser automation, that's undifferentiated work that slows you down.&lt;/P&gt;
&lt;P&gt;Hosted MCP servers&amp;nbsp;shift that burden to the platform&lt;EM&gt;,&amp;nbsp;&lt;/EM&gt;offering a fully &lt;EM&gt;managed&lt;/EM&gt; &lt;EM&gt;experience&lt;/EM&gt; so you can just pick a server and let the platform handle everything else:&amp;nbsp;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="width: 100%; height: 220px; border-width: 1px;"&gt;&lt;colgroup&gt;&lt;col style="width: 11.2141%" /&gt;&lt;col style="width: 36.3477%" /&gt;&lt;col style="width: 52.4382%" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 35px;"&gt;&lt;td style="height: 35px;"&gt;&amp;nbsp;&lt;/td&gt;&lt;td style="height: 35px;"&gt;&lt;STRONG&gt;Hosted MCP server&lt;/STRONG&gt;&lt;/td&gt;&lt;td style="height: 35px;"&gt;&lt;STRONG&gt;Self-hosted MCP server&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 35px;"&gt;&lt;td style="height: 35px;"&gt;&lt;STRONG&gt;Setup&lt;/STRONG&gt;&lt;/td&gt;&lt;td style="height: 35px;"&gt;Deploy from catalog in minutes&lt;/td&gt;&lt;td style="height: 35px;"&gt;Build/find server, deploy to your own infra, wire up networking&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 35px;"&gt;&lt;td style="height: 35px;"&gt;&lt;STRONG&gt;Scaling&lt;/STRONG&gt;&lt;/td&gt;&lt;td style="height: 35px;"&gt;Platform-managed, scales automatically&lt;/td&gt;&lt;td style="height: 35px;"&gt;You configure and manage scaling (VMs, containers, load balancers)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 35px;"&gt;&lt;td style="height: 35px;"&gt;&lt;STRONG&gt;Auth&lt;/STRONG&gt;&lt;/td&gt;&lt;td style="height: 35px;"&gt;Inbound and outbound auth handled by the platform&lt;/td&gt;&lt;td style="height: 35px;"&gt;You configure OAuth, managed identity, or OBO end-to-end&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 35px;"&gt;&lt;td style="height: 35px;"&gt;&lt;STRONG&gt;Observability&amp;nbsp;&lt;/STRONG&gt;&lt;/td&gt;&lt;td style="height: 35px;"&gt;One-click App Insights integration&lt;/td&gt;&lt;td style="height: 35px;"&gt;You set up logging, metrics, and alerting yourself&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 35px;"&gt;&lt;td style="height: 35px;"&gt;&lt;STRONG&gt;Cold starts&amp;nbsp;&lt;/STRONG&gt;&lt;/td&gt;&lt;td style="height: 35px;"&gt;Platform manages server lifecycle&lt;/td&gt;&lt;td style="height: 35px;"&gt;You manage warm-up, health checks, and process restarts&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 10px;"&gt;&lt;td style="height: 10px;"&gt;
&lt;P&gt;&lt;STRONG&gt;Availability&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td style="height: 10px;"&gt;
&lt;P&gt;Platform-managed uptime, health monitoring, and automatic recovery&lt;/P&gt;
&lt;/td&gt;&lt;td style="height: 10px;"&gt;
&lt;P&gt;You own high availability, e.g. failover and redundancy&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H3&gt;How it works&lt;/H3&gt;
&lt;P&gt;When you deploy a hosted MCP server, the namespace:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Pulls the pre-built server image from the catalog.&lt;/LI&gt;
&lt;LI&gt;Provisions the runtime environment with your configuration.&lt;/LI&gt;
&lt;LI&gt;Exposes a secure MCP endpoint that agents and MCP clients can connect to.&lt;/LI&gt;
&lt;LI&gt;Handles scaling, health monitoring, and authentication.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;Public preview feature highlight&lt;/H3&gt;
&lt;H4&gt;Supported servers&lt;/H4&gt;
&lt;P&gt;During public preview, a curated set of hosted MCP servers is available. The catalog expands over time based on demand.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="width: 100%; height: 80px; border-width: 1px;"&gt;&lt;colgroup&gt;&lt;col style="width: 11.8982%" /&gt;&lt;col style="width: 88.1945%" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 35px;"&gt;&lt;td style="height: 35px;"&gt;&lt;STRONG&gt;Server&lt;/STRONG&gt;&lt;/td&gt;&lt;td style="height: 35px;"&gt;&lt;STRONG&gt;What it does&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 35px;"&gt;&lt;td style="height: 35px;"&gt;Playwright&lt;/td&gt;&lt;td style="height: 35px;"&gt;Browser automation tools for web navigation, screenshots, and interaction&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 10px;"&gt;&lt;td style="height: 10px;"&gt;Azure SQL&lt;/td&gt;&lt;td style="height: 10px;"&gt;Exposes SQL operations as MCP tools through &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/data-api-builder/mcp/overview" target="_blank" rel="noopener"&gt;Data API builder&lt;/A&gt;, enabling AI agents to interact with SQL databases through a controlled, secure contract with entity abstraction, RBAC, and caching.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;If there's a server you'd like to see in the catalog, file an issue at &lt;A href="https://aka.ms/hosted-mcp-github" target="_blank" rel="noopener"&gt;aka.ms/hosted-mcp-github&lt;/A&gt;. Support for publishing &lt;EM&gt;custom-built &lt;/EM&gt;MCP servers to the catalog is planned for the future.&lt;/P&gt;
&lt;H4&gt;Authentication&lt;/H4&gt;
&lt;P&gt;Hosted MCP servers involve two authentication boundaries:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Inbound&lt;/STRONG&gt; (client → server): OAuth-based authentication with Microsoft Entra ID. Connections from GitHub Copilot in VS Code work out of the box.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Outbound &lt;/STRONG&gt;(server → downstream service)&amp;nbsp; The server authenticates to the downstream service using either&lt;EM&gt; managed identity&lt;/EM&gt; or &lt;EM&gt;on-behalf-of (OBO) &lt;/EM&gt;flow. You choose the approach during deployment, and the platform handles the rest, including credential management and token exchange.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;Observability&lt;/H4&gt;
&lt;P&gt;Hosted MCP servers integrate with Azure Application Insights], so you can monitor server health without setting up your own logging infrastructure. After deployment, you can enable monitoring by providing your Application Insights connection string. Once configured, logs and metrics from the server flow directly into your Application Insights resource, where you can search, filter, and analyze them.&lt;/P&gt;
&lt;H3&gt;Get started&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Quickstart&lt;/STRONG&gt;: &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/logic-apps/connector-namespace/hosted-mcp-quickstart" target="_blank" rel="noopener"&gt;Create a hosted MCP server in Connector Namespace&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Hosted MCP overview&lt;/STRONG&gt;: &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/logic-apps/connector-namespace/connector-namespace-hosted-mcp" target="_blank" rel="noopener"&gt;Hosted MCP servers in Connector Namespace&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Connector Namespace overview&lt;/STRONG&gt;: &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/logic-apps/connector-namespace/connector-namespace-overview" target="_blank" rel="noopener"&gt;What is Connector Namespace?&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Try it out and let us know what you think! File feedback and feature requests at&amp;nbsp;&lt;A href="https://aka.ms/hosted-mcp-github" target="_blank" rel="noopener"&gt;aka.ms/hosted-mcp-github&lt;/A&gt;.&lt;/P&gt;
&lt;H3&gt;What's next&lt;/H3&gt;
&lt;P&gt;Hosted MCP servers are in public preview and the team is actively working to improve the experience. We're looking for your feedback to help shape what comes next. Some areas we're prioritizing:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;Expanding the server catalog&lt;/EM&gt;: adding more servers based on demand and community requests&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;Region availability&lt;/EM&gt;: expanding regional coverage beyond the current preview regions&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;VNet support&lt;/EM&gt;: deploying Hosted MCP servers inside virtual networks with private endpoints&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;Custom server images:&lt;/EM&gt; support for bringing your own MCP server images to the catalog&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;Tool-level access control&lt;/EM&gt;: fine-grained permissions and throttling at the individual tool level&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 04 Jun 2026 21:19:18 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/hosted-mcp-servers-in-connector-namespace-preview/ba-p/4524588</guid>
      <dc:creator>lily-ma</dc:creator>
      <dc:date>2026-06-04T21:19:18Z</dc:date>
    </item>
    <item>
      <title>MCP Test Console and Git Repository synch in Azure API Center</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/mcp-test-console-and-git-repository-synch-in-azure-api-center/ba-p/4524617</link>
      <description>&lt;H2&gt;Why This Matters&lt;/H2&gt;
&lt;P&gt;As organizations race to build AI-powered applications, the Model Context Protocol (MCP) has emerged as the standard way to connect AI agents with external tools and data sources. Managing these MCP servers at enterprise scale, however, has been a growing challenge — until now.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;AI agents are only as useful as the tools they can access. MCP servers expose those tools — from databases and internal APIs to third-party services — in a standardized way that any AI agent or model can consume. As your MCP ecosystem grows, so does the challenge of keeping track of what's available, what's working, and what your teams are actually using.&lt;/P&gt;
&lt;P&gt;Azure API Center already serves as a centralized registry for APIs across your organization. Now it extends that same governance model to MCP servers, complete with developer-friendly discovery, live testing, and automated synchronization from your source repositories.&lt;/P&gt;
&lt;H2&gt;New Feature: MCP Test Console in the API Center Portal&lt;/H2&gt;
&lt;P&gt;Developers can now test MCP server tools interactively without leaving the Azure portal.&lt;/P&gt;
&lt;P&gt;Once an MCP server is registered in your API Center inventory, the &lt;STRONG&gt;API Center portal&lt;/STRONG&gt; — your organization's customizable developer portal — surfaces a dedicated test console on the server's &lt;STRONG&gt;Documentation&lt;/STRONG&gt; tab. Developers simply select a tool, click &lt;STRONG&gt;Run tool&lt;/STRONG&gt;, and immediately see the response.&lt;/P&gt;
&lt;P&gt;This means your teams can:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Validate tools before connecting them to agents&lt;/STRONG&gt; — no more building a test harness from scratch.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Explore tool schemas interactively&lt;/STRONG&gt; — the portal surfaces endpoint details and input/output schemas alongside the live console.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Onboard faster&lt;/STRONG&gt; — developers browsing your internal MCP registry can go from discovery to verified integration in minutes.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The MCP server tiles in the portal provide a clear, browsable view of all registered servers. Each tile surfaces the server's endpoint URL, available tools, and installation instructions for Visual Studio Code — giving developers everything they need to get started in one place.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Getting started:&lt;/STRONG&gt; Set up your &lt;A href="https://learn.microsoft.com/en-us/azure/api-center/set-up-api-center-portal" target="_blank" rel="noopener"&gt;API Center portal&lt;/A&gt;, then navigate to any registered MCP server. On the &lt;STRONG&gt;Documentation&lt;/STRONG&gt; tab, select a tool and click &lt;STRONG&gt;Run tool&lt;/STRONG&gt; to open the test console.&lt;/P&gt;
&lt;H2&gt;New Feature: Synch MCP Servers from a Git Repository&lt;/H2&gt;
&lt;P&gt;Managing API assets shouldn't require manual registration every time something changes. With Git repository integration, Azure API Center can automatically sync assets — including MCP server definitions — directly from your source repository.&lt;/P&gt;
&lt;H3&gt;How It Works&lt;/H3&gt;
&lt;P&gt;When you connect a Git repository to your API Center:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;An environment is created&lt;/STRONG&gt; in your API Center representing the repository as an asset source.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;API Center regularly synchronizes&lt;/STRONG&gt; MCP servers from the repository into your inventory — no manual intervention required.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Assets appear in your inventory&lt;/STRONG&gt; on the &lt;STRONG&gt;Inventory &amp;gt; Assets&lt;/STRONG&gt; page with a visual link indicator, making it easy to identify which assets are source-controlled.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;This is especially valuable for teams that maintain MCP server definitions, skill files, or OpenAPI specs in version control. As your repository evolves, your API Center inventory stays current automatically.&lt;/P&gt;
&lt;H3&gt;Setting It Up&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Step 1: Secure your access credentials (for private repos)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;If your repository is private, store a personal access token (PAT) as a secret in Azure Key Vault. Your API Center instance uses a managed identity to retrieve this secret securely — you can configure the managed identity manually or let API Center handle it automatically during the integration setup.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 2: Connect the repository&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;In the Azure portal, go to your API Center and navigate to &lt;STRONG&gt;Platforms &amp;gt; Integrations &amp;gt; + New integration &amp;gt; From Git repository&lt;/STRONG&gt;. You'll configure:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Repository URL&lt;/STRONG&gt; — including an optional branch and subfolder path (e.g., https://github.com/&amp;lt;org&amp;gt;/&amp;lt;repo&amp;gt;/tree/main/skills).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Git provider&lt;/STRONG&gt; — such as GitHub.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Asset type configuration&lt;/STRONG&gt; — API Center defaults to a skill asset type with the file pattern **/skill.md, but you can add additional asset types to match your repository structure.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;PAT reference&lt;/STRONG&gt; — select the Key Vault secret containing your PAT, if applicable.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Environment details&lt;/STRONG&gt; — give the repository environment a friendly name, resource ID, type (e.g., Production), and lifecycle stage for synced assets.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Step 3: Let the sync run&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Once created, the integration runs automatically. Your assets will appear in the &lt;STRONG&gt;Inventory &amp;gt; Assets&lt;/STRONG&gt; view, linked to their source in the repository.&lt;/P&gt;
&lt;H3&gt;Access Control for Private Repositories&lt;/H3&gt;
&lt;P&gt;The integration uses Azure's managed identity framework to authenticate to Key Vault. Assign your API Center's managed identity the &lt;STRONG&gt;Key Vault Secrets User&lt;/STRONG&gt; role on your Key Vault to grant the necessary read access. If you prefer, API Center can configure this automatically — just enable the &lt;STRONG&gt;Automatically configure managed identity and assign permissions&lt;/STRONG&gt; option during integration setup.&lt;/P&gt;
&lt;H2&gt;Bringing It Together: A Complete MCP Governance Story&lt;/H2&gt;
&lt;P&gt;Together, these two features complete an end-to-end workflow for enterprise MCP governance:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Register&lt;/STRONG&gt; → Connect your Git repository and let API Center automatically synch your MCP servers and skills as they evolve.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Discover&lt;/STRONG&gt; → Developers and AI engineers browse the API Center portal to find the right MCP server for their agent, with full schema visibility and endpoint details.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Test&lt;/STRONG&gt; → The built-in test console lets developers validate tools interactively before committing to an integration.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Govern&lt;/STRONG&gt; → Use API Center's access management capabilities to control who can view and consume specific MCP servers across your organization.&lt;/P&gt;
&lt;P&gt;And if you're building MCP servers on Azure services, the registry integrates directly with Azure API Management, Azure Logic Apps, and Azure Functions — so your MCP ecosystem and your API ecosystem share a single source of truth.&lt;/P&gt;
&lt;H2&gt;Get Started&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/api-center/register-discover-mcp-server" target="_blank" rel="noopener"&gt;Register and discover MCP servers in Azure API Center&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/api-center/synchronize-assets-git" target="_blank" rel="noopener"&gt;Synchronize API assets from a Git repository&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/api-center/set-up-api-center-portal" target="_blank" rel="noopener"&gt;Set up the API Center portal&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://mcp.azure.com/" target="_blank" rel="noopener"&gt;Explore MCP Center&lt;/A&gt; — Azure API Center's public MCP registry&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jun 2026 19:14:03 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/mcp-test-console-and-git-repository-synch-in-azure-api-center/ba-p/4524617</guid>
      <dc:creator>Sreekanth_Thirthala</dc:creator>
      <dc:date>2026-06-02T19:14:03Z</dc:date>
    </item>
  </channel>
</rss>

