Sample API that support Logic App chunking using Node js

Published Jul 18 2021 10:32 PM 1,292 Views

This article to shows how build simple Node js endpoint that can react to the logic app chunking http action  

The API was implemented by following the article  Handle large messages by using chunking - Azure Logic Apps | Microsoft Docs

The logic app uses chucking when sending data to managed API like SFTP for example.

 

The HTTP action is not relying on the request header “Transfer-Encoding”. It implements its own chunking protocol by using custom Header key “x-ms-transfer-mode” instead. 

 

The below sequence diagram shows the minimum implementation for the Server component since some of the headers are optional.

 

Sequence diagram for chunking flow

 

Mohammed_Barqawi_2-1626639118079.png

 

 

Source code for the server .js

 

 

'use strict';

var express = require('express');
var app = express();

app.set("port", process.env.PORT || 4000);

app.get('/', function (req, res) {
   res.writeHead(200, { 'Content-Type': 'application/json' });
   var response = { "response": "This is GET method." }
   console.log(response);
   res.end(JSON.stringify(response));
})

app.get('/:id', function (req, res) {
   res.writeHead(200, { 'Content-Type': 'application/json' });
   var response = { "response": "This is GET method with id=" + req.params.id + "." }
   console.log(response);
   res.end(JSON.stringify(response));
})

app.post('/', function (req, res) {
   res.writeHead(200, { 'Content-Type': 'application/json' });
   var response = { "response": "This is POST method." }
   console.log(response);
   res.end(JSON.stringify(response));
})
app.patch('/*', function (req, res) {
   console.log('Start patch method');
   var Content_Range = req.headers['content-range']
   console.log("All headers Patch" + JSON.stringify(req.headers));
   console.log("Content_Range" + Content_Range);
 
   var Byte_Rang=Content_Range.match(/(\d\-\d*)/gm)
   console.log("Byte_Rang" + Byte_Rang);

   res.writeHead(200, { 'Content-Type': 'application/json','Range': "bytes="+Byte_Rang });
   var response = { "response": "This is patch method." }
   console.log(response);
   res.end(JSON.stringify(response));
})

app.put('/', function (req, res) {
   const url = getFullUrl(req)
   console.log('Start PUT method.');
   console.log("All headers for PUT" + JSON.stringify(req.headers));


   var transfer_mode = req.headers['x-ms-transfer-mode']
   console.log(transfer_mode);
   res.set({
      'Content-Type': 'text/plain',
      'Location': url + '/patch'
   })
   res.writeHead(200);
   var response = { "response": "This is PUT method." }
   console.log(response);
   res.end(JSON.stringify(response));
})



var server = app.listen(app.get("port"), function () {

   var host = server.address().address
   var port = server.address().port

   console.log("Node.js API app listening at http://%s:%s", host, port)

})



/**
 * Gets the self full URL from the request
 * 
 * @param {object} req Request
 * @returns {string} URL
 */
const getFullUrl = (req) => `${req.protocol}://${req.headers.host}${req.originalUrl}`;

 

 

the Request Header for the PUT request 

 

