这是我的逻辑应用程序操作-
"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-Key
和uri
正常工作,但是对于$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')"
这样的输出
因为您在这里使用ARM参数,所以您应该应该有类似这样的内容
"$filter": "[concat('(addressnumber eq ''', parameters('add_number'), ''')')]"
在简单的情况下,建议的ARM concat方法可以很好地工作,但是如果您具有更复杂的表达式,则很容易造成混乱。
另一个选项是改用Logic App参数,然后在ARM模板中设置该值。这种方法的好处是,您还可以通过从命令行更新Logic App参数值来设置参数值而无需运行ARM部署。