MongoDB 连接的参数化链接服务

Parameterized Linked Service for MongoDB Connection

我正在尝试在 Azure 数据工厂中参数化 mongo 数据库连接的链接服务。我已经参考了文档 here。 下面是我试图在链接服务的代码中更新的代码

{
"name": "MongoDB",
"properties": {
    "type": "MongoDbV2",
    "parameters": {
        "LSHeatStackConnection": {
            "type": "String",
            "defaultValue": "mongodb://username:password@1.1.1.4:1800/dbname?authMechanism=SCRAM-SHA-1;authSource=admin"
        }
    },
    "annotations": [],
    "typeProperties": {
        "connectionString": {
            "type": "SecureString",
            "value": "@{linkedService().LSHeatStackConnection}"
        },
        "database": "heatstack"
    },
    "connectVia": {
        "referenceName": "DevIR",
        "type": "IntegrationRuntimeReference"
    }
}
}

但是我在保存上面的代码时遇到了以下错误。

无法发布 ****DB(链接的服务名称)。原因:至少一项资源部署操作失败。请列出部署操作以获取详细信息。请参阅 https://aka.ms/arm-debug 了解使用详情。

当我尝试通过单击铅笔图标 编辑链接服务并单击测试连接时,它显示成功。但是当我单击完成时它会抛出错误并显示无法保存 *****DB。错误:无法加密子资源负载

错误截图如下。

Mongo DB(或 Cosmos DB Mongo API)的连接字符串格式与其他连接器的 key/value 对不同,因此它不适合带有参数的有效负载加密框架,在参数化时需要连接字符串的格式作为键值对;如果在有效负载加密期间在连接字符串中指定任何参数,它将失败。

截至目前,我们无法直接参数化 MongoDB 的连接字符串。我们必须将连接字符串存储在 Key Vault 中,然后将秘密值作为参数传递。这是参数化 mongoDB 链接服务

的唯一方法

如果您有任何与此相关的 feedback/suggestion 请在 Azure Data Factory User voice forum

中分享