我正在构建一个连接到服务总线的逻辑应用程序。我创建了逻辑应用程序和 API 连接。我向 API 连接添加了服务总线 RootManageSharedAccessKey 主连接字符串。我可以在队列中出现的新消息的触发操作中使用该 API 连接。
现在,如果我将逻辑应用程序加载到 Visual Studio 并从那里部署它(使用资源组项目类型),它会要求提供服务总线连接字符串。
在上图中,我使用了密钥库。它创建以下 LogicApp.parameters.json:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"logicAppName": {
"value": "publisher-la-messagebatcher-test"
},
"servicebus_1_connectionString": {
"reference": {
"keyVault": {
"id": "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.KeyVault/vaults/publisher-kvault-test"
},
"secretName": "servicebus-connection-string"
}
}
}
}
现在,我的问题是为什么我必须在 API 连接的逻辑应用部署参数中再次提供连接字符串(在本例中为“publisher-sb-test-connection”)?将连接本身(在 Azure 中)配置为使用连接字符串还不够吗?我可以绕过在逻辑应用部署中定义连接字符串吗?
嗯,我找到了。Visual Studio 还会创建与模板的 API 连接。打开 LogicApp.json 并删除 servicebus_1_connectionString 资源创建逻辑。
"servicebus_1_connectionString": {
"type": "securestring",
"metadata": {
"description": "Azure Service Bus Connection String"
}
},
---
"dependsOn": [
"[resourceId('Microsoft.Web/connections', parameters('servicebus_1_Connection_Name'))]"
]
},
{
"type": "MICROSOFT.WEB/CONNECTIONS",
"apiVersion": "2016-06-01",
"name": "[parameters('servicebus_1_Connection_Name')]",
"location": "westeurope",
"properties": {
"api": {
"id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', 'westeurope', '/managedApis/', 'servicebus')]"
},
"displayName": "[parameters('servicebus_1_Connection_DisplayName')]",
"parameterValues": {
"connectionString": "[parameters('servicebus_1_connectionString')]"
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句