Azure数据工厂v2链接服务构建



我正在使用以下JSON模板

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

从URLhttps://learn.microsoft.com/en-us/azure/data-factory/tutorial-hybrid-copy-powershell#get-存储帐户名称和帐户密钥以创建Azure存储链接服务。与其对帐户名称和密钥进行硬编码,不如将其作为参数传递给PowerShell cmdlet

Set-AzureRmDataFactoryV2LinkedService

我正在尝试构建一个PowerShell脚本来自动部署

感谢

我不确定这是否是您想要的,但您想动态提取azure帐户名和帐户密钥吗?

您是否在许多环境中实现了自动化?在我的事业中,我使用azure DevOps和azure Key Vault来传递每个环境(开发、测试和生产(所需的参数,有一个非常好的分步指南,可以自动部署ADF

https://learn.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 Data Lake Store,您可以指定类似于以下的内容

{
"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"(,并且在Azure DevOps中,您可以为每个目标环境指定服务PRincipal ID、租户、订阅ID等的参数值,同时你也可以从AKV(Azure密钥库(中提取,我知道你的用例是面向Powershell的,但如果是这样的话,你仍然需要某种配置文件来提取这些值,当然,版本控制配置文件不是一个好主意,所以它们必须存在于某个地方,我强烈建议使用AKV/Azure Devops方法。希望这能帮助

最新更新