首页 > 解决方案 > 为什么通过 powershell 创建 LinkedService 时 AzureKeyVaultSecret 的密码类型会丢失,

问题描述

我正在尝试通过 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 被删除并且需要手动配置 - 如果可能,我会尽量避免。

有什么想法吗?

标签: powershellazure-devopsazure-data-factory-2

解决方案


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

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


推荐阅读