azure-storage - Azure datafactory v2 Linkedservice 构建
问题描述
我正在使用以下 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 cmdlet
Set-AzureRmDataFactoryV2LinkedService
我正在尝试构建一个 PowerShell 脚本来自动化部署
谢谢
解决方案
我不确定这是否是您想要的,但您是否要动态提取 azure 帐户名称和帐户密钥?
您是否在许多环境中自动执行此操作?在我的事业中,我使用 azure DevOps 和 Azure Key Vault 来传递每个环境(开发、测试和生产)所需的参数,这里有一个非常好的分步指南,可以自动部署 ADF
https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment
您不必对密钥、密码等进行硬编码,但必须在 Azure Key Vault 中指定它们并将其链接到 ADF
因此,例如对于 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 Key Vault 中动态提取(使用“type”:“AzureKeyVaultSecret”和密钥名称“adls-webapi-principalKey”),在 Azure DevOps 中,您可以指定参数每个目标环境的服务 PRincipal ID 、租户、订阅 ID 等的值,同时您也可以从 AKV(Azure Key Vault)中提取这些值,我知道您的用例是面向 Powershell 的,但如果是这种情况,您仍然会需要某种配置文件来提取这些值,当然版本控制配置文件不是一个好主意,因此它们必须存在于某个地方,我强烈推荐 AKV/Azure Devops 方法。希望这可以帮助
推荐阅读
- django - 如何在 apiview 中获取访问令牌
- r - 如何检查文件是否在 R 中是 zip 文件?
- python - ground_truth = np.squeeze(np.asarray(true_labels))
- powershell - 如何通过 powershell 和批处理从我的网站下载东西?
- android - Android Studio 设置向导 --> Android 虚拟设备
- php - Laravel 多次设置一个对象与另一个对象的关系
- angular - ngx-datatable 显示行
- oracle - 使用 pl/sql 中的 xmlelement 获取所有关系表数据
- java - 如何查找哪个列表包含特定值
- c# - 在树视图上画线,同时在其中拖动节点