数据工厂,在链接服务之间传递参数

时间:2021-01-15 10:52:07

标签: sftp azure-data-factory azure-keyvault

我想在链接的服务之间传递参数。我在文档中没有找到任何相关内容。

我的第一个链接服务是参数化密钥库。

{
    "name": "ParametrizedAzureKeyVault",
    "properties": {
        "type": "KeyvaultName",
        "typeProperties": {
            "baseUrl": "https://@{linkedService().KeyvaultName}.vault.azure.net/"
        },
        "parameters": {
            "KeyvaultName": {
                "type": "String"
            }
        }
    }
}

我的第二个链接服务是 sftp 连接(我知道这里只是缺少主机、端口、密码和用户)。你可以看到我添加了这个“子参数”我发明的。它不存在,显然不起作用。 只是添加它来解释我的目标。

{
    "properties": {
        "parameters": {
            "KeyvaultName": {
                "type": "string",
                "defaultValue": "defaultValue"
            },
        "type": "Sftp",
        "typeProperties": {
            "host": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "ParametrizedAzureKeyVault",
                    "type": "LinkedServiceReference",
                "subparameters":"@{linkedService().KeyvaultName}"
                },
                "secretName": "secretServer"
            },
            "skipHostKeyValidation": true
        },
        "annotations": []
    }
}

这个想法是将我的密钥库作为参数传递: enter image description here

我看到密钥库是从 sftp 链接服务调用的。但是我如何在那里添加一个参数以便我可以使用参数化的keyvault?这可能吗? 否则,任何建议或观察将不胜感激。提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以按照以下链接中的说明参数化 LS: Parameterize Self hosted integration runtime in ADF ARM Template

enter image description here

w.r.t SFTP :

{
    "properties": {
        "type": "Sftp",
        "annotations": [],
        "parameters": {
            "Host": {
                "type": "string",
                "defaultValue": ""
            },
            "Port": {
                "type": "string",
                "defaultValue": ""
            },
            "UserNm": {
                "type": "string",
                "defaultValue": ""
            },
            "SecretNm": {
                "type": "string",
                "defaultValue": ""
            }
        },
        "typeProperties": {
            "host": "@linkedService().Host",
            "port": "@linkedService().Port",
            "skipHostKeyValidation": true,
            "authenticationType": "Basic",
            "userName": "@linkedService().UserNm",
            "password": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "LS_AzureKeyvault_AEAP_Core",
                    "type": "LinkedServiceReference"
                },
                "secretName": "@linkedService().SecretNm"
            }
        },
        "connectVia": {
            "referenceName": "IR-Ava",
            "type": "IntegrationRuntimeReference"
        }
    }
}

此部分在链接服务中的动态内容下。

enter image description here