Azure DevOps部署AAS模型时多数据源凭证配置报错求助
问题:Azure DevOps发布Tabular模型时多数据源凭证配置报错
我有一个包含两个数据源连接的Tabular模型,两个数据源分别连接不同服务器及数据库以获取模型表数据。我在Azure DevOps中创建了发布管道,通过Tabular Database Deployment步骤将model.bim文件部署到Azure Analysis Server。
因为存在两个数据源,我在该步骤中选择了Advanced (multiple connections)类型,必须在Advanced datasource security settings中为每个数据源提供凭证,否则处理模型表时会出现凭证未正确提供的错误。
在该步骤之前,我已配置两个前置任务:一个从Azure Key Vault获取数据,另一个通过Azure CLI任务获取Service Connection详情,Tabular Database Deployment是最终部署步骤。
我在Advanced datasource security settings中尝试了以下JSON配置:
[ { "type": "structured", "name": "TEST1", "connectionDetails": { "protocol": "tds", "address": { "server": "room1.net", "database": "Test_db1" }, "authentication": null, "query": null }, "credential": { "AuthenticationKind": "UsernamePassword", "kind": "SQL", "Username": "bla1", "EncryptConnection": true, "Password": "$(DS1_PASSWORD)" } }, { "type": "structured", "name": "TEST2", "connectionDetails": { "protocol": "tds", "address": { "server": "room2.net", "database": "Test_db2" }, "authentication": null, "query": null }, "credential": { "AuthenticationKind": "UsernamePassword", "kind": "SQL", "Username": "bla2", "EncryptConnection": true, "Password": "$(DS2_PASSWORD)" } } ]
但部署时出现以下错误:
Invalid object passed in, ':' or '}' expected.
我尝试了多种方法仍无法解决,无法将存储在Azure Key Vault中的凭证变量传递到部署配置里。我的需求是能够正常处理不同数据源的表,确保Azure DevOps发布管道传递的凭证被正确包含在部署过程中。
附最终部署步骤的完整YAML:
steps: - task: liprec.vsts-release-aas.deploy-aas-db.deploy-aas-db@1 displayName: 'blabla1' inputs: connectedServiceNameSelector: connectedServiceNameARM connectedServiceNameARM: 'ppppp' aasServer: 'pppppp.net' databaseName: 'test11_tabular' loginType: spn tenantId: '$(tenantId)' appId: '$(servicePrincipalId)' appKey: '$(servicePrincipalKey)' pathToModel: '$(System.DefaultWorkingDirectory)/aa/Model/test11_Tabular/bin/Model.asdatabase' partitionDeployment: deploypartitions roleDeployment: deployrolesandmembers connectionType: advanced datasources: | [ { "type": "structured", "name": "TEST1", "connectionDetails": { "protocol": "tds", "address": { "server": "room1.net", "database": "Test_db1" }, "authentication": null, "query": null }, "credential": { "AuthenticationKind": "UsernamePassword", "kind": "SQL", "Username": "bla1", "EncryptConnection": true, "Password": "$(DS1_PASSWORD)" } }, { "type": "structured", "name": "TEST2", "connectionDetails": { "protocol": "tds", "address": { "server": "room2.net", "database": "Test_db2" }, "authentication": null, "query": null }, "credential": { "AuthenticationKind": "UsernamePassword", "kind": "SQL", "Username": "bla2", "EncryptConnection": true, "Password": "$(DS2_PASSWORD)" } } ] overwrite: false
内容的提问来源于stack exchange,提问作者Abdio68
相关产品推荐
相关产品推荐

