通过Powershell创建LinkedService时,为什么会删除AzureKeyVaultSecret的密码类型,

时间:2019-02-04 05:42:31

标签: powershell azure-devops azure-data-factory-2

我正在尝试通过powershell命令创建LinkedService

New-AzureRmDataFactoryV2LinkedService -ResourceGroupName rg -DataFactoryName df -Name n -DefinitionFile n.json 

结果是创建了LinkedService,但是删除了对AzureKeyVaultSecret密码类型的引用,使其无法运行

配置文件n.json是从DataFactory的“代码”标签中提取的,语法如下...

{
"name": "<name>",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
    "type": "Oracle",
    "typeProperties": {
        "connectionString": "host=<host>;port=<port>;serviceName=<serviceName>;user id=<user_id>",
        "password": {
            "type": "AzureKeyVaultSecret",
            "store": {
                "referenceName": "Prod_KeyVault",
                "type": "LinkedServiceReference"
            },
            "secretName": "<secretname>"
        }
    },
    "connectVia": {
        "referenceName": "<runtimename>",
        "type": "IntegrationRuntimeReference"
    }
}

}

创建新的LinkedService时,代码看起来完全一样,只是删除了properties-> typeProperties-> password并需要手动配置-如果可能的话,我会尽力避免这种情况。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果您尝试使用“ Update-Module -Name AzureRm.DataFactoryV2”将您的Powershell更新到最新版本,并且仍然是相同的行为,则可能的根本原因是不支持将密码作为Azure密钥值尚未在Powershell中使用。据我所知,这是最近添加的新功能。因此,将其部署到Powershell可能需要一些时间。

在这种情况下,解决方法是立即使用UI创建链接服务。