如何在逻辑应用程序的手臂模板中指定变量/参数?

时间:2019-05-31 13:35:12

标签: azure-logic-apps arm-template

我正在为逻辑应用程序创建Arm模板。此逻辑应用需要删除天蓝色表中的一些旧条目(例如10天或20天)。

在我的手臂模板中,如果这样做,它将起作用。

"queries": {
            "$filter": "Timestamp le datetime'@{addDays(utcNow(),-31)}'"
  }

但理想情况下,我想这样做:

"queries": {
            "$filter": "Timestamp le datetime'@{addDays(utcNow(),parameters('RetainDay'))}'"
   }

基本上使用参数来控制要检查的天数。我将此参数定义为:

 "parameters": {
    "RetainDay": {
      "type": "int"
    }
  }

当我部署它时,parameter('RetainDay')不会替换为参数值。取而代之的是:

Timestamp le datetime'@{addDays(utcNow(),parameters('RetainDay')

所以我必须使用错误的语法。

有人可以指出吗?

3 个答案:

答案 0 :(得分:0)

您需要将“ Logic Apps模板参数”与“ ARM部署模板参数”连接在一起,尽管看起来像一个变量和同一个变量,但它是两个参数协同工作。在我的解决方案中,我有一个名为“ CustomVariableName”的参数

Solution file

传递参数 Logic App Designer

在“逻辑应用程序代码”和ARM模板中声明CustomVariableName Logic App Code View

参数文件中的值 Logic App parameters file

在Azure中部署的逻辑应用程序 Deployed Azure Logic App

点击HTTP触发器后的邮递员POST响应(而不是值:“ DefaultValue”) enter image description here

答案 1 :(得分:0)

您需要使用concat()函数来实现字符串连接和变量扩展:

"$filter": "[concat('Timestamp le datetime\'@{addDays(utcNow(),', parameters('RetainDay'), ')}\'')]"

我认为您可以使用'转义\,如果不能,则可以创建一个值为'的变量,并改用它。

答案 2 :(得分:0)

我看到您的模板仅设置了参数retionday类型,而您没有设置值。因此,如下图所示,进入参数集defaultValue

enter image description here

我只使用此过滤查询Timestamp le datetime'@{addDays(utcNow(),parameters('retionday'))}',它将代替时间。

enter image description here

所以请尝试一下,希望对您有所帮助。