Как использовать параметры внутри файла parameters.json в определении рабочего процесса приложения Azure Logic

У меня есть требование использовать параметры внутри объекта параметров рабочего процесса, как показано ниже. Но я не справляюсь с проверкой Azure.

      "parameters": {
    "$apprelatedparams": {
      "value": {
        "testId": "<GUID>",
        "testGroupName": "<GroupName>"
      }
    },
    "$connections": {
      "value": {
        "connectionName": {
          "connectionId": /test/@parameters['$apprelatedparams']['testId']/resourceGroups/@parameters['$apprelatedparams']['testGroupName']/providers/connectionName,
          "id": /test/@parameters['$apprelatedparams']['testId']/providers/testName
        }
      }
    }
  }

Вот полный рабочий процесс с объектом параметров -

      {
  "definition": {
    "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
    "actions": {
      "Response": {
        "inputs": {
          "body": "\"message\": \"Hello World!\"",
          "statusCode": 200
        },
        "runAfter": {},
        "type": "Response"
      }
    },
    "contentVersion": "",
    "outputs": {},
    "parameters": {},
  },
  "parameters": {
      "$apprelatedparams": {
      "value": {
        "testId": "TestID",
        "testGroupName": "GroupName"
      }
    },
     "$apprelatedparamstest": {
      "value": {
        "testsId": "@parameters['$apprelatedparams']['testId']",
        "testGroupsName": "@parameters['$apprelatedparams']['testGroupName']"
      }
    }
  }
}

2 ответа

Функции в выражениях вызываются с помощью скобок, а не квадратных скобок. Поэтому вы должны преобразовать свой файл в:

      "parameters": {
    "$apprelatedparams": {
      "value": {
        "testId": "<GUID>",
        "testGroupName": "<GroupName>"
      }
    },
    "$connections": {
      "value": {
        "connectionName": {
          "connectionId": "/test/@parameters('apprelatedparams')['testId']/resourceGroups/@parameters('apprelatedparams')['testGroupName']/providers/connectionName",
          "id": "/test/@parameters('apprelatedparams')['testId']/providers/testName"
        }
      }
    }
  }

См. также раздел «Выражения для языка определения рабочего процесса» , поскольку в нем объясняется, каких результатов следует ожидать в зависимости от того, как вы создаете вызов.

Это не удается из-за структуры json. Вот код json, который работал у меня.

      {
  "parameters": {
    "$apprelatedparams": {
      "value": {
        "testId": "<GUID>",
        "testGroupName": "<GroupName>"
      }
    },
    "$connections": {
      "value": {
        "connectionName": {
          "connectionId": "test/@parameters['$apprelatedparams']['testId']/resourceGroups/@parameters['$apprelatedparams']['testGroupName']/providers/connectionName",
          "id": "/test/@parameters['$apprelatedparams']['testId']/providers/testName"
        }
      }
    }
  }
}
Другие вопросы по тегам