Connected Microservices with Azure Container Apps

Published Jan 26 2022 05:13 AM 2,802 Views
Microsoft

Azure Container Apps(Preview) enables users to run containerised applications in a completely Serverless manner providing complete isolation of Orchestration and Infrastructure. Applications built on Azure Container Apps can dynamically scale based on the various triggers as well as KEDA-supported scalers

Features of Azure Container Apps include:

  • Run multiple Revisions of containerised applications

  • Autoscale apps based on any KEDA-supported scale trigger

  • Enable HTTPS Ingress without having to manage other Azure infrastructure like L7 Load Balancers

  • Easily implement Blue/Green deployment and perform A/B Testing by splitting traffic across multiple versions of an application

  • Azure CLI extension or ARM templates to automate management of containerised applications

  • Manage Application Secrets securely

  • View Application Logs using Azure Log Analytics

  • Manage multiple Container Apps using Azure APIM providing rich APIM Policies and Authentication mechanisms to the Container Apps. This can be achieved in couple of ways:

    • Leverage Virtual Network Integration feature of Container Apps to securely manage through API Management in a virtual Network

    • Use Self-hosted Gateway feature of APIM to treat this as a Container App and manage other Container apps

     

This article would demonstrate:

  • How to Setup Azure Container Apps using Azure CLI   

  • How to Deploy a containerised Logic App as Azure Container App 

  • How to Deploy a containerised Azure Function as Azure Container App 

  • Deploy APIM in a Virtual Network
  • Deploy the Self-hosted Gateway component of APIM as a Container App 

  • Integrate the two Container Apps with APIM Container App 

  • Test the flow end to end 

Source Code

 

How to Setup

 

Set CLI Variables

tenantId="<tenantId>"
subscriptionId="<subscriptionId>"
resourceGroup="<resourceGroup>"
monitoringResourceGroup="<monitoringResourceGroup>"
location="<location>"
logWorkspace="<logWorkspace>"
basicEnvironment="basic-env"
securedEnvironment="secure-env"
acrName="<acrName>"
registryServer="<container_registry_server>"
registryUserName="<container_registry_username>"
registryPassword="<container_registry_password>"

# Function App would call this url to get the POST url end point of the http trigerred Logic App
logicAppCallback=""

# Logic App POST url returned from the previous call
logicAppPost=""

# VNET for Securing Container Apps
containerAppVnetName="containerapp-workshop-vnet"
containerAppVnetId=
containerVnetPrefix=""

# Subnet for Control plane of the Container Apps Infrastructure
controlPlaneSubnetName="containerapp-cp-subnet"
controlPlaneSubnetId=
controlPlaneSubnetPrefix=""

# Private DNS zone for Container Apps
containerAppLinkName="containerapp-dns-plink"

# Subnet for hosting Container Apps
appsSubnetName="containerapp-app-subnet"
appsSubnetId=
appsSubnetPrefix=""

# Both Control plane Subnet and Application Services Subnet should be in same VNET viz. $containerAppVnetName

apimVnetName="apim-workshop-vnet"
apimVnetId=
apimVnetPrefix=""
apimSubnetName="apim-workshop-subnet"
apimSubnetId=
apimSubnetPrefix=""

# Private DNS zone for APIM
apimLinkName="apim-dns-plink"

# VNET peering between Container App Vnet and APIM VNet (In case two subnets are not within same Vnet)
containerAppPeeringName="containerpp-apim-peering"
apimPeeringName="apim-containerpp-peering"

 

 

Configure Azure CLI

# Add CLI extension for Container Apps
az extension add \
--source https://workerappscliextension.blob.core.windows.net/azure-cli-extension/containerapp-0.2.2-py2.py3-none-any.whl
 
# Register the Microsoft.Web namespace
az provider register --namespace Microsoft.Web
az provider show --namespace Microsoft.Web

 

Create Log Analytics Workspace

az monitor log-analytics workspace create --resource-group $monitoringResourceGroup --workspace-name $logWorkspace

# Retrieve Log Analytics ResourceId
logWorkspaceId=$(az monitor log-analytics workspace show --query customerId -g $monitoringResourceGroup -n $logWorkspace -o tsv)

# Retrieve Log Analytics Secrets
logWorkspaceSecret=$(az monitor log-analytics workspace get-shared-keys --query primarySharedKey -g $monitoringResourceGroup -n $logWorkspace -o tsv)

 

Create Container App Environment

# Simple environment with no additional security for the underlying sInfrastructure
az containerapp env create --name $basicEnvironment --resource-group $resourceGroup \
 --logs-workspace-id $logWorkspaceId --logs-workspace-key $logWorkspaceSecret --location $location

 

 

Connecting the Dots....

apim-manage-container-app.png

 

  • Setup a Secured Container App environment integrating it with a Virtual Network

  • Restrict communication to the Secured environment is from within the Virtual Network or a peer Virtual Network

  • Deploy a Logic App as a Container App into the Secured environment

  • Deploy a Function App as a Container App into the Secured environment

  • Deploy an APIM instance in a peered Virtual Network (either External or Internal)

  • Configure APIM to connect to the Container Apps securely

 

 

Setup Azure Container App

Create Virtual Network to inject Container Apps

# Container App Vnet
az network vnet create --name $containerVnetName --resource-group $resourceGroup --address-prefixes $containerVnetPrefix
containerAppVnetId=$(az network vnet show --name $containerVnetName --resource-group $resourceGroup --query="id" -o tsv)

# ControlPlane Subnet
az network vnet subnet create --name $controlPlaneSubnetName --vnet-name $containerVnetName --resource-group $resourceGroup --address-prefixes $controlPlaneSubnetPrefix
controlPlaneSubnetId=$(az network vnet subnet show -n $controlPlaneSubnetName --vnet-name $containerVnetName --resource-group $resourceGroup --query="id" -o tsv)

# Apps Subnet
az network vnet subnet create --name $appsSubnetName --vnet-name $containerVnetName --resource-group $resourceGroup --address-prefixes $appsSubnetPrefix
appsSubnetId=$(az network vnet subnet show -n $appsSubnetName --vnet-name $containerVnetName --resource-group $resourceGroup --query="id" -o tsv)

# APIM Vnet
az network vnet create --name $apimVnetName --resource-group $resourceGroup --address-prefixes $apimVnetPrefix
apimVnetId=$(az network vnet show --name $apimVnetName --resource-group $resourceGroup --query="id" -o tsv)

# APIM Subnet
az network vnet subnet create --name $apimSubnetName --vnet-name $apimVnetName --resource-group $resourceGroup --address-prefixes $apimSubnetPrefix
apimSubnetId=$(az network vnet subnet show --name $apimSubnetName --vnet-name $apimVnetName --resource-group $resourceGroup --query="id" -o tsv)

# VNET peering between Container App Vnet and APIM VNet (In case two subnets are not within same Vnet)
az network vnet peering create --name $containerAppPeeringName --remote-vnet $apimVnetId \
--resource-group $resourceGroup --vnet-name $containerVnetName --allow-vnet-access

az network vnet peering create --name $apimPeeringName --remote-vnet $containerAppVnetId \
--resource-group $resourceGroup --vnet-name $apimVnetName --allow-vnet-access

 

 

Create a Secured Environment

Please follow this excellent article to get a detailed view on this

az containerapp env create --name $securedEnvironment --resource-group $resourceGroup \
 --logs-workspace-id $logWorkspaceId --logs-workspace-key $logWorkspaceSecret --location $location \
 --controlplane-subnet-resource-id $controlPlaneSubnetId \
 --app-subnet-resource-id $appsSubnetId --internal-only
  • --internal-only flag ensures that this environment can communicate with services on same virtual network or on a peered virtual network

  • Excluding --internal-only flag makes this environment reachable from other container apps in the same environment

 

 

Configure a Secured Environment

Create Private DNS Zone

containerapp-private-dns.png

 

defaultDomain=$(az containerapp env show --name $securedEnvironment --resource-group $resourceGroup --query="defaultDomain" -o tsv)
staticIp=$(az containerapp env show --name $securedEnvironment --resource-group $resourceGroup --query="staticIp" -o tsv)

az network private-dns zone create --name $defaultDomain --resource-group $resourceGroup

#az network private-dns zone show --name $defaultDomain --resource-group $resourceGroup

 

Link Virtual Networks

containerapp-private-dns-plink.png

 

 

 

az network private-dns link vnet create --name $containerAppLinkName --resource-group $resourceGroup \
--virtual-network $containerAppVnetName --zone-name $defaultDomain

#az network private-dns link vnet show --name $containerAppLinkName --resource-group $resourceGroup --zone-name $defaultDomain

az network private-dns link vnet create --name $apimLinkName --resource-group $resourceGroup \
--virtual-network $apimVnetName --zone-name $defaultDomain

#az network private-dns link vnet show --name $apimLinkName --resource-group $resourceGroup --zone-name $defaultDomain

 

 

Deploy Azure Logic App as Container App

Build a Logic App with basic request/response workflow - viz. LogicContainerApp

  • Run and test this Logic app as docker container locally

  • Deploy the Logic App container onto Azure as a Container App

  • Host the Logic App inside a Virtual Network (Secured Environment)

  • Expose the container app with Internal Ingress - blocking all public access

Logic App in a Container

  • Let us first Create and Deploy a Logic app as Docker Container

  • Logic App runs an Azure Function locally and hence few tools/extensions need to be installed

    Pre-Requisites
    • Azure Function Core Tools - v3.x

      • The above link is for macOS; please install the appropriate links in the same page for other Operating Systems

      • At the time of writing, Core tools 3.x only supports the Logic App Designer within Visual Studio Code

      • The current example has been tested with - Function Core Tools version 3.0.3904 on a Windows box

    • Docker Desktop for Windows

    • A Storage Account on Azure - which is needed by any Azure function App

      • Logic App (aka Azure Function) would use this storage to cache its state

    • VS Code Extension for Standard Logic App

    • VS Code Extension for Azure Function

    • VS Code extension for Docker

      • This is Optional but recommended; it makes life easy while dealing with Dockerfile and Docker CLI commands

  • Create a Local folder to host all files related Logic App - viz. LogicContainerApp

  • Open the folder in VS Code

  • Create a New Logic App Project in this Folder

    • Choose Stateful workflow in the process and name accordingly - viz. httperesflow

    • This generates all necessary files and sub-folders within the current folder

      • A folder named httpresflow is also added which contains the workflow.json file

      • This describes the Logic App Actions/triggers

      • This example uses a Http Request/Response type Logic App for simplicity

      • The Logic App would accept a Post body as below and would return back the same as response

        {
           "Zip": "testzip-2011.zip"
        }
  • Right click on the workflow.json file and Open the Logic App Designer - this might take few seconds to launch

  • Add Http Request trigger

