Joep
Joep

Reputation: 43

How to select object attribute in ADF using variable

I'm trying to parametrize a pipeline in Azure Data Factory in order to enable a certain functionality to mulptiple environments. The idea is that the current environment is always available through a global parameter. I'd like to use this parameter to look up an array of environments to process data to. Example:

targetEnvs = [{ "dev": ["dev"], "test": ["dev", "test"], "acc": [], "prod": ["acc", "prod"] }]

Then one should be able to select the targetEnv array with something like targetEnvs[environment] or targetEnvs.environment. Subsequently a ForEach is used to execute some logic on these target environments.

I tried setting this up with targetEnvs as a pipeline parameter (with default value mapping each env directly to targetEnv, as follows: {"dev": ["dev"], "test": ["test"]}) Then I have a Set variable step to take value from the targetEnvs parameter, as follows:Set variable.

I'm now looking for a way to use the current environment (stored in a global parameter) instead of hardcoding "dev" in the Set Variable expression, but I'm not sure how to do this.

enter image description here.

Using this expression won't even start the pipeline. enter image description here.

Question: how do I select this attribute of the object? Any other suggestions on how to do tackle this problem are welcome as well!

(Python analogy would be to have a dictionary target_envs and taking a value from it by using the key "current_env": target_envs[current_env].)

Upvotes: 2

Views: 1096

Answers (1)

Saideep Arikontham
Saideep Arikontham

Reputation: 6114

When I tried to access the object same as you, the same error occurred. I have taken the parameter targetEnv (given array) and global parameter environment with value as dev.

enter image description here

  • You can use the following dynamic content to access the key value.
@pipeline().parameters.targetEnv[0][pipeline().globalParameters.environment]

enter image description here

Upvotes: 1

Related Questions