我在具有 HTTP 触发器的标准逻辑应用程序中有一个工作流。当工作流被触发时,工作流会从 CosmosDB 中检索一些数据。就像是:
前一种方法需要有一个 API 连接。我已经创建并部署了一个“V2”API 连接。让我们称之为myCosmosCon
同样在我的逻辑应用程序的 ARM 模板中,我已经将connectionRuntimeUrl
我的连接 API(to myCosmosCon
)添加到 appSettings(配置):
....
"siteConfig": {
"appSettings": [
{
"name": "subscriptionId",
"value": "[subscription().subscriptionId]"
},
{
"name": "resourceGroup_name",
"value": "[resourceGroup().name]"
},
{
"name": "location_name",
"value": "[resourceGroup().location]"
},
{
"name": "connectionRuntimeUrl",
"value": "[reference(resourceId('Microsoft.Web/connections', parameters('connection_name')),'2016-06-01', 'full').properties.connectionRuntimeUrl]"
},
.....
]
},
然后我在connections.json中写了以下内容:
{
"managedApiConnections": {
"documentdb": {
"api": {
"id": "/subscriptions/@appsetting('subscriptionId')/providers/Microsoft.Web/locations/@appsetting('location_name')/managedApis/documentdb"
},
"connection": {
"id": "/subscriptions/@appsetting('subscriptionId')/resourceGroups/@appsetting('resourceGroup_name')/providers/Microsoft.Web/connections/myCosmosCon"
},
"connectionRuntimeUrl": "@appsetting('connection_runtimeUrl')",
"authentication": {
"type": "ManagedServiceIdentity"
}
}
}
}
现在,当我部署逻辑应用程序、工作流等的 ARM 模板时,我没有发现任何错误,工作流看起来也不错。唯一的问题是没有生成指向 HTTP 触发器的 URL 链接,我无法运行该程序。
但是,如果我connection_runtimeUrl
将connections.json 文件中的 更改为具有实际值;看起来像:
"connectionRuntimeUrl": "https://xxxxxxxxxxxxx.xx.common.logic-norwayeast.azure-apihub.net/apim/myCosmosCon/xxxxxxxxxxxxxxxxxxxxxxxx/",
URL 是直接生成的,我可以简单地运行工作流。之后,如果我按connection_runtimeUrl
原样返回(调用 appsettings()),它仍然有效!链接也留在那里。
看起来当我部署逻辑应用程序和连接.json 的工作流时,没有编译或调用,所以 Azure 认为有错误并且不生成链接。
关于如何解决问题的任何想法?
谢谢!