Сборка Azure datafactory v2 Linkedservice - PullRequest
0 голосов
/ 07 декабря 2018

Я использую следующий шаблон JSON

{
     "properties": {
         "type": "AzureStorage",
         "typeProperties": {
             "connectionString": {
                 "type": "SecureString",
                 "value": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>;EndpointSuffix=core.windows.net"
             }
         }
     },
     "name": "AzureStorageLinkedService"
 }

с URL https://docs.microsoft.com/en-us/azure/data-factory/tutorial-hybrid-copy-powershell#get-storage-account-name-and-account-key для создания связанной службы хранилища Azure.Вместо жесткого кодирования имени учетной записи и ключа можно передать его в качестве параметра командлету PowerShell

Set-AzureRmDataFactoryV2LinkedService

Я пытаюсь создать сценарий PowerShell для автоматизации развертывания

Спасибо

1 Ответ

0 голосов
/ 13 декабря 2018

Я не уверен, что это именно то, что вам нужно, но вы хотите динамически извлечь имя учетной записи Azure и ключ учетной записи?

Вы автоматизируете это для многих сред?В связи с тем, что я использую Azure DevOps и Azure Key Vault для передачи необходимых параметров для среды (Dev, Test и Production), есть очень хорошее пошаговое руководство, которое автоматизирует развертывание ADF здесь

https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment

Вам не нужно жестко кодировать ключи, пароли и т. Д., Но вы должны указать их в хранилище ключей Azure и связать это с ADF

https://azure.microsoft.com/en-us/updates/secure-credential-management-using-azure-key-vault-and-data-factory/

Так, например, для хранилища озера данных Azure вы можете указать что-то вроде этого

{
    "name": "linked_service_adls",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://YOURADLSNAME.azuredatalakestore.net/webhdfs/v1",
            "servicePrincipalId": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
            "servicePrincipalKey": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "linked_service_kv_general",
                    "type": "LinkedServiceReference"
                },
                "secretName": "adls-webapi-principalKey"
            },
            "tenant": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
            "subscriptionId": "xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
            "resourceGroupName": "rg-whatever"
        }
    }
}

Где servicePrincipalKey не должен быть жестко запрограммирован и динамически извлекается из вашегоХранилище ключей Azure (с использованием «type»: «AzureKeyVaultSecret» и секретного имени «adls-webapi-PrincipalKey»), а в DevOps Azure можно указать значения параметров для идентификатора PRincipal службы, арендатора, subscriptionID и т. Д. Для каждой целевой среды, котораяв то же время вы можете извлечь также из AKV (хранилище ключей Azure), я знаю, что ваш вариант использования ориентирован на Powershell, но если это такВам все еще понадобится какой-нибудь конфигурационный файл для извлечения этих значений, и, конечно, не очень хорошая идея конфигурировать файлы конфигурации управления версиями, поэтому они должны где-то жить, я настоятельно рекомендую подход AKV / Azure Devops.Надеюсь, это поможет

...