У меня есть табличная модель с двумя подключениями к источникам данных. Оба источника данных подключаются к разным серверам (и базам данных) для получения данных для таблиц в модели. В Azure DevOps я создал конвейер выпуска для развертывания файла model.bim на моем сервере анализа Azure с помощью шага «Развертывание табличной базы данных».
На этом этапе вы можете указать «тип источника данных». Поскольку у меня два источника данных, я выбрал «Дополнительно (несколько подключений)». В этом поле в разделе «Дополнительные настройки безопасности источника данных» мне нужно указать учетные данные для каждого источника данных. Если я не сделаю этого и попытаюсь обработать таблицы в модели, я получу ошибку, указывающую, что учетные данные были предоставлены неправильно.
Перед этапом «Развертывание табличной базы данных» у меня в конвейере есть еще две задачи. Один извлекает данные из моего хранилища ключей Azure, а другой представляет собой задачу Azure CLI, которая извлекает сведения о моем подключении к службе. «Развертывание табличной базы данных» — это последний шаг.
Я попробовал следующее в «Расширенных настройках безопасности источника данных»:
[
{
"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)"
}
}
]
Я получаю следующую ошибку:
Передан недопустимый объект, ожидается ':' или '}'.
Все перепробовал, прошил
Решение: я хочу обрабатывать таблицы из разных источников данных. Учетные данные, которые я передаю через конвейер выпуска Azure DevOps, должны быть включены в мое развертывание.
Кто может мне помочь? Было бы очень признательно, так как я застрял на этом уже несколько дней.
Полный YAML последнего шага, как спросил @Kevin Lu-MSFT.
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
Строка JSON кажется допустимой, но имейте в виду, что специальные символы, кавычки и т. д. в $(DS1_PASSWORD)
или $(DS2_PASSWORD)
могут сделать ее недействительной. Это также зависит от того, как вы пытаетесь заменить значения. Как упомянул Кевин, отредактируйте свое сообщение и, если возможно, добавьте соответствующую часть конвейера в формате YAML.
Я предоставил YAML последнего шага. теперь в моем исходном посте
Можете ли вы поделиться более подробной информацией о настройках Release Pipeline? Если вы используете классический конвейер выпуска, вы можете экспортировать определение задачи в формат YAML и поделиться с нами. Это будет полезно для дальнейшего изучения вопроса.