我有一个带有http动作的逻辑应用程序。 由于回复策略最多允许4次重试,因此我将活动放在do-until循环中(使用最大计数和超时),使用http状态代码作为转义变量(直到它为200)。
在运行时我收到此错误
[编辑]的 InvalidTemplate。无法处理动作'HTTPAction'的模板语言表达式 [编辑]:无法处理动作的模板语言表达式'HttpAction'[...]模板语言表达式'equals(outputs('HttpAction')['statusCode '],200)'无法评估,因为无法选择属性'statusCode'。
任何提示?
谢谢,亚历山德罗
[编辑] http请求正常工作(尝试使用fiddler),在工作流程中我认为它由于模板错误而无法执行(为什么它在运行时失败而不是在编辑模式?)[编辑]
答案 0 :(得分:0)
回复可读代码。 我只是做了一个快速的POC来模拟你的场景,但我无法重现你的问题。
我的待办事项代码:
"Until": {
"actions": {
"HttpGetMyValues": {
"inputs": {
"headers": {
"Ocp-Apim-Subscription-Key": "@parameters('OcpApimSubscriptionKey')"
},
"method": "GET",
"uri": "https://myendpointuri"
},
"runAfter": {},
"type": "Http"
}
},
"expression": "@equals(outputs('HttpGetMyValues')['statusCode'], 200)",
"limit": {
"count": 1,
"timeout": "PT1M"
},
"runAfter": {},
"type": "Until"
}
我可以毫无问题地保存并运行Logic App。
答案 1 :(得分:0)
重试策略是可配置的,目前只能通过代码视图获得,但我们计划很快在设计器中启用它。 Here's文档。
"retryPolicy" : {
"type": "<type-of-retry-policy>",
"interval": <retry-interval>,
"count": <number-of-retry-attempts>
}
答案 2 :(得分:0)
我知道这很晚了,但是错误是由于循环本身中包含“ do-until”循环结束的条件所致。您需要使用循环外的值作为参考。我建议:
答案 3 :(得分:0)
在直到控件中:
@equals(actions('HTTPAction').status, 'Succeeded')