Running the Transform XML action (XSLT map) for a Standard Logic App within a container
Hello everyone,
I'm working on running a Standard Logic App in a container using Docker. The Workflow functions correctly within the container when using a Liquid map (JSON to JSON). However, when I attempt to use an XSLT map with the Transform XML action, the Docker file builds successfully, but I encounter the following error when running it:
[2024-11-12T11:39:10.589Z] Failed to start Worker Channel. Process fileName: /home/data/Functions/ExtensionBundles/Microsoft.Azure.Functions.ExtensionBundle.Workflows/1.94.13/NetFxWorker/Microsoft.Azure.Workflows.Functions.NetFxWorker.exe
[2024-11-12T11:39:10.589Z] System.Diagnostics.Process: An error occurred trying to start process '/home/data/Functions/ExtensionBundles/Microsoft.Azure.Functions.ExtensionBundle.Workflows/1.94.13/NetFxWorker/Microsoft.Azure.Workflows.Functions.NetFxWorker.exe' with working directory '/home/site/wwwroot'. Permission denied.
[2024-11-12T11:39:10.606Z] Failed to start a new language worker for runtime: node.
[2024-11-12T11:39:10.606Z] System.Diagnostics.Process: An error occurred trying to start process '/home/data/Functions/ExtensionBundles/Microsoft.Azure.Functions.ExtensionBundle.Workflows/1.94.13/NetFxWorker/Microsoft.Azure.Workflows.Functions.NetFxWorker.exe' with working directory '/home/site/wwwroot'. Permission denied.
I am using Node V18, .NET 6 and Function core tool V4.
local.settings.json:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "%ConectionString%",
"APP_KIND": "workflowapp",
"ProjectDirectoryPath": "c:\\XmlMap",
"FUNCTIONS_WORKER_RUNTIME": "node",
"WORKFLOWS_SUBSCRIPTION_ID": ""
}
}
host.json:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Workflows",
"version": "[1.*, 2.0.0)"
}
}
JSON Workflow (Working):
XML Workflow:
I tried changing the permissions but encountered a "no directory found" error. I also attempted to modify permissions at runtime through a script.
Additionally, I used the new Data Mapper action, which also runs the XSLT map, but encountered the same error.
Detailed log summary: When using Json map, it is calling two functions: Host.Functions.JsonWorkFlow and Host.Functions.WorkflowDispatcher. When using XML map, it is calling three functions: Host.Functions.XsltNetFxLanguageWorkerFunction, Host.Functions.JsonWorkFlow and Host.Functions.WorkflowDispatcher.
Any suggestions or workaround would be much appreciated.