{
    "host": "chnuck2fromcode.azurewebsites.net",
    "x-client-ip": "13.95.147.65",
    "x-client-port": "36368",
    "connection": "Keep-Alive",
    "content-length": "0",
    "accept-encoding": "gzip, deflate",
    "accept-language": "en",
    "max-forwards": "10",
    "user-agent": "azure-logic-apps/1.0 (workflow 5c6576d670914f0c8345b4bcf3435f3c; version 08585750132920657062)",
    "x-ms-transfer-mode": "chunked",
    "x-ms-content-length": "44",
    "x-ms-workflow-id": "5c6576d670914f0c8345b4bcf3435f3c",
    "x-ms-workflow-version": "08585750132920657062",
    "x-ms-workflow-name": "httptest",
    "x-ms-workflow-system-id": "/locations/westeurope/scaleunits/prod-215/workflows/5c6576d670914f0c8345b4bcf3435f3c",
    "x-ms-workflow-run-id": "08585750114452676750935970680CU211",
    "x-ms-workflow-run-tracking-id": "c5f53ac5-8d65-4200-89f4-65361258ee64",
    "x-ms-workflow-operation-name": "HTTP",
    "x-ms-execution-location": "westeurope",
    "x-ms-workflow-subscription-id": "----------",
    "x-ms-workflow-resourcegroup-name": "CSS",
    "x-ms-tracking-id": "1adc815f-a758-4191-9230-b4761b7b65f7",
    "x-ms-correlation-id": "1adc815f-a758-4191-9230-b4761b7b65f7",
    "x-ms-client-request-id": "1adc815f-a758-4191-9230-b4761b7b65f7",
    "x-ms-client-tracking-id": "08585750114452676750935970680CU211",
    "x-ms-action-tracking-id": "b7a86846-f6d8-44e0-a8dd-ab089e8ce907",
    "x-ms-activity-vector": "IN.0J.IN.06",
    "x-waws-unencoded-url": "/",
    "client-ip": "13.95.147.65:36368",
    "x-arr-log-id": "bec9d203-20ab-40b2-9463-e433bbb4b765",
    "disguised-host": "chnuck2fromcode.azurewebsites.net",
    "x-site-deployment-id": "chnuck2fromcode",
    "was-default-hostname": "chnuck2fromcode.azurewebsites.net",
    "x-original-url": "/",
    "x-forwarded-for": "13.95.147.65:36368",
    "x-arr-ssl": "2048|256|C=US, O=Microsoft Corporation, CN=Microsoft RSA TLS CA 01|CN=*.azurewebsites.net",
    "x-forwarded-proto": "https",
    "x-appservice-proto": "https",
    "x-forwarded-tlsversion": "1.2"
}

 

 

The Request header for the Patch request 

 

{
    "host": "chnuck2fromcode.azurewebsites.net",
    "x-client-ip": "13.95.147.65",
    "x-client-port": "18752",
    "connection": "Keep-Alive",
    "content-length": "44",
    "content-type": "text/plain; charset=utf-8",
    "content-range": "bytes 0-43/44",
    "accept-encoding": "gzip, deflate",
    "accept-language": "en",
    "max-forwards": "10",
    "user-agent": "azure-logic-apps/1.0 (workflow 5c6576d670914f0c8345b4bcf3435f3c; version 08585750132920657062)",
    "x-ms-workflow-id": "5c6576d670914f0c8345b4bcf3435f3c",
    "x-ms-workflow-version": "08585750132920657062",
    "x-ms-workflow-name": "httptest",
    "x-ms-workflow-system-id": "/locations/westeurope/scaleunits/prod-215/workflows/5c6576d670914f0c8345b4bcf3435f3c",
    "x-ms-workflow-run-id": "08585750114452676750935970680CU211",
    "x-ms-workflow-run-tracking-id": "c5f53ac5-8d65-4200-89f4-65361258ee64",
    "x-ms-workflow-operation-name": "HTTP",
    "x-ms-execution-location": "westeurope",
    "x-ms-workflow-subscription-id": "31511bf2-385b-420e-b190-b14268a94dcf",
    "x-ms-workflow-resourcegroup-name": "CSS",
    "x-ms-tracking-id": "448096a7-0955-4841-954b-0638015581b5",
    "x-ms-correlation-id": "448096a7-0955-4841-954b-0638015581b5",
    "x-ms-client-request-id": "448096a7-0955-4841-954b-0638015581b5",
    "x-ms-client-tracking-id": "08585750114452676750935970680CU211",
    "x-ms-action-tracking-id": "b7a86846-f6d8-44e0-a8dd-ab089e8ce907",
    "x-ms-activity-vector": "IN.0J.IN.08",
    "x-waws-unencoded-url": "//patch",
    "client-ip": "13.95.147.65:18752",
    "x-arr-log-id": "800de470-2d12-423b-afdd-c1f4f4bf8f92",
    "disguised-host": "chnuck2fromcode.azurewebsites.net",
    "x-site-deployment-id": "chnuck2fromcode",
    "was-default-hostname": "chnuck2fromcode.azurewebsites.net",
    "x-original-url": "/patch",
    "x-forwarded-for": "13.95.147.65:18752"
}

 

 