logicapp-designer-request.png

  • Add Http Response Action

logicapp-designer-response.png

 

  • Save the Designer changes

  • Right click on the empty area on the workspace folder structure and Open the Context menu

    • Select the menu options that says - Convert to Nuget-based Logic App project

    • This would generate .NET specific files - along with a LogicContainerApp.csproj file

logicapp-nuget-menu.png

 

  • Open the local.settings.json file

  • Replace the value of AzureWebJobsStorage variable with the value from Storage Account Connection string created earlier

  • Add a Dockerfile in the workspace

    FROM mcr.microsoft.com/azure-functions/node:3.0

    ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
        AzureFunctionsJobHost__Logging__Console__IsEnabled=true \
        FUNCTIONS_V2_COMPATIBILITY_MODE=true \    
        AzureWebJobsStorage='' \
        AZURE_FUNCTIONS_ENVIRONMENT=Development \
        WEBSITE_HOSTNAME=localhost \
        WEBSITE_SITE_NAME=logiccontainerapp

    COPY ./bin/Debug/netcoreapp3.1 /home/site/wwwroot
    • WEBSITE_SITE_NAME - this is the name by which entries are created in Storage Account by the Logic App while caching its state

       

  • Build docker image

    docker build -t <repo_name>/<image_name>:<tag> .

     

  • Create the Logic App Container

    docker run --name logiccontainerapp -e AzureWebJobsStorage=$azureWebJobsStorage -d -p 8080:80 <repo_name>/<image_name>:<tag>

     

  • Let us now Run the logic app locally as a Docker container

  • Open the Storage account created earlier

  • Open the Containers

  • Open azure-webjobs-secrets blob

logicapp-webjobs-secrets-1.pnglogicapp-webjobs-secrets-2.pnglogicapp-webjobs-secrets-3.png

 

  • Get the value of the master key in the host.json file

logicapp-host-json.png

 

  • Open POSTMAN or any Rest client of choice like curl
http://localhost:8080/runtime/webhooks/workflow/api/management/workflows/httpresflow/triggers/manual/listCallbackUrl?api-version=2020-05-01-preview&code=<master_key_value_from_storage_account>
  • This would return the Post callback Url for Http triggered Logic App
{
   "value": "https://localhost:443/api/httpresflow/triggers/manual/invoke?api-version=2020-05-01-preview&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<value>",
   "method": "POST",
   "basePath": "https://localhost/api/httpresflow/triggers/manual/invoke",
   "queries": {
       "api-version": "2020-05-01-preview",
       "sp": "/triggers/manual/run",
       "sv": "1.0",
       "sig": "<value>"
  }
}
  • Copy the value of the value parameter from the json response
  • Make following Http call
http://localhost:8080/api/httpresflow/triggers/manual/invoke?api-version=2020-05-01-preview&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<value>
  • Post Body
{
   "Zip": "testzip-2011.zip"
}
  • Check the response coming back from Logic App as below
{
   "Zip": "testzip-2011.zip"
}

Setup Azure Container App

  • Create Virtual Network to inject Container Apps
containerAppVnetId=$(az network vnet show -n $containerAppVnetName --resource-group $resourceGroup --query="id" -o tsv)

controlPlaneSubnetId=$(az network vnet subnet show -n $controlPlaneSubnetName --vnet-name $containerAppVnetName --resource-group $resourceGroup --query="id" -o tsv)

appsSubnetId=$(az network vnet subnet show -n $appsSubnetName --vnet-name $containerAppVnetName --resource-group $resourceGroup --query="id" -o tsv)
  • Create a Secured Environment for Azure Container Apps with this Virtual Network
az containerapp env create --name $securedEnvironment --resource-group $resourceGroup \
 --logs-workspace-id $logWorkspaceId --logs-workspace-key $logWorkspaceSecret --location $location \
 --controlplane-subnet-resource-id $controlPlaneSubnetId \
 --app-subnet-resource-id $appsSubnetId

 

Logic App as Azure Container App

  • Let us now deploy the logic app container onto Azure as Container App

  • Push Logic App container image to Azure Container Registry

    # If Container image is already created and tested, use Docker CLI
    docker push <repo_name>/<image_name>:<tag>
     
    OR
     
    # Use Azure CLI command for ACR to build and push
    az acr build -t <repo_name>/<image_name>:<tag> -r $acrName .
  • Create Azure Container App with this image

    logicappImageName="$registryServer/logiccontainerapp:v1.0.0"
         azureWebJobsStorage="<storage_account_connection_string"
         
    az containerapp create --name logicontainerapp --resource-group $resourceGroup \
       --image $logicappImageName --environment $securedEnvironment \
       --registry-login-server $registryServer --registry-username $registryUserName \
       --registry-password $registryPassword \
       --ingress internal --target-port 80 --transport http \
       --secrets azurewebjobsstorage=$azureWebJobsStorage \
       --environment-variables "AzureWebJobsStorage=secretref:azurewebjobsstorage"
  • Note down the Logic App ingress url

logic-container-overview.png

 

 

Deploy Azure Function as Container App

Build an Azure Function App with Http POST trigger - viz. HttpLogicContainerApp

  • Azure Function would call the above logic app (i.e. LogicContainerApp) sending some Json as POST body

  • Function would receive the http response from Logic App and return back to the caller

  • Run and test this function app as docker container locally

  • Deploy the Function App container onto Azure as a Container App

  • Host the Function App inside a Virtual Network (Secured Environment)

  • Expose the container app with Internal Ingress - blocking all public access

This function will be triggered by a http Post call

  • This is going to invoke Logic App internally

  • Return the response back to the caller

  • Before we Deploy the function app, let us look at its code

 

using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
namespace HttpContainerApps
{
     public static class HttpContainerApps
    {
        [FunctionName("container")]
         public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
             ILogger log)
        {
             log.LogInformation("C# HTTP trigger function processed a request.");
 
             var name = req.Query["name"];
             var cl = new HttpClient();
 
             var uri = $"http://httpcontainerapp-secured.internal.greensea-4ecd9ebc.eastus.azurecontainerapps.io/api/container?name={name}";
             var res = await cl.GetAsync(uri);
             var response = await res.Content.ReadAsStringAsync();
             log.LogInformation($"Status:{res.StatusCode}");
             log.LogInformation($"Response:{response}-v1.0.4");
             response = $"Hello, {response}-v1.0.4";
             // var response = $"Secured, {name}-v1.0.3";
             return new OkObjectResult(response);
        }
    }
}      
  • Deploy Azure Function app as Container App

 
httpImageName="$registryServer/httplogiccontainerapp:v1.0.5"

# Function App would call this url to get the POST url end point of the http trigerred Logic App
logicAppCallbackUrl="https://<logicontainerapp_internal_ingress_url>/runtime/webhooks/workflow/api/management/workflows/httpresflow/triggers/manual/listCallbackUrl?api-version=2020-05-01-preview&code=<master_key_value_from_storage_account>"

# Logic App POST url returned from the previous call
logicAppPostUrl="https://<logicontainerapp_internal_ingress_url>/api/httpresflow/triggers/manual/invoke?api-version=2020-05-01-preview&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig={0}"  


az containerapp create --name httplogiccontainerapp --resource-group $resourceGroup \
--image $httpImageName --environment $securedEnvironment \
--registry-login-server $registryServer --registry-username $registryUserName \
--registry-password $registryPassword \
--ingress internal --target-port 80 --transport http \
--secrets azurewebjobsstorage=$azureWebJobsStorage,logicappcallbackurl=$logicAppCallbackUrl,logicappposturl=$logicAppPostUrl \
--environment-variables "AzureWebJobsStorage=secretref:azurewebjobsstorage,LOGICAPP_CALLBACK_URL=secretref:logicappcallbackurl,LOGICAPP_POST_URL=secretref:logicappposturl"
  • This Container App is with Ingress type Internal so this would be at exposed publicly

 

 

 

Deploy APIM in a Virtual Network

apim-overview.png

 

  • Integrate both the Container Apps (Function App and Logic App) with Azure APIM

  • Create an APIM instance on Azure

  • Deploy APIM in an Internal Vnet or External Vnet and follow instructions accordingly

  • Add two Container Apps (as deployed above) as backend for the APIM

 

 

Alternate Approach

Deploy Self-hosted Gateway for APIM as Container App

apim-container-app.png

 

Integrate both the Container Apps (Function App and Logic App) with Azure APIM

  • Create an APIM instance on Azure with a Self-hosted Gateway

  • Deploy Self-hosted APIM as Container App and in the same Secured Environment as above

  • Add two Container Apps (as deployed above) as backend for the APIM

  • Expose the APIM Container App with External Ingress thus making it the only public facing endpoint for the entire system

  • APIM Container App (Self-hosted Gateway) would be able to call the internal Container Apps since being part of the same Secured Environment

  • Select gateway option in APIM in the Azure Portal

apim-gateway-1.png

 

  • Get the Endpoint Url and Auth Token from the portal

apim-gateway-2.png

 

  • Define ARM template for APIM Container App

{
         "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
         "contentVersion": "1.0.0.0",
         "parameters": {
             "containerappName": {
                 "defaultValue": "apimcontainerapp",
                 "type": "String"
            },
             "location": {
                 "defaultValue": "eastus",
                 "type": "String"
            },
             "environmentName": {
                 "defaultValue": "secure-env",
                 "type": "String"
            },
             "serviceEndpoint": {
                 "defaultValue": "",
                 "type": "String"
            },
             "serviceAuth": {
                 "defaultValue": "",
                 "type": "String"
            }
        },
         "variables": {},
         "resources": [
            {
                 "apiVersion": "2021-03-01",
                 "type": "Microsoft.Web/containerApps",
                 "name": "[parameters('containerappName')]",
                 "location": "[parameters('location')]",
                 "properties": {
                     "kubeEnvironmentId": "[resourceId('Microsoft.Web/kubeEnvironments', parameters('environmentName'))]",
                     "configuration": {                  
                         "ingress": {
                             "external": true,
                             "targetPort": 8080,
                             "allowInsecure": false,
                             "traffic": [
                                {
                                     "latestRevision": true,
                                     "weight": 100
                                }
                            ]
                        }
                    },
                     "template": {
                         // "revisionSuffix": "revapim",
                         "containers": [
                            {
                                 "name": "conainerapp-apim-gateway",
                                 "image": "mcr.microsoft.com/azure-api-management/gateway:latest",                            
                                 "env": [
                                    {
                                         "name": "config.service.endpoint",
                                         "value": "[parameters('serviceEndpoint')]"
                                    },
                                    {
                                         "name": "config.service.auth",
                                         "value": "[parameters('serviceAuth')]"
                                    }
                                ],
                                 "resources": {
                                     "cpu": 0.5,
                                     "memory": "1Gi"
                                }
                            }
                        ],
                         "scale": {
                             "minReplicas": 1,
                             "maxReplicas": 3
                        }
                    }
                }
            }
        ]
    }
  • Deploy APIM as Container App

