Azure数据工厂ARM模板

时间:2018-08-14 17:56:59

标签: azure azure-resource-manager arm-template azure-data-factory-2

我正在创建一个ARM模板来部署数据工厂。除了自托管的Integration Runtime之外,其他一切都工作正常。我有一个本地SQL Server和另一个本地Oracle DB。两者都使用自托管的集成运行时进行连接。部署ARM模板时出现以下错误。

2018-08-13T14:11:34.9569812Z ## [错误]至少一项资源部署操作失败。请列出部署操作以获取详细信息。有关用法的详细信息,请参见https://aka.ms/arm-debug。 2018-08-13T14:11:34.9582896Z ## [错误]详细信息: 2018-08-13T14:11:34.9587327Z ## [error] BadRequest:{   “ code”:“ BadRequest”,   “ message”:“未能加密子资源有效载荷{\ r \ n \” Id \“:\” / subscriptions / bf2c5c07-2536-497d-9b87-7f0a0fa5a2b3 / resourceGroups / ResourceGroup_Name / providers / Microsoft.DataFactory / factories / DataFactoryName / linkedservices / Oracle_Linked_ServiceName \“,\ r \ n \” Name \“:\” Oracle_Linked_ServiceName \“,\ r \ n \” Properties \“:{\ r \ n \” type \“:\” Oracle \“ ,\ r \ n \“ typeProperties \”:{\ r \ n \“ type \”:\“ ******************** \”,\ r \ n \“ connectionString \”:\“ ******************** \” \ r \ n},\ r \ n \“ connectVia \”:{\ r \ n \“ referenceName \”:\“ IntegrationRuntime-Name \”,\ r \ n \“ type \”:\“ IntegrationRuntimeReference \” \ r \ n} \ r \ n} \ r \ n},错误是:无法在自托管IR'IntegrationRuntime-Name'上加密链接的服务凭据,原因是:未找到,错误消息是:没有在线实例。   “目标”:“ / subscriptions / bf2c5c07-2536-497d-9b87-7f0a0fa5a2b3 / resourceGroups / ResourceGroup_Name / providers / Microsoft.DataFactory / factories / DataFactoryName / linkedservices / Oracle_Linked_ServiceName”,   “详细信息”:null,   “错误”:空 }未定义 2018-08-13T14:11:34.9599952Z ## [error] BadRequest:{   “ code”:“ BadRequest”,   “ message”:“未能加密子资源有效载荷{\ r \ n \” Id \“:\” / subscriptions / bf2c5c07-2536-497d-9b87-7f0a0fa5a2b3 / resourceGroups / ResourceGroup_Name / providers / Microsoft.DataFactory / factories / DataFactoryName / linkedservices / Source_OnPremSQL \“,\ r \ n \” Name \“:\” Source_OnPremSQL \“,\ r \ n \” Properties \“:{\ r \ n \” type \“:\” SqlServer \“ ,\ r \ n \“ typeProperties \”:{\ r \ n \“ connectionString \”:\“ ******************** \”,\ r \ n \“用户名\”:\“ ******************** \”,\ r \ n \“密码\”:\“ ****** ************** \“ \ r \ n},\ r \ n \” connectVia \“:{\ r \ n \” referenceName \“:\” IntegrationRuntime-Name \“ ,\ r \ n \“ type \”:\“ IntegrationRuntimeReference \” \ r \ n} \ r \ n} \ r \ n},错误是:无法在自托管IR'IntegrationRuntime-Name上加密加密的链接服务凭据',原因是:NotFound,错误消息是:No online instance ..“,   “目标”:“ / subscriptions / bf2c5c07-2536-497d-9b87-7f0a0fa5a2b3 / resourceGroups / ResourceGroup_Name / providers / Microsoft.DataFactory / factories / DataFactoryName / linkedservices / Source_OnPremSQL”,   “详细信息”:null,   “错误”:空 }未定义 2018-08-13T14:11:34.9602482Z ## [错误]创建或更新模板部署时任务失败。 2018-08-13T14:11:34.9611870Z ## [section]完成:DataFactoryDe​​ployment

2 个答案:

答案 0 :(得分:0)

确保您的自托管IR处于联机状态。需要对您的凭据进行加密。

答案 1 :(得分:0)

如果使用连接字符串和密码进行连接,则ARM模板将具有它们,因此您需要根据每个连接器的期望值再次填充连接字符串。

我遇到了同样的问题,并通过使用this填充oracle连接字符串和使用this填充Azure SQL连接器(使用JSON值键作为模板)来解决了

要永久摆脱此问题,我建议您使用Azure Key Vault存储凭据,因此,当需要进行新的导入时,ARM模板将携带密钥,但不保留其值。

PS:您需要授权Data Factory使其能够访问存储的凭据。