%3CLINGO-SUB%20id%3D%22lingo-sub-2560452%22%20slang%3D%22en-US%22%3ESample%20API%20that%20support%20Logic%20App%20chunking%20using%20Node%20js%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2560452%22%20slang%3D%22en-US%22%3E%3CP%3EThis%20article%20to%20shows%20how%20build%20simple%20Node%20js%20endpoint%20that%20can%20react%20to%20the%20logic%20app%20chunking%20http%20action%20%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThe%20API%20was%20implemented%20by%20following%20the%20article%20%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Flogic-apps%2Flogic-apps-handle-large-messages%23set-up-chunking-over-http%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EHandle%20large%20messages%20by%20using%20chunking%20-%20Azure%20Logic%20Apps%20%7C%20Microsoft%20Docs%3C%2FA%3E%3C%2FP%3E%0A%3CP%3EThe%20logic%20app%20uses%20chucking%20when%20sending%20data%20to%20managed%20API%20like%20SFTP%20for%20example.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThe%20HTTP%20action%20is%20not%20relying%20on%20the%20request%20header%20%E2%80%9C%3CA%20href%3D%22https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FHTTP%2FHeaders%2FTransfer-Encoding%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3ETransfer-Encoding%3C%2FA%3E%E2%80%9D.%20It%20implements%20its%20own%20chunking%20protocol%20by%20using%20custom%20Header%20key%20%E2%80%9C%3CU%3Ex-ms-transfer-mode%3C%2FU%3E%E2%80%9D%20instead.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThe%20below%20sequence%20diagram%20shows%20the%20minimum%20implementation%20for%20the%20Server%20component%20since%20some%20of%20the%20headers%20are%20optional.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3ESequence%20diagram%20for%20chunking%20flow%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Mohammed_Barqawi_2-1626639118079.png%22%20style%3D%22width%3A%20749px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F296669i102FBEE350DD6787%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22Mohammed_Barqawi_2-1626639118079.png%22%20alt%3D%22Mohammed_Barqawi_2-1626639118079.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3ESource%20code%20for%20the%20server%20.js%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-javascript%22%3E%3CCODE%3E'use%20strict'%3B%0A%0Avar%20express%20%3D%20require('express')%3B%0Avar%20app%20%3D%20express()%3B%0A%0Aapp.set(%22port%22%2C%20process.env.PORT%20%7C%7C%204000)%3B%0A%0Aapp.get('%2F'%2C%20function%20(req%2C%20res)%20%7B%0A%20%20%20res.writeHead(200%2C%20%7B%20'Content-Type'%3A%20'application%2Fjson'%20%7D)%3B%0A%20%20%20var%20response%20%3D%20%7B%20%22response%22%3A%20%22This%20is%20GET%20method.%22%20%7D%0A%20%20%20console.log(response)%3B%0A%20%20%20res.end(JSON.stringify(response))%3B%0A%7D)%0A%0Aapp.get('%2F%3Aid'%2C%20function%20(req%2C%20res)%20%7B%0A%20%20%20res.writeHead(200%2C%20%7B%20'Content-Type'%3A%20'application%2Fjson'%20%7D)%3B%0A%20%20%20var%20response%20%3D%20%7B%20%22response%22%3A%20%22This%20is%20GET%20method%20with%20id%3D%22%20%2B%20req.params.id%20%2B%20%22.%22%20%7D%0A%20%20%20console.log(response)%3B%0A%20%20%20res.end(JSON.stringify(response))%3B%0A%7D)%0A%0Aapp.post('%2F'%2C%20function%20(req%2C%20res)%20%7B%0A%20%20%20res.writeHead(200%2C%20%7B%20'Content-Type'%3A%20'application%2Fjson'%20%7D)%3B%0A%20%20%20var%20response%20%3D%20%7B%20%22response%22%3A%20%22This%20is%20POST%20method.%22%20%7D%0A%20%20%20console.log(response)%3B%0A%20%20%20res.end(JSON.stringify(response))%3B%0A%7D)%0Aapp.patch('%2F*'%2C%20function%20(req%2C%20res)%20%7B%0A%20%20%20console.log('Start%20patch%20method')%3B%0A%20%20%20var%20Content_Range%20%3D%20req.headers%5B'content-range'%5D%0A%20%20%20console.log(%22All%20headers%20Patch%22%20%2B%20JSON.stringify(req.headers))%3B%0A%20%20%20console.log(%22Content_Range%22%20%2B%20Content_Range)%3B%0A%20%0A%20%20%20var%20Byte_Rang%3DContent_Range.match(%2F(%5Cd%5C-%5Cd*)%2Fgm)%0A%20%20%20console.log(%22Byte_Rang%22%20%2B%20Byte_Rang)%3B%0A%0A%20%20%20res.writeHead(200%2C%20%7B%20'Content-Type'%3A%20'application%2Fjson'%2C'Range'%3A%20%22bytes%3D%22%2BByte_Rang%20%7D)%3B%0A%20%20%20var%20response%20%3D%20%7B%20%22response%22%3A%20%22This%20is%20patch%20method.%22%20%7D%0A%20%20%20console.log(response)%3B%0A%20%20%20res.end(JSON.stringify(response))%3B%0A%7D)%0A%0Aapp.put('%2F'%2C%20function%20(req%2C%20res)%20%7B%0A%20%20%20const%20url%20%3D%20getFullUrl(req)%0A%20%20%20console.log('Start%20PUT%20method.')%3B%0A%20%20%20console.log(%22All%20headers%20for%20PUT%22%20%2B%20JSON.stringify(req.headers))%3B%0A%0A%0A%20%20%20var%20transfer_mode%20%3D%20req.headers%5B'x-ms-transfer-mode'%5D%0A%20%20%20console.log(transfer_mode)%3B%0A%20%20%20res.set(%7B%0A%20%20%20%20%20%20'Content-Type'%3A%20'text%2Fplain'%2C%0A%20%20%20%20%20%20'Location'%3A%20url%20%2B%20'%2Fpatch'%0A%20%20%20%7D)%0A%20%20%20res.writeHead(200)%3B%0A%20%20%20var%20response%20%3D%20%7B%20%22response%22%3A%20%22This%20is%20PUT%20method.%22%20%7D%0A%20%20%20console.log(response)%3B%0A%20%20%20res.end(JSON.stringify(response))%3B%0A%7D)%0A%0A%0A%0Avar%20server%20%3D%20app.listen(app.get(%22port%22)%2C%20function%20()%20%7B%0A%0A%20%20%20var%20host%20%3D%20server.address().address%0A%20%20%20var%20port%20%3D%20server.address().port%0A%0A%20%20%20console.log(%22Node.js%20API%20app%20listening%20at%20http%3A%2F%2F%25s%3A%25s%22%2C%20host%2C%20port)%0A%0A%7D)%0A%0A%0A%0A%2F**%0A%20*%20Gets%20the%20self%20full%20URL%20from%20the%20request%0A%20*%20%0A%20*%20%40param%20%7Bobject%7D%20req%20Request%0A%20*%20%40returns%20%7Bstring%7D%20URL%0A%20*%2F%0Aconst%20getFullUrl%20%3D%20(req)%20%3D%26gt%3B%20%60%24%7Breq.protocol%7D%3A%2F%2F%24%7Breq.headers.host%7D%24%7Breq.originalUrl%7D%60%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3Ethe%20Request%20Header%20for%20the%20PUT%20request%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-json%22%3E%3CCODE%3E%7B%0A%20%20%20%20%22host%22%3A%20%22chnuck2fromcode.azurewebsites.net%22%2C%0A%20%20%20%20%22x-client-ip%22%3A%20%2213.95.147.65%22%2C%0A%20%20%20%20%22x-client-port%22%3A%20%2236368%22%2C%0A%20%20%20%20%22connection%22%3A%20%22Keep-Alive%22%2C%0A%20%20%20%20%22content-length%22%3A%20%220%22%2C%0A%20%20%20%20%22accept-encoding%22%3A%20%22gzip%2C%20deflate%22%2C%0A%20%20%20%20%22accept-language%22%3A%20%22en%22%2C%0A%20%20%20%20%22max-forwards%22%3A%20%2210%22%2C%0A%20%20%20%20%22user-agent%22%3A%20%22azure-logic-apps%2F1.0%20(workflow%205c6576d670914f0c8345b4bcf3435f3c%3B%20version%2008585750132920657062)%22%2C%0A%20%20%20%20%22x-ms-transfer-mode%22%3A%20%22chunked%22%2C%0A%20%20%20%20%22x-ms-content-length%22%3A%20%2244%22%2C%0A%20%20%20%20%22x-ms-workflow-id%22%3A%20%225c6576d670914f0c8345b4bcf3435f3c%22%2C%0A%20%20%20%20%22x-ms-workflow-version%22%3A%20%2208585750132920657062%22%2C%0A%20%20%20%20%22x-ms-workflow-name%22%3A%20%22httptest%22%2C%0A%20%20%20%20%22x-ms-workflow-system-id%22%3A%20%22%2Flocations%2Fwesteurope%2Fscaleunits%2Fprod-215%2Fworkflows%2F5c6576d670914f0c8345b4bcf3435f3c%22%2C%0A%20%20%20%20%22x-ms-workflow-run-id%22%3A%20%2208585750114452676750935970680CU211%22%2C%0A%20%20%20%20%22x-ms-workflow-run-tracking-id%22%3A%20%22c5f53ac5-8d65-4200-89f4-65361258ee64%22%2C%0A%20%20%20%20%22x-ms-workflow-operation-name%22%3A%20%22HTTP%22%2C%0A%20%20%20%20%22x-ms-execution-location%22%3A%20%22westeurope%22%2C%0A%20%20%20%20%22x-ms-workflow-subscription-id%22%3A%20%22----------%22%2C%0A%20%20%20%20%22x-ms-workflow-resourcegroup-name%22%3A%20%22CSS%22%2C%0A%20%20%20%20%22x-ms-tracking-id%22%3A%20%221adc815f-a758-4191-9230-b4761b7b65f7%22%2C%0A%20%20%20%20%22x-ms-correlation-id%22%3A%20%221adc815f-a758-4191-9230-b4761b7b65f7%22%2C%0A%20%20%20%20%22x-ms-client-request-id%22%3A%20%221adc815f-a758-4191-9230-b4761b7b65f7%22%2C%0A%20%20%20%20%22x-ms-client-tracking-id%22%3A%20%2208585750114452676750935970680CU211%22%2C%0A%20%20%20%20%22x-ms-action-tracking-id%22%3A%20%22b7a86846-f6d8-44e0-a8dd-ab089e8ce907%22%2C%0A%20%20%20%20%22x-ms-activity-vector%22%3A%20%22IN.0J.IN.06%22%2C%0A%20%20%20%20%22x-waws-unencoded-url%22%3A%20%22%2F%22%2C%0A%20%20%20%20%22client-ip%22%3A%20%2213.95.147.65%3A36368%22%2C%0A%20%20%20%20%22x-arr-log-id%22%3A%20%22bec9d203-20ab-40b2-9463-e433bbb4b765%22%2C%0A%20%20%20%20%22disguised-host%22%3A%20%22chnuck2fromcode.azurewebsites.net%22%2C%0A%20%20%20%20%22x-site-deployment-id%22%3A%20%22chnuck2fromcode%22%2C%0A%20%20%20%20%22was-default-hostname%22%3A%20%22chnuck2fromcode.azurewebsites.net%22%2C%0A%20%20%20%20%22x-original-url%22%3A%20%22%2F%22%2C%0A%20%20%20%20%22x-forwarded-for%22%3A%20%2213.95.147.65%3A36368%22%2C%0A%20%20%20%20%22x-arr-ssl%22%3A%20%222048%7C256%7CC%3DUS%2C%20O%3DMicrosoft%20Corporation%2C%20CN%3DMicrosoft%20RSA%20TLS%20CA%2001%7CCN%3D*.azurewebsites.net%22%2C%0A%20%20%20%20%22x-forwarded-proto%22%3A%20%22https%22%2C%0A%20%20%20%20%22x-appservice-proto%22%3A%20%22https%22%2C%0A%20%20%20%20%22x-forwarded-tlsversion%22%3A%20%221.2%22%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3EThe%20Request%20header%20for%20the%20Patch%20request%26nbsp%3B%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-json%22%3E%3CCODE%3E%7B%0A%20%20%20%20%22host%22%3A%20%22chnuck2fromcode.azurewebsites.net%22%2C%0A%20%20%20%20%22x-client-ip%22%3A%20%2213.95.147.65%22%2C%0A%20%20%20%20%22x-client-port%22%3A%20%2218752%22%2C%0A%20%20%20%20%22connection%22%3A%20%22Keep-Alive%22%2C%0A%20%20%20%20%22content-length%22%3A%20%2244%22%2C%0A%20%20%20%20%22content-type%22%3A%20%22text%2Fplain%3B%20charset%3Dutf-8%22%2C%0A%20%20%20%20%22content-range%22%3A%20%22bytes%200-43%2F44%22%2C%0A%20%20%20%20%22accept-encoding%22%3A%20%22gzip%2C%20deflate%22%2C%0A%20%20%20%20%22accept-language%22%3A%20%22en%22%2C%0A%20%20%20%20%22max-forwards%22%3A%20%2210%22%2C%0A%20%20%20%20%22user-agent%22%3A%20%22azure-logic-apps%2F1.0%20(workflow%205c6576d670914f0c8345b4bcf3435f3c%3B%20version%2008585750132920657062)%22%2C%0A%20%20%20%20%22x-ms-workflow-id%22%3A%20%225c6576d670914f0c8345b4bcf3435f3c%22%2C%0A%20%20%20%20%22x-ms-workflow-version%22%3A%20%2208585750132920657062%22%2C%0A%20%20%20%20%22x-ms-workflow-name%22%3A%20%22httptest%22%2C%0A%20%20%20%20%22x-ms-workflow-system-id%22%3A%20%22%2Flocations%2Fwesteurope%2Fscaleunits%2Fprod-215%2Fworkflows%2F5c6576d670914f0c8345b4bcf3435f3c%22%2C%0A%20%20%20%20%22x-ms-workflow-run-id%22%3A%20%2208585750114452676750935970680CU211%22%2C%0A%20%20%20%20%22x-ms-workflow-run-tracking-id%22%3A%20%22c5f53ac5-8d65-4200-89f4-65361258ee64%22%2C%0A%20%20%20%20%22x-ms-workflow-operation-name%22%3A%20%22HTTP%22%2C%0A%20%20%20%20%22x-ms-execution-location%22%3A%20%22westeurope%22%2C%0A%20%20%20%20%22x-ms-workflow-subscription-id%22%3A%20%2231511bf2-385b-420e-b190-b14268a94dcf%22%2C%0A%20%20%20%20%22x-ms-workflow-resourcegroup-name%22%3A%20%22CSS%22%2C%0A%20%20%20%20%22x-ms-tracking-id%22%3A%20%22448096a7-0955-4841-954b-0638015581b5%22%2C%0A%20%20%20%20%22x-ms-correlation-id%22%3A%20%22448096a7-0955-4841-954b-0638015581b5%22%2C%0A%20%20%20%20%22x-ms-client-request-id%22%3A%20%22448096a7-0955-4841-954b-0638015581b5%22%2C%0A%20%20%20%20%22x-ms-client-tracking-id%22%3A%20%2208585750114452676750935970680CU211%22%2C%0A%20%20%20%20%22x-ms-action-tracking-id%22%3A%20%22b7a86846-f6d8-44e0-a8dd-ab089e8ce907%22%2C%0A%20%20%20%20%22x-ms-activity-vector%22%3A%20%22IN.0J.IN.08%22%2C%0A%20%20%20%20%22x-waws-unencoded-url%22%3A%20%22%2F%2Fpatch%22%2C%0A%20%20%20%20%22client-ip%22%3A%20%2213.95.147.65%3A18752%22%2C%0A%20%20%20%20%22x-arr-log-id%22%3A%20%22800de470-2d12-423b-afdd-c1f4f4bf8f92%22%2C%0A%20%20%20%20%22disguised-host%22%3A%20%22chnuck2fromcode.azurewebsites.net%22%2C%0A%20%20%20%20%22x-site-deployment-id%22%3A%20%22chnuck2fromcode%22%2C%0A%20%20%20%20%22was-default-hostname%22%3A%20%22chnuck2fromcode.azurewebsites.net%22%2C%0A%20%20%20%20%22x-original-url%22%3A%20%22%2Fpatch%22%2C%0A%20%20%20%20%22x-forwarded-for%22%3A%20%2213.95.147.65%3A18752%22%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-2560452%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%22Mohammed_Barqawi_1-1626638663301.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F296668i9B5BDBA162B9BA16%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22Mohammed_Barqawi_1-1626638663301.png%22%20alt%3D%22Mohammed_Barqawi_1-1626638663301.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EThis%20article%20to%20show%20how%20build%20simple%20Node%20js%20endpoint%20that%20can%20react%20to%20the%20logic%20app%20chunking%20http%20action%20%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2560452%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3ELogic%20Apps%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Co-Authors
Version history
Last update:
‎Jul 18 2021 10:32 PM
Updated by: