逻辑应用连接器是闭源的,Azure 门户中的"自动化脚本"选项从连接器中删除属性节点的身份验证部分。这是门户在为与 CRM 通信的逻辑应用编写 ARM 模板脚本时提供的内容。
{
"comments": "Generalized from resource: '/subscriptions/<guid>/resourceGroups/<resource group name>/providers/Microsoft.Web/connections/dynamicsCRMconnector'.",
"type": "Microsoft.Web/connections",
"name": "[parameters('connections_dynamicsCRMconnector_name')]",
"apiVersion": "2016-06-01",
"location": "eastus",
"scale": null,
"properties": {
"displayName": "CRMConnection",
"customParameterValues": {},
"api": {
"id": "/subscriptions/<guid>/providers/Microsoft.Web/locations/eastus/managedApis/dynamicscrmonline"
}
},
"dependsOn": []
}
其他连接器(SFTP、存储帐户等(在此处和那里记录了缺少元素节点(MS 没有官方信息,但博客文章和示例代码(,但我找不到 Dynamics 连接器的信息。作为我希望看到的示例,下面介绍如何在 ARM 中使用身份验证值预配置 SFTP 和存储帐户:
{
"type": "Microsoft.Web/connections",
"apiVersion": "2016-06-01",
"name": "[variables('sftp_conn_friendly_name')]",
"location": "[resourceGroup().location]",
"properties": {
"displayName": "SFTP connection",
"parameterValues": {
"hostName": "[variables('sftp_host')]",
"userName": "[variables('sftp_user')]",
"password": "[variables('sftp_pass')]",
"portNumber": "[variables('sftp_port')]",
"giveUpSecurityAndAcceptAnySshHostKey": true,
"disableUploadFilesResumeCapability": false
},
"api": {
"id": "[variables('sftp_conn_managed_id')]"
}
}
},
{
"type": "Microsoft.Web/connections",
"apiVersion": "2016-06-01",
"name": "[variables('storage_conn_friendly_name')]",
"location": "[resourceGroup().location]",
"properties": {
"displayName": "Blob connection",
"parameterValues": {
"accountName": "[variables('storage_account_name')]",
"accessKey": "[listKeys(variables('storage_account_name'),'2015-05-01-preview').key1]"
},
"api": {
"id": "[variables('storage_conn_managed_id')]"
}
}
}
虽然不是对你的问题的直接回答,而是一个更笼统的答案,让你知道如何在这种情况下采取行动。如果它没有记录在任何地方,你唯一的希望就是扭转它(而且它通常有效(。
首先,此连接器是 Azure 中的资源(如你编写的资源(。可以使用任何可用的方式来获取资源属性(https://resource.azure.com、Get-AzureRmResource、REST API、各种 SDK(,并查看其中的值。
另一种解决方法 - 使用门户创建此连接器并使用 fiddler 捕获流量。这样,您将看到创建此类连接器所需的确切 REST 调用,并能够使用 ARM 模板复制它。您可能不知道 ARM 模板基本上是 REST 调用的代理。您正在创建的每个资源都将转换为 REST 调用,并针对相应的资源提供程序执行。