Pau*_*aul 6 azure-logic-apps azure-rm-template
我正在创建一个ARM模板,用于部署Web App(Mvc Api)和Logic App.
我试图定义逻辑应用内的HTTP操作,使得它动态地连接了API的基本URI以及使用当前项的属性splitOn和@triggerBody().基本Uri本身从ARM模板中的一组参数连接成变量variables('hockeyAppAPISettings').Uri.
这是动作定义的相关剪辑:
"actionName": {
"conditions": [ ],
"inputs": {
"authentication": {
"audience": "[variables('apiSettings').Authentication.Audience]",
"clientId": "[variables('apiSettings').Authentication.ClientId]",
"secret": "[variables('apiSettings').Authentication.Secret]",
"tenant": "[variables('apiSettings').Authentication.Tenant]",
"type": "ActiveDirectoryOAuth"
},
"method": "patch",
"uri": "[concat(variables('apiSettings').Uri, '/@{triggerBody()['Id']}/ScanningInProgress')]"
//"uri": "[concat(variables('apiSettings').Uri, '//@{triggerBody()[/'Id/']}//ScanningInProgress')]"
//"uri": "[concat(variables('apiSettings').Uri, '//@@{triggerBody()[/'Id/']}//ScanningInProgress')]"
},
"type": "Http"
},
Run Code Online (Sandbox Code Playgroud)
这"uri"节是我正在努力的方面.我已经通过这种方式在不同的模式中洒了各种转义字符(\和@).
我要么无法使部署成功,而是部署错误,例如:
无法解析模板语言表达式'concat(变量('apiSettings').Uri,'// @ {triggerBody()[/'Id /']} // ScanningInProgress')':期望令牌'RightParenthesis'和实际'标识符".有关使用详情,请参阅 http://aka.ms/arm-template-expressions ..'.
或者,如果我使部署工作,然后在部署后查看门户中的代码,则字符串连接似乎无法正常工作.变量不会转换为其值.
我已经验证过,如果我使用以下方式直接编辑Uri(通过门户网站HTML编辑器):"uri" : "https://edited.azurewebsites.net/api/Packages/@{triggerBody()['Id']}/ScanningInProgress"Logic App将为来自HTTP触发器的每个项目进行补丁调用.
我究竟做错了什么?
小智 11
你需要逃避内部单引号,即尝试
"uri": "[concat(variables('apiSettings').Uri, '/@{triggerBody()[''Id'']}/ScanningInProgress')]"
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用点符号来引用属性,即
"uri": "[concat(variables('apiSettings').Uri, '/@{triggerBody().Id}/ScanningInProgress')]"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5309 次 |
| 最近记录: |