apimappImageName="mcr.microsoft.com/azure-api-management/gateway:latest"
serviceEndpoint="<service_Endpoint>"
serviceAuth="<service_Auth>"

az deployment group create -f ./api-deploy.json -g $resourceGroup \
 --parameters serviceEndpoint=$serviceEndpoint serviceAuth=$serviceAuth

 

 

Integrate All using APIM

  • Add Container Apps as APIM back end

  • The Web Service URL would be the Internal Ingress url of the Http Container App

apim-api-1.pngapim-api-2.pngapim-api-3.png

 

 

 

Test End-to-End

Grab the FQDN of the APIM Container App from the portal

apim-container-overview.png

The FQDN can be obtained through Azure CLI as well

fqdn=$(az containerapp show -g $resourceGroup -n apimcontainerapp --query="configuration.ingress.fqdn")

Make a call to the API URL as below and receive the response back

curl -k -X POST --data '{"zip":"test.zip"}' https://$fqdn/container/api/logicapp/
....

{"zip":"test.zip"}

 

 

References

%3CLINGO-SUB%20id%3D%22lingo-sub-3072158%22%20slang%3D%22en-US%22%3EConnected%20Microservices%20with%20Azure%20Container%20Apps%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-3072158%22%20slang%3D%22en-US%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-meta-i-c%20md-link%20md-expand%22%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fcontainer-apps%2Foverview%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAzure%20Container%20Apps(Preview)%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20enables%20users%20to%20run%20containerised%20applications%20in%20a%20completely%20Serverless%20manner%20providing%20complete%20isolation%20of%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EOrchestration%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20and%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EInfrastructure%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E.%20Applications%20built%20on%20Azure%20Container%20Apps%20can%20dynamically%20scale%20based%20on%20the%20various%20triggers%20as%20well%20as%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fkeda.sh%2Fdocs%2Fscalers%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3EKEDA-supported%20scalers%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EFeatures%20of%20Azure%20Container%20Apps%20include%3A%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ERun%20multiple%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3ERevisions%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20of%20containerised%20applications%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EAutoscale%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20apps%20based%20on%20any%20KEDA-supported%20scale%20trigger%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EEnable%20HTTPS%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EIngress%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20without%20having%20to%20manage%20other%20Azure%20infrastructure%20like%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EL7%20Load%20Balancers%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EEasily%20implement%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EBlue%2FGreen%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20deployment%20and%20perform%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EA%2FB%20Testing%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20by%20splitting%20traffic%20across%20multiple%20versions%20of%20an%20application%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EAzure%20CLI%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20extension%20or%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EARM%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20templates%20to%20automate%20management%20of%20containerised%20applications%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EManage%20Application%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3ESecrets%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20securely%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EView%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EApplication%20Logs%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20using%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EAzure%20Log%20Analytics%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20md-expand%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EManage%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20multiple%20Container%20Apps%20using%20Azure%20APIM%20providing%20rich%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fapi-management%2Fapi-management-policies%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAPIM%20Policies%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20and%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fapi-management%2Fapi-management-howto-aad%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAuthentication%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20mechanisms%20to%20the%20Container%20Apps.%20This%20can%20be%20achieved%20in%20couple%20of%20ways%3A%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ELeverage%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fapps-on-azure-blog%2Fazure-container-apps-virtual-network-integration%2Fba-p%2F3096932%22%20target%3D%22_blank%22%3E%3CSPAN%20class%3D%22md-plain%22%3EVirtual%20Network%20Integration%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20feature%20of%20Container%20Apps%20to%20securely%20manage%20through%20API%20Management%20in%20a%20virtual%20Network%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%22%3EUse%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fapi-management%2Fself-hosted-gateway-overview%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3ESelf-hosted%20Gateway%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3E%20feature%20of%20APIM%20to%20treat%20this%20as%20a%20Container%20App%20and%20manage%20other%20Container%20apps%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThis%20article%20would%20demonstrate%3A%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%20data-unlink%3D%22true%22%3E%3CSPAN%20class%3D%22md-meta-i-c%20md-link%22%3E%3CSPAN%20class%3D%22md-plain%22%3EHow%20to%20Setup%20Azure%20Container%20Apps%20using%20Azure%20CLI%3C%2FSPAN%3E%26nbsp%3B%26nbsp%3B%3C%2FSPAN%3E%26nbsp%3B%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%20data-unlink%3D%22true%22%3E%3CSPAN%20class%3D%22md-meta-i-c%20md-link%22%3E%3CSPAN%20class%3D%22md-plain%22%3EHow%20to%20Deploy%20a%20containerised%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ELogic%20App%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20as%20Azure%20Container%20App%3C%2FSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%20data-unlink%3D%22true%22%3E%3CSPAN%20class%3D%22md-meta-i-c%20md-link%22%3E%3CSPAN%20class%3D%22md-plain%22%3EHow%20to%20Deploy%20a%20containerised%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EAzure%20Function%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20as%20Azure%20Container%20App%3C%2FSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CSPAN%20class%3D%22md-meta-i-c%20md-link%22%3E%3CSPAN%20class%3D%22md-plain%22%3EDeploy%20APIM%20in%20a%20Virtual%20Network%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%20data-unlink%3D%22true%22%3E%3CSPAN%20class%3D%22md-meta-i-c%20md-link%22%3E%3CSPAN%20class%3D%22md-plain%22%3EDeploy%20the%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ESelf-hosted%20Gateway%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20component%20of%20APIM%20as%20a%20Container%20App%3C%2FSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%20data-unlink%3D%22true%22%3E%3CSPAN%20class%3D%22md-meta-i-c%20md-link%22%3E%3CSPAN%20class%3D%22md-plain%22%3EIntegrate%20the%20two%20Container%20Apps%20with%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EAPIM%20Container%20App%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%20data-unlink%3D%22true%22%3E%3CSPAN%20class%3D%22md-meta-i-c%20md-link%22%3E%3CSPAN%20class%3D%22md-plain%22%3ETest%20the%20flow%20end%20to%20end%3C%2FSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fmonojit18%2FContainerApps.git%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-meta-i-c%20md-link%22%3E%3CSPAN%20class%3D%22md-plain%22%3ESource%20Code%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FA%3E%3C%2FP%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-336437180%22%20id%3D%22toc-hId-336587152%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20id%3D%22toc-hId--1471017283%22%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId--1470867311%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EHow%20to%20Setup%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH4%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-1717560128%22%20id%3D%22toc-hId-1717710100%22%3E%3CSPAN%20class%3D%22md-plain%22%3ESet%20CLI%20Variables%3C%2FSPAN%3E%3C%2FH4%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EtenantId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3CTENANTID%3E%22%3C%2FTENANTID%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EsubscriptionId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3CSUBSCRIPTIONID%3E%22%3C%2FSUBSCRIPTIONID%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EresourceGroup%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3CRESOURCEGROUP%3E%22%3C%2FRESOURCEGROUP%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EmonitoringResourceGroup%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3CMONITORINGRESOURCEGROUP%3E%22%3C%2FMONITORINGRESOURCEGROUP%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3Elocation%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3CLOCATION%3E%22%3C%2FLOCATION%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3ElogWorkspace%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3CLOGWORKSPACE%3E%22%3C%2FLOGWORKSPACE%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EbasicEnvironment%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22basic-env%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EsecuredEnvironment%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22secure-env%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EacrName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3CACRNAME%3E%22%3C%2FACRNAME%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EregistryServer%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3CCONTAINER_REGISTRY_SERVER%3E%22%3C%2FCONTAINER_REGISTRY_SERVER%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EregistryUserName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3CCONTAINER_REGISTRY_USERNAME%3E%22%3C%2FCONTAINER_REGISTRY_USERNAME%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EregistryPassword%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3CCONTAINER_REGISTRY_PASSWORD%3E%22%3C%2FCONTAINER_REGISTRY_PASSWORD%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Function%20App%20would%20call%20this%20url%20to%20get%20the%20POST%20url%20end%20point%20of%20the%20http%20trigerred%20Logic%20App%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3ElogicAppCallback%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Logic%20App%20POST%20url%20returned%20from%20the%20previous%20call%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3ElogicAppPost%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20VNET%20for%20Securing%20Container%20Apps%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EcontainerAppVnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22containerapp-workshop-vnet%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EcontainerAppVnetId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EcontainerVnetPrefix%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Subnet%20for%20Control%20plane%20of%20the%20Container%20Apps%20Infrastructure%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EcontrolPlaneSubnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22containerapp-cp-subnet%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EcontrolPlaneSubnetId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EcontrolPlaneSubnetPrefix%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Private%20DNS%20zone%20for%20Container%20Apps%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EcontainerAppLinkName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22containerapp-dns-plink%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Subnet%20for%20hosting%20Container%20Apps%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EappsSubnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22containerapp-app-subnet%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EappsSubnetId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EappsSubnetPrefix%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Both%20Control%20plane%20Subnet%20and%20Application%20Services%20Subnet%20should%20be%20in%20same%20VNET%20viz.%20%24containerAppVnetName%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EapimVnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22apim-workshop-vnet%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EapimVnetId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EapimVnetPrefix%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EapimSubnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22apim-workshop-subnet%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EapimSubnetId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EapimSubnetPrefix%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Private%20DNS%20zone%20for%20APIM%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EapimLinkName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22apim-dns-plink%22%3CBR%20%2F%3E%3CBR%20%2F%3E%23%20VNET%20peering%20between%20Container%20App%20Vnet%20and%20APIM%20VNet%20(In%20case%20two%20subnets%20are%20not%20within%20same%20Vnet)%3CBR%20%2F%3EcontainerAppPeeringName%3D%22containerpp-apim-peering%22%3CBR%20%2F%3EapimPeeringName%3D%22apim-containerpp-peering%22%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CH4%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId--89894335%22%20id%3D%22toc-hId--89744363%22%3E%26nbsp%3B%3C%2FH4%3E%0A%3CH4%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId--1897348798%22%20id%3D%22toc-hId--1897198826%22%3E%26nbsp%3B%3C%2FH4%3E%0A%3CH4%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-590164035%22%20id%3D%22toc-hId-590314007%22%3E%3CSPAN%20class%3D%22md-plain%22%3EConfigure%20Azure%20CLI%3C%2FSPAN%3E%3C%2FH4%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Add%20CLI%20extension%20for%20Container%20Apps%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3Eaz%20extension%20add%20%5C%3CBR%20%2F%3E--source%20https%3A%2F%2Fworkerappscliextension.blob.core.windows.net%2Fazure-cli-extension%2Fcontainerapp-0.2.2-py2.py3-none-any.whl%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Register%20the%20Microsoft.Web%20namespace%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eaz%20provider%20register%20%3CSPAN%20class%3D%22cm-attribute%22%3E--namespace%3C%2FSPAN%3E%20Microsoft.Web%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eaz%20provider%20show%20%3CSPAN%20class%3D%22cm-attribute%22%3E--namespace%3C%2FSPAN%3E%20Microsoft.Web%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CH4%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId--1217290428%22%20id%3D%22toc-hId--1217140456%22%3E%3CSPAN%20class%3D%22md-plain%22%3ECreate%20Log%20Analytics%20Workspace%3C%2FSPAN%3E%3C%2FH4%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3Eaz%20monitor%20log-analytics%20workspace%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24monitoringResourceGroup%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--workspace-name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24logWorkspace%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Retrieve%20Log%20Analytics%20ResourceId%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3ElogWorkspaceId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%24(az%20monitor%20log-analytics%20workspace%20show%20--query%20customerId%20-g%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24monitoringResourceGroup%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20-n%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24logWorkspace%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20-o%20tsv)%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Retrieve%20Log%20Analytics%20Secrets%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3ElogWorkspaceSecret%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%24(az%20monitor%20log-analytics%20workspace%20get-shared-keys%20--query%20primarySharedKey%20-g%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24monitoringResourceGroup%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20-n%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24logWorkspace%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20-o%20tsv)%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CH4%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-1270222405%22%20id%3D%22toc-hId-1270372377%22%3E%3CSPAN%20class%3D%22md-plain%22%3ECreate%20Container%20App%20Environment%3C%2FSPAN%3E%3C%2FH4%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Simple%20environment%20with%20no%20additional%20security%20for%20the%20underlying%20sInfrastructure%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eaz%20containerapp%20env%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24basicEnvironment%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--logs-workspace-id%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24logWorkspaceId%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--logs-workspace-key%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24logWorkspaceSecret%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--location%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24location%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%20md-focus%22%20id%3D%22toc-hId--1238296636%22%20id%3D%22toc-hId--1238146664%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%20md-focus%22%20id%3D%22toc-hId-1249216197%22%20id%3D%22toc-hId-1249366169%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%20md-focus%22%20id%3D%22toc-hId-1115531473%22%20id%3D%22toc-hId-1115681445%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EConnecting%20the%20Dots....%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22apim-manage-container-app.png%22%20style%3D%22width%3A%20509px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F347806i1AE08FE3E3C663FD%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22apim-manage-container-app.png%22%20alt%3D%22apim-manage-container-app.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-pair-s%20md-expand%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3ESetup%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20a%20Secured%20Container%20App%20environment%20integrating%20it%20with%20a%20Virtual%20Network%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3ERestrict%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20communication%20to%20the%20Secured%20environment%20is%20from%20within%20the%20Virtual%20Network%20or%20a%20peer%20Virtual%20Network%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EDeploy%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20a%20Logic%20App%20as%20a%20Container%20App%20into%20the%20Secured%20environment%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EDeploy%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20a%20Function%20App%20as%20a%20Container%20App%20into%20the%20Secured%20environment%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EDeploy%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20an%20APIM%20instance%20in%20a%20peered%20Virtual%20Network%20(%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3Eeither%20External%20or%20Internal%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E)%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EConfigure%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3E%20APIM%20to%20connect%20to%20the%20Container%20Apps%20securely%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId--691922990%22%20id%3D%22toc-hId--691773018%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-1795589843%22%20id%3D%22toc-hId-1795739815%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3ESetup%20Azure%20Container%20App%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CH4%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-246300818%22%20id%3D%22toc-hId-246450790%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3ECreate%20Virtual%20Network%20to%20inject%20Container%20Apps%3C%2FSPAN%3E%3C%2FH4%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Container%20App%20Vnet%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eaz%20network%20vnet%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24containerVnetName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--address-prefixes%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24containerVnetPrefix%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EcontainerAppVnetId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%24(az%20network%20vnet%20show%20--name%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24containerVnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--resource-group%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--query%3D%22id%22%20-o%20tsv)%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20ControlPlane%20Subnet%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eaz%20network%20vnet%20subnet%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24controlPlaneSubnetName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--vnet-name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24containerVnetName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%3C%2FSPAN%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-attribute%22%3E--address-prefixes%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24controlPlaneSubnetPrefix%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EcontrolPlaneSubnetId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%24(az%20network%20vnet%20subnet%20show%20-n%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24controlPlaneSubnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--vnet-name%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24containerVnetName%3C%2FSPAN%3E%20%3C%2FSPAN%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E--resource-group%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--query%3D%22id%22%20-o%20tsv)%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Apps%20Subnet%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eaz%20network%20vnet%20subnet%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24appsSubnetName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--vnet-name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24containerVnetName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%20%3C%2FSPAN%3E%3C%2FSPAN%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-attribute%22%3E--address-prefixes%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24appsSubnetPrefix%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EappsSubnetId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%24(az%20network%20vnet%20subnet%20show%20-n%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24appsSubnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--vnet-name%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24containerVnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--resource-group%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%3C%2FSPAN%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E--query%3D%22id%22%20-o%20tsv)%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20APIM%20Vnet%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eaz%20network%20vnet%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24apimVnetName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--address-prefixes%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24apimVnetPrefix%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EapimVnetId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%24(az%20network%20vnet%20show%20--name%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24apimVnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--resource-group%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--query%3D%22id%22%20-o%20tsv)%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20APIM%20Subnet%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eaz%20network%20vnet%20subnet%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24apimSubnetName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--vnet-name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24apimVnetName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%3C%2FSPAN%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-attribute%22%3E--address-prefixes%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24apimSubnetPrefix%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EapimSubnetId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%24(az%20network%20vnet%20subnet%20show%20--name%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24apimSubnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--vnet-name%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24apimVnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--resource-group%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%3C%2FSPAN%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E--query%3D%22id%22%20-o%20tsv)%3CBR%20%2F%3E%3CBR%20%2F%3E%23%20VNET%20peering%20between%20Container%20App%20Vnet%20and%20APIM%20VNet%20(In%20case%20two%20subnets%20are%20not%20within%20same%20Vnet)%3CBR%20%2F%3Eaz%20network%20vnet%20peering%20create%20--name%20%24containerAppPeeringName%20--remote-vnet%20%24apimVnetId%20%5C%3CBR%20%2F%3E--resource-group%20%24resourceGroup%20--vnet-name%20%24containerVnetName%20--allow-vnet-access%3CBR%20%2F%3E%3CBR%20%2F%3Eaz%20network%20vnet%20peering%20create%20--name%20%24apimPeeringName%20--remote-vnet%20%24containerAppVnetId%20%5C%3CBR%20%2F%3E--resource-group%20%24resourceGroup%20--vnet-name%20%24apimVnetName%20--allow-vnet-access%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CH4%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId--1561153645%22%20id%3D%22toc-hId--1561003673%22%3E%3CSPAN%20class%3D%22md-plain%22%3ECreate%20a%20Secured%20Environment%3C%2FSPAN%3E%3C%2FH4%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EPlease%20follow%20this%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fapps-on-azure-blog%2Fazure-container-apps-virtual-network-integration%2Fba-p%2F3096932%22%20target%3D%22_blank%22%3E%3CSPAN%20class%3D%22md-plain%22%3Eexcellent%20article%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20to%20get%20a%20detailed%20view%20on%20this%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3Eaz%20containerapp%20env%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24securedEnvironment%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--logs-workspace-id%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24logWorkspaceId%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--logs-workspace-key%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24logWorkspaceSecret%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--location%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24location%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--controlplane-subnet-resource-id%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24controlPlaneSubnetId%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--app-subnet-resource-id%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24appsSubnetId%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--internal-only%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3E--internal-only%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20flag%20ensures%20that%20this%20environment%20can%20communicate%20with%20services%20on%20same%20virtual%20network%20or%20on%20a%20peered%20virtual%20network%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EExcluding%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3E--internal-only%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20flag%20makes%20this%20environment%20reachable%20from%20other%20container%20apps%20in%20the%20same%20environment%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CH4%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-926359188%22%20id%3D%22toc-hId-926509160%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EConfigure%20a%20Secured%20Environment%3C%2FSPAN%3E%3C%2FH4%3E%0A%3CH5%20class%3D%22md-end-block%20md-heading%20md-focus%22%20id%3D%22toc-hId--752012556%22%20id%3D%22toc-hId--751862584%22%3E%3CSPAN%20class%3D%22md-plain%22%3ECreate%20Private%20DNS%20Zone%3C%2FSPAN%3E%3C%2FH5%3E%0A%3CP%3E%3CSPAN%20class%3D%22md-plain%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22containerapp-private-dns.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F347807iAC311C4343FBBE30%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22containerapp-private-dns.png%22%20alt%3D%22containerapp-private-dns.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EdefaultDomain%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%24(az%20containerapp%20env%20show%20--name%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24securedEnvironment%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--resource-group%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--query%3D%22defaultDomain%22%20-o%20tsv)%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EstaticIp%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%24(az%20containerapp%20env%20show%20--name%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24securedEnvironment%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--resource-group%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--query%3D%22staticIp%22%20-o%20tsv)%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eaz%20network%20private-dns%20zone%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24defaultDomain%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23az%20network%20private-dns%20zone%20show%20--name%20%24defaultDomain%20--resource-group%20%24resourceGroup%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CH5%20class%3D%22md-end-block%20md-heading%20md-focus%22%20id%3D%22toc-hId-1735500277%22%20id%3D%22toc-hId-1735650249%22%3E%3CSPAN%20class%3D%22md-plain%22%3ELink%20Virtual%20Networks%3C%2FSPAN%3E%3C%2FH5%3E%0A%3CP%3E%3CSPAN%20class%3D%22md-plain%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22containerapp-private-dns-plink.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F347808iA73B09EA001964EA%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22containerapp-private-dns-plink.png%22%20alt%3D%22containerapp-private-dns-plink.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId--459202343%22%20id%3D%22toc-hId--459052371%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CDIV%20id%3D%22tinyMceEditormonojit18_0%22%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3Eaz%20network%20private-dns%20link%20vnet%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24containerAppLinkName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-attribute%22%3E--virtual-network%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24containerAppVnetName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--zone-name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24defaultDomain%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23az%20network%20private-dns%20link%20vnet%20show%20--name%20%24containerAppLinkName%20--resource-group%20%24resourceGroup%20--zone-name%20%24defaultDomain%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eaz%20network%20private-dns%20link%20vnet%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24apimLinkName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-attribute%22%3E--virtual-network%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24apimVnetName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--zone-name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24defaultDomain%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23az%20network%20private-dns%20link%20vnet%20show%20--name%20%24apimLinkName%20--resource-group%20%24resourceGroup%20--zone-name%20%24defaultDomain%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-2028310490%22%20id%3D%22toc-hId-2028460462%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-919017968%22%20id%3D%22toc-hId-919167940%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20id%3D%22toc-hId--888436495%22%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId--888286523%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EDeploy%20Azure%20Logic%20App%20as%20Container%20App%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EBuild%20a%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3ELogic%20App%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20with%20basic%20request%2Fresponse%20workflow%20-%20viz.%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3ELogicContainerApp%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3ERun%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20and%20test%20this%20Logic%20app%20as%20docker%20container%20locally%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EDeploy%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20the%20Logic%20App%20container%20onto%20Azure%20as%20a%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EContainer%20App%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EHost%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20the%20Logic%20App%20inside%20a%20Virtual%20Network%20(%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ESecured%20Environment%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E)%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EExpose%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20the%20container%20app%20with%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EInternal%20Ingress%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20-%20blocking%20all%20public%20access%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CH4%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-1857241776%22%20id%3D%22toc-hId-1857391748%22%3E%3CSPAN%20class%3D%22md-plain%22%3ELogic%20App%20in%20a%20Container%3C%2FSPAN%3E%3C%2FH4%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ELet%20us%20first%20Create%20and%20Deploy%20a%20Logic%20app%20as%20Docker%20Container%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ELogic%20App%20runs%20an%20Azure%20Function%20locally%20and%20hence%20few%20tools%2Fextensions%20need%20to%20be%20installed%3C%2FSPAN%3E%3C%2FP%3E%0A%3CH5%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-178870032%22%20id%3D%22toc-hId-179020004%22%3E%3CSPAN%20class%3D%22md-plain%22%3EPre-Requisites%3C%2FSPAN%3E%3C%2FH5%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAzure%20Function%20Core%20Tools%20-%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-functions%2Ffunctions-run-local%3Ftabs%3Dv3%252Cwindows%252Ccsharp%252Cportal%252Cbash%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3Ev3.x%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThe%20above%20link%20is%20for%20macOS%3B%20please%20install%20the%20appropriate%20links%20in%20the%20same%20page%20for%20other%20Operating%20Systems%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAt%20the%20time%20of%20writing%2C%20Core%20tools%203.x%20only%20supports%20the%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ELogic%20App%20Designer%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20within%20Visual%20Studio%20Code%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThe%20current%20example%20has%20been%20tested%20with%20-%20Function%20Core%20Tools%20version%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3E3.0.3904%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20on%20a%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EWindows%20box%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fhub.docker.com%2Feditions%2Fcommunity%2Fdocker-ce-desktop-windows%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3EDocker%20Desktop%20for%20Windows%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EA%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EStorage%20Account%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20on%20Azure%20-%20which%20is%20needed%20by%20any%20Azure%20function%20App%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ELogic%20App%20(%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3Eaka%20Azure%20Function%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E)%20would%20use%20this%20storage%20to%20cache%20its%20state%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EVS%20Code%20Extension%20for%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dms-azuretools.vscode-azurelogicapps%23%3A~%3Atext%3DAzure%2520Logic%2520Apps%2520for%2520Visual%2CApps%2520directly%2520from%2520VS%2520Code.%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3EStandard%20Logic%20App%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EVS%20Code%20Extension%20for%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dms-azuretools.vscode-azurefunctions%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAzure%20Function%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EVS%20Code%20extension%20for%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dms-azuretools.vscode-docker%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3EDocker%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThis%20is%20Optional%20but%20recommended%3B%20it%20makes%20life%20easy%20while%20dealing%20with%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EDockerfile%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20and%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EDocker%20CLI%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20commands%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ECreate%20a%20Local%20folder%20to%20host%20all%20files%20related%20Logic%20App%20-%20viz.%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ELogicContainerApp%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EOpen%20the%20folder%20in%20VS%20Code%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ECreate%20a%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ENew%20Logic%20App%20Project%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20in%20this%20Folder%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EChoose%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EStateful%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20workflow%20in%20the%20process%20and%20name%20accordingly%20-%20viz.%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3Ehttperesflow%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThis%20generates%20all%20necessary%20files%20and%20sub-folders%20within%20the%20current%20folder%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EA%20folder%20named%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3Ehttpresflow%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20is%20also%20added%20which%20contains%20the%20workflow.json%20file%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThis%20describes%20the%20Logic%20App%20Actions%2Ftriggers%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThis%20example%20uses%20a%20Http%20Request%2FResponse%20type%20Logic%20App%20for%20simplicity%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThe%20Logic%20App%20would%20accept%20a%20Post%20body%20as%20below%20and%20would%20return%20back%20the%20same%20as%20response%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22json%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22Zip%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22testzip-2011.zip%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ERight%20click%20on%20the%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3Eworkflow.json%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20file%20and%20Open%20the%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ELogic%20App%20Designer%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20-%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3Ethis%20might%20take%20few%20seconds%20to%20launch%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAdd%20Http%20Request%20trigger%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%20class%3D%22md-plain%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22logicapp-designer-request.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342521iAF788F72D35094A6%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22logicapp-designer-request.png%22%20alt%3D%22logicapp-designer-request.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CSPAN%20class%3D%22md-plain%22%3E%3CSPAN%3EAdd%20Http%20Response%20Action%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%20class%3D%22md-plain%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22logicapp-designer-response.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342523i6181F1D5308C7CB6%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22logicapp-designer-response.png%22%20alt%3D%22logicapp-designer-response.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3ESave%20the%20Designer%20changes%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ERight%20click%20on%20the%20empty%20area%20on%20the%20workspace%20folder%20structure%20and%20Open%20the%20Context%20menu%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ESelect%20the%20menu%20options%20that%20says%20-%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EConvert%20to%20Nuget-based%20Logic%20App%20project%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThis%20would%20generate%20.NET%20specific%20files%20-%20along%20with%20a%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ELogicContainerApp.csproj%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3E%20file%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22logicapp-nuget-menu.png%22%20style%3D%22width%3A%20407px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342524i593E4851B274293D%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22logicapp-nuget-menu.png%22%20alt%3D%22logicapp-nuget-menu.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EOpen%20the%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3Elocal.settings.json%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20file%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%22%3EReplace%20the%20value%20of%20AzureWebJobsStorage%20variable%20with%20the%20value%20from%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EStorage%20Account%20Connection%20string%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20created%20earlier%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAdd%20a%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EDockerfile%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20in%20the%20workspace%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3EFROM%20mcr.microsoft.com%2Fazure-functions%2Fnode%3A3.0%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3EENV%20%3CSPAN%20class%3D%22cm-def%22%3EAzureWebJobsScriptRoot%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%2Fhome%2Fsite%2Fwwwroot%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%3CSPAN%20class%3D%22cm-def%22%3EAzureFunctionsJobHost__Logging__Console__IsEnabled%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-atom%22%3Etrue%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%3CSPAN%20class%3D%22cm-def%22%3EFUNCTIONS_V2_COMPATIBILITY_MODE%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-atom%22%3Etrue%3C%2FSPAN%3E%20%5C%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%3CSPAN%20class%3D%22cm-def%22%3EAzureWebJobsStorage%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E''%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%3CSPAN%20class%3D%22cm-def%22%3EAZURE_FUNCTIONS_ENVIRONMENT%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3EDevelopment%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%3CSPAN%20class%3D%22cm-def%22%3EWEBSITE_HOSTNAME%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3Elocalhost%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%3CSPAN%20class%3D%22cm-def%22%3EWEBSITE_SITE_NAME%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3Elogiccontainerapp%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3ECOPY%20.%2Fbin%2FDebug%2Fnetcoreapp3.1%20%2Fhome%2Fsite%2Fwwwroot%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EWEBSITE_SITE_NAME%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20-%20this%20is%20the%20name%20by%20which%20entries%20are%20created%20in%20Storage%20Account%20by%20the%20Logic%20App%20while%20caching%20its%20state%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%26nbsp%3B%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EBuild%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20docker%20image%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3Edocker%20build%20%3CSPAN%20class%3D%22cm-attribute%22%3E-t%3C%2FSPAN%3E%20%3CREPO_NAME%3E%2F%3CIMAGE_NAME%3E%3A%3CTAG%3E%20.%3C%2FTAG%3E%3C%2FIMAGE_NAME%3E%3C%2FREPO_NAME%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%26nbsp%3B%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3ECreate%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20the%20Logic%20App%20Container%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3Edocker%20run%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20logiccontainerapp%20%3CSPAN%20class%3D%22cm-attribute%22%3E-e%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3EAzureWebJobsStorage%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24azureWebJobsStorage%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E-d%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E-p%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-number%22%3E8080%3C%2FSPAN%3E%3A80%20%3CREPO_NAME%3E%2F%3CIMAGE_NAME%3E%3A%3CTAG%3E%3C%2FTAG%3E%3C%2FIMAGE_NAME%3E%3C%2FREPO_NAME%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3ELet%20us%20now%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3ERun%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20the%20logic%20app%20locally%20as%20a%20Docker%20container%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%22%3EOpen%20the%20Storage%20account%20created%20earlier%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%22%3EOpen%20the%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EContainers%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%22%3EOpen%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3Eazure-webjobs-secrets%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3E%20blob%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22logicapp-webjobs-secrets-1.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342527iFD0AA92276F7F6F4%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22logicapp-webjobs-secrets-1.png%22%20alt%3D%22logicapp-webjobs-secrets-1.png%22%20%2F%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22logicapp-webjobs-secrets-2.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342526i2BB47A656DF001B6%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22logicapp-webjobs-secrets-2.png%22%20alt%3D%22logicapp-webjobs-secrets-2.png%22%20%2F%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22logicapp-webjobs-secrets-3.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342528i789A82801E91E1F6%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22logicapp-webjobs-secrets-3.png%22%20alt%3D%22logicapp-webjobs-secrets-3.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EGet%20the%20value%20of%20the%20%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3Emaster%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20key%20in%20the%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3Ehost.json%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%20file%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22logicapp-host-json.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342529iC6B500B67797989B%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22logicapp-host-json.png%22%20alt%3D%22logicapp-host-json.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EOpen%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EPOSTMAN%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20or%20any%20Rest%20client%20of%20choice%20like%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3Ecurl%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3Ehttp%3A%2F%2Flocalhost%3A8080%2Fruntime%2Fwebhooks%2Fworkflow%2Fapi%2Fmanagement%2Fworkflows%2Fhttpresflow%2Ftriggers%2Fmanual%2FlistCallbackUrl%3CSPAN%20class%3D%22cm-def%22%3E%3Fapi-version%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-number%22%3E2020%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-attribute%22%3E-05-01-preview%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%26amp%3Bcode%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CMASTER_KEY_VALUE_FROM_STORAGE_ACCOUNT%3E%3C%2FMASTER_KEY_VALUE_FROM_STORAGE_ACCOUNT%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CUL%3E%0A%3CLI%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThis%20would%20return%20the%20Post%20callback%20Url%20for%20Http%20triggered%20Logic%20App%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22json%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22value%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22https%3A%2F%2Flocalhost%3A443%2Fapi%2Fhttpresflow%2Ftriggers%2Fmanual%2Finvoke%3Fapi-version%3D2020-05-01-preview%26amp%3Bsp%3D%252Ftriggers%252Fmanual%252Frun%26amp%3Bsv%3D1.0%26amp%3Bsig%3D%3CVALUE%3E%22%3C%2FVALUE%3E%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22method%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22POST%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22basePath%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22https%3A%2F%2Flocalhost%2Fapi%2Fhttpresflow%2Ftriggers%2Fmanual%2Finvoke%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22queries%22%3C%2FSPAN%3E%3A%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22api-version%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%222020-05-01-preview%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22sp%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22%2Ftriggers%2Fmanual%2Frun%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22sv%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%221.0%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22sig%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22%3CVALUE%3E%22%3C%2FVALUE%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CUL%3E%0A%3CLI%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ECopy%20the%20value%20of%20the%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3Evalue%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20parameter%20from%20the%20json%20response%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%20class%3D%22md-end-block%20md-p%22%3EMake%20following%20Http%20call%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3Ehttp%3A%2F%2Flocalhost%3A8080%2Fapi%2Fhttpresflow%2Ftriggers%2Fmanual%2Finvoke%3CSPAN%20class%3D%22cm-def%22%3E%3Fapi-version%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-number%22%3E2020%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-attribute%22%3E-05-01-preview%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%26amp%3Bsp%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%252Ftriggers%252Fmanual%252Frun%3CSPAN%20class%3D%22cm-def%22%3E%26amp%3Bsv%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-number%22%3E1%3C%2FSPAN%3E.0%3CSPAN%20class%3D%22cm-def%22%3E%26amp%3Bsig%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CVALUE%3E%3C%2FVALUE%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CUL%3E%0A%3CLI%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EPost%20Body%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22json%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22Zip%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22testzip-2011.zip%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CUL%3E%0A%3CLI%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ECheck%20the%20response%20coming%20back%20from%20Logic%20App%20as%20below%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22json%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22Zip%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22testzip-2011.zip%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CH4%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId--1757667150%22%20id%3D%22toc-hId--1757517178%22%3E%3CSPAN%20class%3D%22md-plain%22%3ESetup%20Azure%20Container%20App%3C%2FSPAN%3E%3C%2FH4%3E%0A%3CUL%3E%0A%3CLI%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ECreate%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EVirtual%20Network%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20to%20inject%20Container%20Apps%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EcontainerAppVnetId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%24(az%20network%20vnet%20show%20-n%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24containerAppVnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--resource-group%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--query%3D%22id%22%20-o%20tsv)%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EcontrolPlaneSubnetId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%24(az%20network%20vnet%20subnet%20show%20-n%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24controlPlaneSubnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--vnet-name%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24containerAppVnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--resource-group%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--query%3D%22id%22%20-o%20tsv)%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EappsSubnetId%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%24(az%20network%20vnet%20subnet%20show%20-n%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24appsSubnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--vnet-name%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24containerAppVnetName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--resource-group%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20--query%3D%22id%22%20-o%20tsv)%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CUL%3E%0A%3CLI%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ECreate%20a%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ESecured%20Environment%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20for%20Azure%20Container%20Apps%20with%20this%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EVirtual%20Network%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3Eaz%20containerapp%20env%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24securedEnvironment%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--logs-workspace-id%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24logWorkspaceId%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--logs-workspace-key%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24logWorkspaceSecret%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--location%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24location%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--controlplane-subnet-resource-id%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24controlPlaneSubnetId%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--app-subnet-resource-id%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24appsSubnetId%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CH4%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-729845683%22%20id%3D%22toc-hId-729995655%22%3E%3CSPAN%20class%3D%22md-plain%22%3ELogic%20App%20as%20Azure%20Container%20App%3C%2FSPAN%3E%3C%2FH4%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ELet%20us%20now%20deploy%20the%20logic%20app%20container%20onto%20Azure%20as%20Container%20App%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EPush%20Logic%20App%20container%20image%20to%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EAzure%20Container%20Registry%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20If%20Container%20image%20is%20already%20created%20and%20tested%2C%20use%20Docker%20CLI%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Edocker%20push%20%3CREPO_NAME%3E%2F%3CIMAGE_NAME%3E%3A%3CTAG%3E%3C%2FTAG%3E%3C%2FIMAGE_NAME%3E%3C%2FREPO_NAME%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%20OR%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-comment%22%3E%23%20Use%20Azure%20CLI%20command%20for%20ACR%20to%20build%20and%20push%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eaz%20acr%20build%20%3CSPAN%20class%3D%22cm-attribute%22%3E-t%3C%2FSPAN%3E%20%3CREPO_NAME%3E%2F%3CIMAGE_NAME%3E%3A%3CTAG%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E-r%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24acrName%3C%2FSPAN%3E%20.%3C%2FTAG%3E%3C%2FIMAGE_NAME%3E%3C%2FREPO_NAME%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3ECreate%20Azure%20Container%20App%20with%20this%20image%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3ElogicappImageName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24registryServer%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%2Flogiccontainerapp%3Av1.0.0%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-def%22%3EazureWebJobsStorage%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3CSTORAGE_ACCOUNT_CONNECTION_STRING%3E%3C%2FSTORAGE_ACCOUNT_CONNECTION_STRING%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eaz%20containerapp%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20logicontainerapp%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--image%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24logicappImageName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--environment%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24securedEnvironment%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--registry-login-server%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24registryServer%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--registry-username%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24registryUserName%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--registry-password%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24registryPassword%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--ingress%3C%2FSPAN%3E%20internal%20%3CSPAN%20class%3D%22cm-attribute%22%3E--target-port%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-number%22%3E80%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--transport%3C%2FSPAN%3E%20http%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--secrets%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3Eazurewebjobsstorage%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24azureWebJobsStorage%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--environment-variables%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-string%22%3E%22AzureWebJobsStorage%3Dsecretref%3Aazurewebjobsstorage%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3ENote%20down%20the%20Logic%20App%20ingress%20url%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22logic-container-overview.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342530i85141D5C092CAA8A%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22logic-container-overview.png%22%20alt%3D%22logic-container-overview.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId--1335774218%22%20id%3D%22toc-hId--1335624246%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20id%3D%22toc-hId-1151738615%22%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-1151888587%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EDeploy%20Azure%20Function%20as%20Container%20App%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EBuild%20an%20Azure%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EFunction%20App%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20with%20Http%20POST%20trigger%20-%20viz.%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EHttpLogicContainerApp%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAzure%20Function%20would%20call%20the%20above%20logic%20app%20(i.e.%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ELogicContainerApp%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E)%20sending%20some%20Json%20as%20POST%20body%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EFunction%20would%20receive%20the%20http%20response%20from%20Logic%20App%20and%20return%20back%20to%20the%20caller%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3ERun%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20and%20test%20this%20function%20app%20as%20docker%20container%20locally%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EDeploy%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20the%20Function%20App%20container%20onto%20Azure%20as%20a%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EContainer%20App%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EHost%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20the%20Function%20App%20inside%20a%20Virtual%20Network%20(%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ESecured%20Environment%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E)%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EExpose%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20the%20container%20app%20with%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EInternal%20Ingress%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20-%20blocking%20all%20public%20access%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThis%20function%20will%20be%20triggered%20by%20a%20http%20Post%20call%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThis%20is%20going%20to%20invoke%20Logic%20App%20internally%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EReturn%20the%20response%20back%20to%20the%20caller%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EBefore%20we%20Deploy%20the%20function%20app%2C%20let%20us%20look%20at%20its%20code%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22c%23%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-keyword%22%3Eusing%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3ESystem%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-keyword%22%3Eusing%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3ESystem%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EIO%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-keyword%22%3Eusing%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3ESystem%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3ENet%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EHttp%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-keyword%22%3Eusing%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3ESystem%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EThreading%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3ETasks%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-keyword%22%3Eusing%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3EMicrosoft%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EAspNetCore%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EMvc%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-keyword%22%3Eusing%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3EMicrosoft%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EAzure%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EWebJobs%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-keyword%22%3Eusing%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3EMicrosoft%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EAzure%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EWebJobs%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EExtensions%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EHttp%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-keyword%22%3Eusing%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3EMicrosoft%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EAspNetCore%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EHttp%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-keyword%22%3Eusing%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3EMicrosoft%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EExtensions%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3ELogging%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-keyword%22%3Eusing%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3ENewtonsoft%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EJson%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-keyword%22%3Enamespace%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3EHttpContainerApps%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-keyword%22%3Epublic%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-keyword%22%3Estatic%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-keyword%22%3Eclass%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3EHttpContainerApps%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%5B%3CSPAN%20class%3D%22cm-variable%22%3EFunctionName%3C%2FSPAN%3E(%3CSPAN%20class%3D%22cm-string%22%3E%22container%22%3C%2FSPAN%3E)%5D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-keyword%22%3Epublic%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-keyword%22%3Estatic%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-keyword%22%3Easync%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable-3%22%3ETask%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%26lt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-variable%22%3EIActionResult%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%26gt%3B%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3ERun%3C%2FSPAN%3E(%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%5B%3CSPAN%20class%3D%22cm-variable%22%3EHttpTrigger%3C%2FSPAN%3E(%3CSPAN%20class%3D%22cm-variable%22%3EAuthorizationLevel%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EAnonymous%3C%2FSPAN%3E%2C%20%3CSPAN%20class%3D%22cm-string%22%3E%22get%22%3C%2FSPAN%3E%2C%20%3CSPAN%20class%3D%22cm-variable%22%3ERoute%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-atom%22%3Enull%3C%2FSPAN%3E)%5D%20%3CSPAN%20class%3D%22cm-variable%22%3EHttpRequest%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3Ereq%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-variable%22%3EILogger%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3Elog%3C%2FSPAN%3E)%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-variable%22%3Elog%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3ELogInformation%3C%2FSPAN%3E(%3CSPAN%20class%3D%22cm-string%22%3E%22C%23%20HTTP%20trigger%20function%20processed%20a%20request.%22%3C%2FSPAN%3E)%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-keyword%22%3Evar%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3Ename%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3Ereq%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EQuery%3C%2FSPAN%3E%5B%3CSPAN%20class%3D%22cm-string%22%3E%22name%22%3C%2FSPAN%3E%5D%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-keyword%22%3Evar%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3Ecl%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-keyword%22%3Enew%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3EHttpClient%3C%2FSPAN%3E()%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-keyword%22%3Evar%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3Euri%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3E%24%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22http%3A%2F%2Fhttpcontainerapp-secured.internal.greensea-4ecd9ebc.eastus.azurecontainerapps.io%2Fapi%2Fcontainer%3Fname%3D%7Bname%7D%22%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-keyword%22%3Evar%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3Eres%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-keyword%22%3Eawait%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3Ecl%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EGetAsync%3C%2FSPAN%3E(%3CSPAN%20class%3D%22cm-variable%22%3Euri%3C%2FSPAN%3E)%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-keyword%22%3Evar%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3Eresponse%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-keyword%22%3Eawait%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3Eres%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EContent%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3EReadAsStringAsync%3C%2FSPAN%3E()%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-variable%22%3Elog%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3ELogInformation%3C%2FSPAN%3E(%3CSPAN%20class%3D%22cm-variable%22%3E%24%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22Status%3A%7Bres.StatusCode%7D%22%3C%2FSPAN%3E)%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-variable%22%3Elog%3C%2FSPAN%3E.%3CSPAN%20class%3D%22cm-variable%22%3ELogInformation%3C%2FSPAN%3E(%3CSPAN%20class%3D%22cm-variable%22%3E%24%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22Response%3A%7Bresponse%7D-v1.0.4%22%3C%2FSPAN%3E)%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-variable%22%3Eresponse%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3E%24%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22Hello%2C%20%7Bresponse%7D-v1.0.4%22%3C%2FSPAN%3E%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-comment%22%3E%2F%2F%20var%20response%20%3D%20%24%22Secured%2C%20%7Bname%7D-v1.0.3%22%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-keyword%22%3Ereturn%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-keyword%22%3Enew%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-variable%22%3EOkObjectResult%3C%2FSPAN%3E(%3CSPAN%20class%3D%22cm-variable%22%3Eresponse%3C%2FSPAN%3E)%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%20%7D%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EDeploy%20Azure%20Function%20app%20as%20Container%20App%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%20%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EhttpImageName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24registryServer%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%2Fhttplogiccontainerapp%3Av1.0.5%22%3C%2FSPAN%3E%20%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CBR%20%2F%3E%23%20Function%20App%20would%20call%20this%20url%20to%20get%20the%20POST%20url%20end%20point%20of%20the%20http%20trigerred%20Logic%20App%3CBR%20%2F%3ElogicAppCallbackUrl%3D%22https%3A%2F%2F%3CLOGICONTAINERAPP_INTERNAL_INGRESS_URL%3E%2Fruntime%2Fwebhooks%2Fworkflow%2Fapi%2Fmanagement%2Fworkflows%2Fhttpresflow%2Ftriggers%2Fmanual%2FlistCallbackUrl%3Fapi-version%3D2020-05-01-preview%26amp%3Bcode%3D%3CMASTER_KEY_VALUE_FROM_STORAGE_ACCOUNT%3E%22%3CBR%20%2F%3E%3CBR%20%2F%3E%23%20Logic%20App%20POST%20url%20returned%20from%20the%20previous%20call%3CBR%20%2F%3ElogicAppPostUrl%3D%22https%3A%2F%2F%3CLOGICONTAINERAPP_INTERNAL_INGRESS_URL%3E%2Fapi%2Fhttpresflow%2Ftriggers%2Fmanual%2Finvoke%3Fapi-version%3D2020-05-01-preview%26amp%3Bsp%3D%252Ftriggers%252Fmanual%252Frun%26amp%3Bsv%3D1.0%26amp%3Bsig%3D%7B0%7D%22%20%26nbsp%3B%3C%2FLOGICONTAINERAPP_INTERNAL_INGRESS_URL%3E%3C%2FMASTER_KEY_VALUE_FROM_STORAGE_ACCOUNT%3E%3C%2FLOGICONTAINERAPP_INTERNAL_INGRESS_URL%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%20%3CBR%20%2F%3E%3CSPAN%3Eaz%20containerapp%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E--name%3C%2FSPAN%3E%20httplogiccontainerapp%20%3CSPAN%20class%3D%22cm-attribute%22%3E--resource-group%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-attribute%22%3E--image%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24httpImageName%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--environment%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24securedEnvironment%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-attribute%22%3E--registry-login-server%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24registryServer%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--registry-username%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24registryUserName%3C%2FSPAN%3E%20%5C%3CBR%20%2F%3E%3C%2FSPAN%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-attribute%22%3E--registry-password%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24registryPassword%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-attribute%22%3E--ingress%3C%2FSPAN%3E%20internal%20%3CSPAN%20class%3D%22cm-attribute%22%3E--target-port%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-number%22%3E80%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E--transport%3C%2FSPAN%3E%20http%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-attribute%22%3E--secrets%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3Eazurewebjobsstorage%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24azureWebJobsStorage%2Clogicappcallbackurl%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24logicAppCallbackUrl%2Clogicappposturl%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24logicAppPostUrl%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-attribute%22%3E--environment-variables%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-string%22%3E%22AzureWebJobsStorage%3Dsecretref%3Aazurewebjobsstorage%2CLOGICAPP_CALLBACK_URL%3Dsecretref%3Alogicappcallbackurl%2CLOGICAPP_POST_URL%3Dsecretref%3Alogicappposturl%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThis%20Container%20App%20is%20with%20Ingress%20type%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EInternal%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20so%20this%20would%20be%20at%20exposed%20publicly%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId--655715848%22%20id%3D%22toc-hId--655565876%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-1831796985%22%20id%3D%22toc-hId-1831946957%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%20md-focus%22%20id%3D%22toc-hId-722504463%22%20id%3D%22toc-hId-722654435%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20id%3D%22toc-hId--1084950000%22%20class%3D%22md-end-block%20md-heading%20md-focus%22%20id%3D%22toc-hId--1084800028%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EDeploy%20APIM%20in%20a%20Virtual%20Network%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CP%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22apim-overview.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F347809i7B11009E7DB4D0F9%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22apim-overview.png%22%20alt%3D%22apim-overview.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EIntegrate%20both%20the%20Container%20Apps%20(%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EFunction%20App%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20and%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ELogic%20App%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E)%20with%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EAzure%20APIM%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3ECreate%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20an%20APIM%20instance%20on%20Azure%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EDeploy%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20APIM%20in%20an%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fapi-management%2Fapi-management-using-with-internal-vnet%3Ftabs%3Dstv2%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3EInternal%20Vnet%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20or%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fapi-management%2Fapi-management-using-with-vnet%3Ftabs%3Dstv2%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3EExternal%20Vnet%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20and%20follow%20instructions%20accordingly%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EAdd%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20two%20Container%20Apps%20(%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3Eas%20deployed%20above%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3E)%20as%20backend%20for%20the%20APIM%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-1402562833%22%20id%3D%22toc-hId-1402712805%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId--404891630%22%20id%3D%22toc-hId--404741658%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20id%3D%22toc-hId-2082621203%22%20class%3D%22md-end-block%20md-heading%20md-focus%22%20id%3D%22toc-hId-2082771175%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EAlternate%20Approach%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CH3%20class%3D%22md-end-block%20md-heading%20md-focus%22%20id%3D%22toc-hId-404249459%22%20id%3D%22toc-hId-404399431%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EDeploy%20Self-hosted%20Gateway%20for%20APIM%20as%20Container%20App%3C%2FSPAN%3E%3C%2FH3%3E%0A%3CP%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22apim-container-app.png%22%20style%3D%22width%3A%20503px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F347810iA71963C4DEEB3DA2%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22apim-container-app.png%22%20alt%3D%22apim-container-app.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EIntegrate%20both%20the%20Container%20Apps%20(%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EFunction%20App%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20and%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ELogic%20App%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E)%20with%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EAzure%20APIM%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3ECreate%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20an%20APIM%20instance%20on%20Azure%20with%20a%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fapi-management%2Fself-hosted-gateway-overview%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3ESelf-hosted%20Gateway%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EDeploy%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20Self-hosted%20APIM%20as%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EContainer%20App%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20and%20in%20the%20same%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ESecured%20Environment%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20as%20above%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EAdd%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20two%20Container%20Apps%20(%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3Eas%20deployed%20above%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E)%20as%20backend%20for%20the%20APIM%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EExpose%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20the%20APIM%20Container%20App%20with%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSTRONG%3E%3CSPAN%20class%3D%22md-plain%22%3EExternal%20Ingress%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20thus%20making%20it%20the%20only%20public%20facing%20endpoint%20for%20the%20entire%20system%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAPIM%20Container%20App%20(%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3ESelf-hosted%20Gateway%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E)%20would%20be%20able%20to%20call%20the%20internal%20Container%20Apps%20since%20being%20part%20of%20the%20same%20Secured%20Environment%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CSPAN%20class%3D%22md-plain%22%3E%3CSPAN%3ESelect%20gateway%20option%20in%20APIM%20in%20the%20Azure%20Portal%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%20class%3D%22md-plain%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22apim-gateway-1.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342531iA67022A8AB3DA0B8%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22apim-gateway-1.png%22%20alt%3D%22apim-gateway-1.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CSPAN%20class%3D%22md-plain%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EGet%20the%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3EEndpoint%20Url%3C%2FEM%3E%3C%2FSPAN%3E%20and%20%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3EAuth%20Token%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3E%20from%20the%20portal%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%20class%3D%22md-plain%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22apim-gateway-2.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342532i6B70465A8F102EB4%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22apim-gateway-2.png%22%20alt%3D%22apim-gateway-2.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EDefine%20ARM%20template%20for%20APIM%20Container%20App%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22json%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22%24schema%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22https%3A%2F%2Fschema.management.azure.com%2Fschemas%2F2019-04-01%2FdeploymentTemplate.json%23%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22contentVersion%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%221.0.0.0%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22parameters%22%3C%2FSPAN%3E%3A%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22containerappName%22%3C%2FSPAN%3E%3A%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22defaultValue%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22apimcontainerapp%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22type%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22String%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22location%22%3C%2FSPAN%3E%3A%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22defaultValue%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22eastus%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22type%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22String%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22environmentName%22%3C%2FSPAN%3E%3A%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22defaultValue%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22secure-env%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22type%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22String%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22serviceEndpoint%22%3C%2FSPAN%3E%3A%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22defaultValue%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22type%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22String%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22serviceAuth%22%3C%2FSPAN%3E%3A%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22defaultValue%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22type%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22String%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22variables%22%3C%2FSPAN%3E%3A%20%7B%7D%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22resources%22%3C%2FSPAN%3E%3A%20%5B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22apiVersion%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%222021-03-01%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22type%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22Microsoft.Web%2FcontainerApps%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22name%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22%5Bparameters('containerappName')%5D%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22location%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22%5Bparameters('location')%5D%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22properties%22%3C%2FSPAN%3E%3A%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22kubeEnvironmentId%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22%5BresourceId('Microsoft.Web%2FkubeEnvironments'%2C%20parameters('environmentName'))%5D%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22configuration%22%3C%2FSPAN%3E%3A%20%7B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22ingress%22%3C%2FSPAN%3E%3A%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22external%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-atom%22%3Etrue%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22targetPort%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-number%22%3E8080%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22allowInsecure%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-atom%22%3Efalse%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22traffic%22%3C%2FSPAN%3E%3A%20%5B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22latestRevision%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-atom%22%3Etrue%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22weight%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-number%22%3E100%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%5D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22template%22%3C%2FSPAN%3E%3A%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-comment%22%3E%2F%2F%20%22revisionSuffix%22%3A%20%22revapim%22%2C%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22containers%22%3C%2FSPAN%3E%3A%20%5B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22name%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22conainerapp-apim-gateway%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22image%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22mcr.microsoft.com%2Fazure-api-management%2Fgateway%3Alatest%22%3C%2FSPAN%3E%2C%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22env%22%3C%2FSPAN%3E%3A%20%5B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22name%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22config.service.endpoint%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22value%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22%5Bparameters('serviceEndpoint')%5D%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22name%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22config.service.auth%22%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22value%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%22%5Bparameters('serviceAuth')%5D%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%5D%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22resources%22%3C%2FSPAN%3E%3A%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22cpu%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-number%22%3E0.5%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22memory%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-string%22%3E%221Gi%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%5D%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22scale%22%3C%2FSPAN%3E%3A%20%7B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22minReplicas%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-number%22%3E1%3C%2FSPAN%3E%2C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CSPAN%20class%3D%22cm-string%20cm-property%22%3E%22maxReplicas%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22cm-number%22%3E3%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%20%5D%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%20%26nbsp%3B%20%20%7D%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EDeploy%20APIM%20as%20Container%20App%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EapimappImageName%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22mcr.microsoft.com%2Fazure-api-management%2Fgateway%3Alatest%22%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EserviceEndpoint%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3CSERVICE_ENDPOINT%3E%22%3C%2FSERVICE_ENDPOINT%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3EserviceAuth%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-string%22%3E%22%3CSERVICE_AUTH%3E%22%3C%2FSERVICE_AUTH%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eaz%20deployment%20group%20create%20%3CSPAN%20class%3D%22cm-attribute%22%3E-f%3C%2FSPAN%3E%20.%2Fapi-deploy.json%20%3CSPAN%20class%3D%22cm-attribute%22%3E-g%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%20%5C%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20%26nbsp%3B%3CSPAN%20class%3D%22cm-attribute%22%3E--parameters%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3EserviceEndpoint%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24serviceEndpoint%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-def%22%3EserviceAuth%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24serviceAuth%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId--1532287723%22%20id%3D%22toc-hId--1532137751%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20id%3D%22toc-hId-955225110%22%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-955375082%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EIntegrate%20All%20using%20APIM%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAdd%20Container%20Apps%20as%20APIM%20back%20end%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThe%20Web%20Service%20URL%20would%20be%20the%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EInternal%20Ingress%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20url%20of%20the%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CEM%3E%3CSPAN%20class%3D%22md-plain%22%3EHttp%20Container%20App%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%20class%3D%22md-pair-s%20%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22apim-api-1.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342535i89331852F3599BEF%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22apim-api-1.png%22%20alt%3D%22apim-api-1.png%22%20%2F%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22apim-api-2.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342534i3474E83EBE2C078C%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22apim-api-2.png%22%20alt%3D%22apim-api-2.png%22%20%2F%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22apim-api-3.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342533i2A727E8695962288%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22apim-api-3.png%22%20alt%3D%22apim-api-3.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%20md-focus%22%20id%3D%22toc-hId--852229353%22%20id%3D%22toc-hId--852079381%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20id%3D%22toc-hId-1635283480%22%20class%3D%22md-end-block%20md-heading%20md-focus%22%20id%3D%22toc-hId-1635433452%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3ETest%20End-to-End%20%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EGrab%20the%20FQDN%20of%20the%20APIM%20Container%20App%20from%20the%20portal%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22apim-container-overview.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342542i85B242559E91BA0D%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22apim-container-overview.png%22%20alt%3D%22apim-container-overview.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EThe%20FQDN%20can%20be%20obtained%20through%20Azure%20CLI%20as%20well%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3Efqdn%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-operator%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%24(az%20containerapp%20show%20-g%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-def%22%3E%24resourceGroup%3C%2FSPAN%3E%3CSPAN%20class%3D%22cm-quote%22%3E%20-n%20apimcontainerapp%20--query%3D%22configuration.ingress.fqdn%22)%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EMake%20a%20call%20to%20the%20API%20URL%20as%20below%20and%20receive%20the%20response%20back%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22md-fences%20md-end-block%20ty-contain-cm%20modeLoaded%22%20lang%3D%22bash%22%20spellcheck%3D%22false%22%3E%3CSPAN%3E%3CSPAN%20class%3D%22cm-builtin%22%3Ecurl%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E-k%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-attribute%22%3E-X%3C%2FSPAN%3E%20POST%20%3CSPAN%20class%3D%22cm-attribute%22%3E--data%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22cm-string%22%3E'%7B%22zip%22%3A%22test.zip%22%7D'%3C%2FSPAN%3E%20https%3A%2F%2F%3CSPAN%20class%3D%22cm-def%22%3E%24fqdn%3C%2FSPAN%3E%2Fcontainer%2Fapi%2Flogicapp%2F%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E....%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E2%80%8B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%7B%3CSPAN%20class%3D%22cm-string%22%3E%22zip%22%3C%2FSPAN%3E%3A%3CSPAN%20class%3D%22cm-string%22%3E%22test.zip%22%3C%2FSPAN%3E%7D%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20class%3D%22md-end-block%20md-p%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20class%3D%22md-end-block%20md-heading%22%20id%3D%22toc-hId-525990958%22%20id%3D%22toc-hId-526140930%22%3E%3CSPAN%20class%3D%22md-plain%20md-expand%22%3EReferences%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CUL%20class%3D%22ul-list%22%20data-mark%3D%22-%22%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fcontainer-apps%2Foverview%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAzure%20Container%20Apps%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EContainer%20App%20-%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fapps-on-azure-blog%2Fazure-container-apps-virtual-network-integration%2Fba-p%2F3096932%22%20target%3D%22_blank%22%3E%3CSPAN%20class%3D%22md-plain%22%3EVirtual%20Network%20Integration%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Flogic-apps%2Fsingle-tenant-overview-compare%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3ELogic%20App%20Standard%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAzure%20APIM%20-%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fapi-management%2Fapi-management-using-with-vnet%3Ftabs%3Dstv2%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3EVirtual%20Network%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-plain%22%3E%20and%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fapi-management%2Fapi-management-using-with-internal-vnet%3Ftabs%3Dstv2%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3EInternal%20Virtual%20Network%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%22%3E%3CP%20class%3D%22md-end-block%20md-p%22%3E%3CSPAN%20class%3D%22md-plain%22%3EAzure%20APIM%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fapi-management%2Fself-hosted-gateway-overview%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3ESelf-hosted%20Gateway%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%20class%3D%22md-list-item%20md-focus-container%22%3E%3CP%20class%3D%22md-end-block%20md-p%20md-focus%22%3E%3CSPAN%20class%3D%22md-meta-i-c%20%20md-link%22%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fmonojit18%2FContainerApps.git%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%20class%3D%22md-plain%22%3ESource%20Repo%3C%2FSPAN%3E%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3C%2FLI%3E%0A%3C%2FUL%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-3072158%22%20slang%3D%22en-US%22%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22azure-container-apps-environments.png%22%20style%3D%22width%3A%20900px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F342549iC22EF883DE19B47D%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22azure-container-apps-environments.png%22%20alt%3D%22azure-container-apps-environments.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EBuild%20Connected%20Microservices%20with%20Azure%20Container%20Apps%3C%2FP%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-3072158%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EAzure%20Functions%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EAzure%20Logic%20Apps%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EContainers%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EServerless%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Co-Authors
Version history
Last update:
‎Apr 26 2022 10:38 AM
Updated by: