Automated publishing of Data Factory with DevOps

Avin Mathew 21 Reputation points
2021-02-22T01:47:02.187+00:00

I've been following the instructions in Automated publishing for continuous integration and delivery to build the ARM templates for Data Factory.

The Validate job seems to run successfully in Azure DevOps, but I do see some errors in the logs:

ERROR === LocalFileClientService: Unable to read file: /home/vsts/work/1/s/publish_config.json, error: {"stack":"Error: ENOENT: no such file or directory, open '/home/vsts/work/1/s/publish_config.json'","message":"ENOENT: no such file or directory, open '/home/vsts/work/1/s/publish_config.json'","errno":-2,"code":"ENOENT","syscall":"open","path":"/home/vsts/work/1/s/publish_config.json"} ERROR === PublishConfigService: _getLatestPublishConfig - Unable to process publish config file, error: {"stack":"Error: ENOENT: no such file or directory, open '/home/vsts/work/1/s/publish_config.json'","message":"ENOENT: no such file or directory, open '/home/vsts/work/1/s/publish_config.json'","errno":-2,"code":"ENOENT","syscall":"open","path":"/home/vsts/work/1/s/publish_config.json"}

The Validate and Generate ARM template job fails with:

ERROR === LocalFileClientService: Unable to read file: /home/vsts/work/1/s/arm-template-parameters-definition.json, error: {"stack":"Error: ENOENT: no such file or directory, open '/home/vsts/work/1/s/arm-template-parameters-definition.json'","message":"ENOENT: no such file or directory, open '/home/vsts/work/1/s/arm-template-parameters-definition.json'","errno":-2,"code":"ENOENT","syscall":"open","path":"/home/vsts/work/1/s/arm-template-parameters-definition.json"}

and many errors like:

ERROR === BaseAsyncAdapter: {"model":"Copy","name":"Load data","error":"toResource failed. Resason: {\"stack\":\"NullInjectorError: StaticInjectorError[e]: \\n NullInjectorError: No provider for e!\\n at e.get (/home/vsts/work/1/s/downloads/main.js:76:1120)\\n at /home/vsts/work/1/s/downloads/main.js:398:2458\\n at Eo (/home/vsts/work/1/s/downloads/main.js:398:2865)\\n at e.get (/home/vsts/work/1/s/downloads/main.js:398:2031)\\n at t.<anonymous> (/home/vsts/work/1/s/downloads/main.js:1058:923482)\\n at /home/vsts/work/1/s/downloads/main.js:16:2243\\n at Object.next (/home/vsts/work/1/s/downloads/main.js:16:2348)\\n at /home/vsts/work/1/s/downloads/main.js:16:1285\\n at new Promise (<anonymous>)\\n at Object.l (/home/vsts/work/1/s/downloads/main.js:16:1030)\",\"message\":\"StaticInjectorError[e]: \\n NullInjectorError: No provider for e!\",\"name\":\"NullInjectorError\",\"ngTempTokenPath\":null,\"ngTokenPath\":[null]}"}

I also tried to run the npm commands locally, but Validate fails with:

ERROR === CmdApiApp: Failed to run resource validation. Error: {"stack":"TypeError: Cannot read property 'concept' of undefined\n at Function.<anonymous> (C:\\src\\data-factory\\downloads\\main.js:1271:27513)\n at C:\\src\\data-factory\\downloads\\main.js:16:2243\n at Object.next (C:\\src\\data-factory\\downloads\\main.js:16:2348)\n at o (C:\\src\\data-factory\\downloads\\main.js:16:1087)","message":"Cannot read property 'concept' of undefined"}

Any ideas on what is going wrong?

Azure Data Factory
Azure Data Factory
An Azure service for ingesting, preparing, and transforming data at scale.
11,623 questions
{count} votes

2 answers

Sort by: Most helpful
  1. Manrique Vargas 6 Reputation points
    2021-06-28T15:12:04.86+00:00

    Hello guys, this got solved. The leading '/' before 'subscriptions' is missing. Changing the Resource ID to /subscriptions/xxxxxxx/resourceGroups/xxxxxxx/providers/Microsoft.DataFactory/factories/xxxxxxxx should work. I tried again with the updated resource ID and it worked.
    @Saurabh Sharma @DadejVincent-0237

    1 person found this answer helpful.

  2. Joost van Rossum 41 Reputation points
    2021-09-20T17:20:10.697+00:00

    To solve the missing arm-template-parameters-definition.json you need to Edit the Parameter configuration within ADF. Then the message will disappear. See this

    The missing publish_config.json can be solved by creating it in the repos (it looks like it isn't used any more, but somehow it keeps complaining about it). See this


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.