Как использовать параметр для Databricks существующего идентификатора кластера в фабрике данных? - PullRequest
0 голосов
/ 13 июня 2019

В некоторых случаях я работаю на фабрике разработки Azure, где использую сгенерированные шаблоны ARM для развертывания в других средах тестирования / разработки.

Проблема, с которой я сталкиваюсь, заключается в попытке сослаться на существующий идентификатор кластера в связанной службе Azure Databricks. Этот идентификатор кластера передается в разные учетные записи, где кластер не существует. Этот связанный сервис используется в нескольких конвейерах, поэтому я хочу иметь возможность изменить его в одном месте.

Я хочу иметь параметр, который можно переопределить во время конвейера выпуска DevOps Azure для сопоставления с правильным кластером среды. Но поскольку фабрика данных генерирует шаблон ARM, я не могу его контролировать.

Это пример того, как выглядит шаблон руки.

"name": "[concat(parameters('factoryName'), '/my-linked-service')]",
"type": "Microsoft.DataFactory/factories/linkedServices",
"apiVersion": "2018-06-01",
"properties": {
    "description": "Databricks connection",
    "parameters": {
        "test": {
            "type": "string"
        }
    },
    "annotations": [],
    "type": "AzureDatabricks",
    "typeProperties": {
        "domain": "https://australiaeast.azuredatabricks.net",
        "accessToken": {
            "type": "AzureKeyVaultSecret",
            "store": {
                "referenceName": "keyName",
                "type": "LinkedServiceReference"
            },
            "secretName": "secretName"
        },
        "existingClusterId": "1234-56789-abc123"
    }

Связанная служба Databricks

1 Ответ

0 голосов
/ 13 июня 2019

По умолчанию параметризованы только определенные поля.Но вы можете установить шаблон для их настройки.Это не очень красиво - полное руководство здесь: https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment#use-custom-parameters-with-the-resource-manager-template

Для вашего примера у меня есть шаблон, который выглядит следующим образом:

{
    "Microsoft.DataFactory/factories/linkedServices": {
        "*": {
            "properties": {
                "typeProperties": {
                    "existingClusterId": "="
                }
            }
        }
    }
}

Файл должен называться arm-template-параметры-definition.json и помещены в корень вашего репо.

...