Azure functions 在逻辑应用程序中调用的azure函数的id内使用参数时出错
我在不同的阶段有不同的azure功能, 当我部署我的逻辑应用程序时,我想配置azure函数的调用 我添加了一个新参数,名为:Azure functions 在逻辑应用程序中调用的azure函数的id内使用参数时出错,azure-functions,azure-logic-apps,Azure Functions,Azure Logic Apps,我在不同的阶段有不同的azure功能, 当我部署我的逻辑应用程序时,我想配置azure函数的调用 我添加了一个新参数,名为: "unzip_gzip_path": { "value": "/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/XXXTest/providers/Microsoft.Web/sites/FunctionApp201806XXXXXXXX/functions/Function1
"unzip_gzip_path": {
"value": "/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/XXXTest/providers/Microsoft.Web/sites/FunctionApp201806XXXXXXXX/functions/Function1"
}
在手臂模板中使用他,如下所示:
"$functions_paths": {
"value": {
"unzip_gzip": {
"path": "[parameters('unzip_gzip_path')]"
}
}
}
"Function1":{
"type": "Function",
"inputs": {
"body": "@items('For_each_attachment')?['ContentBytes']",
"method": "POST",
"function": {
"id": "@parameters('$functions_paths')['unzip_gzip']['path']"
}
},
"runAfter": {}
}
Azure函数调用如下所示:
"$functions_paths": {
"value": {
"unzip_gzip": {
"path": "[parameters('unzip_gzip_path')]"
}
}
}
"Function1":{
"type": "Function",
"inputs": {
"body": "@items('For_each_attachment')?['ContentBytes']",
"method": "POST",
"function": {
"id": "@parameters('$functions_paths')['unzip_gzip']['path']"
}
},
"runAfter": {}
}
现在我得到了错误
15:31:34 - 15:31:33 - Resource Microsoft.Logic/workflows 'DMARCReportingProcessingLogicApp' failed with message '{
15:31:34 - "error": {
15:31:34 - "code": "LinkedInvalidPropertyId",
15:31:34 - "message": "Property id '@parameters('$functions_paths')['unzip_gzip']['path']' at path 'properties.definition.actions.For_each_attachment.actions.Condition.actions.Function1.inputs.function.id' is invalid. Expect fully qualified resource Id that start with '/subscriptions/{subscriptionId}' or '/providers/{resourceProviderNamespace}/'."
15:31:34 - }
15:31:34 - }'
是否我不能在函数位置中使用参数?当前,函数的资源ID只能在部署时设置,不能在运行时设置。正确的设置方法是将其设置为ARM参数,而不是逻辑应用程序参数(如果有意义的话) 为部署而参数化的
{
“Azure_函数”:{
“类型”:“功能”,
“投入”:{
“body”:“@triggerBody()”,
“功能”:{
“id”:“[resourceId('Microsoft.Web/sites/functions',参数('functionAppName'),变量('functionName'))”
}
},
“runAfter”:{}
}
当前,只能在部署时而不是运行时设置函数的资源ID。正确的设置方法是将其设置为ARM参数,而不是逻辑应用程序参数(如果有意义)
为部署而参数化的
{
“Azure_函数”:{
“类型”:“功能”,
“投入”:{
“body”:“@triggerBody()”,
“功能”:{
“id”:“[resourceId('Microsoft.Web/sites/functions',参数('functionAppName'),变量('functionName'))”
}
},
“runAfter”:{}
}
嗨,Jeff,如果按照这里的要求支持使用Logic Apps params,那就太好了。这确实有助于更轻松地为Logic Apps准备ARM模板,干杯:)一般来说,现在的差距是功能在运行时不能是动态的。不确定今天可能实现的部署时间会有哪些参数(值得一提的是,我相信在运行时使其动态化也正在进行中)嗨,Jeff,如果按照这里的要求支持使用Logic Apps params,那就太好了。这将非常有助于更容易地为Logic Apps准备ARM模板,干杯:)一般来说,现在的差距是函数在运行时不能是动态的。不确定今天应该可以实现的部署时参数是什么(我认为让它们在运行时动态也是值得的)