首页 > 解决方案 > 如何在逻辑应用程序中将参数值用于长字符串?

问题描述

这是我的逻辑应用操作 -

"actions": {
  "Call_API": {
    "runAfter": {},
    "type": "Http",
    "inputs": {
      "headers": {                 
        "Ocp-Apim-Subscription-Key": "[parameters('key')]"
      },
      "method": "GET",
      "queries": {                     
        "$filter": "(addressnumber eq '[parameters('add_number')]')"
      },
      "retryPolicy": {
        "type": "none"
      },
      "uri": "[parameters('url')]"
    }
  }
}

我已将所有参数值传递到参数文件中。部署后它工作正常Ocp-Apim-Subscription-Keyuri但是因为$filter它显示与它相同的字符串而不是参数值add_number。为什么我的语法错误?

输出来了——

"actions": {
  "Call_API": {
    "runAfter": {},
    "type": "Http",
    "inputs": {
    "headers": {                 
      "Ocp-Apim-Subscription-Key": "ce34s3cdfq3q43efwe"
    },
    "method": "GET",
    "queries": {                     
      "$filter": "(addressnumber eq '[parameters('add_number')]')"
    },
    "retryPolicy": {
      "type": "none"
    },
    "uri": "http://demo.com/api"
    }
  }
}

因为$filter我期待像这样的输出"$filter": "(addressnumber eq '123')"

标签: azureazure-logic-appsarm-template

解决方案


在简单的情况下,建议的 ARM concat 方法可以正常工作,但是如果您有更复杂的表达式,它很容易变得非常混乱。

另一种选择是改用逻辑应用参数,并在 ARM 模板中设置该值。这种方法的好处是,您还可以通过从命令行更新 Logic App 参数值来设置参数值,而无需运行 ARM 部署。

链接到文档:https ://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-azure-resource-manager-templates-overview#workflow-definition-and-parameters


推荐阅读