如何在逻辑应用程序中将参数值用作长字符串?

问题描述 投票:0回答:2

这是我的逻辑应用程序操作-

"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')"这样的输出

azure azure-logic-apps arm-template
2个回答
0
投票

因为您在这里使用ARM参数,所以您应该应该有类似这样的内容

"$filter": "[concat('(addressnumber eq ''', parameters('add_number'), ''')')]"

0
投票

在简单的情况下,建议的ARM concat方法可以很好地工作,但是如果您具有更复杂的表达式,则很容易造成混乱。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.