Как параметризовать значения в файлах workflow.json и connections.json стандартного проекта приложения azure logic
Следуя этой документации, я создал проект с одним клиентом приложения azure logic с использованием кода Visual Studio . А затем создал рабочий процесс на основе моих требований, он содержит конвейер фабрики данных и отправляет действия сетки.
Рабочий процесс содержит жестко запрограммированные значения в действии создания фабрики данных запуска конвейера.
"Create_a_pipeline_run": {
"inputs": {
"host": {
"connection": {
"referenceName": "azuredatafactory_5"
}
},
"method": "post",
"path": "/subscriptions/@{encodeURIComponent('xxxxxxx-xxxx-xxxx-xxxx-xxxxxx')}/resourcegroups/@{encodeURIComponent('xxxxx')}/providers/Microsoft.DataFactory/factories/@{encodeURIComponent('xxxxxx')}/pipelines/@{encodeURIComponent('xxxxxxx')}/CreateRun",
"queries": {
"x-ms-api-version": "2017-09-01-preview"
}
},
"runAfter": {},
"type": "ApiConnection"
},
И файл выглядит следующим образом:
"managedApiConnections": {
"sendgrid": {
"api": {
"id": "/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/providers/Microsoft.Web/locations/centralus/managedApis/sendgrid"
},
"connection": {
"id": "/subscriptions/xxxxxx-xxxx-xxxx-xxxx-xxxxxxx/resourceGroups/xxxxxxx/providers/Microsoft.Web/connections/sendgrid-3"
},
"connectionRuntimeUrl": "https://xxxxxxxxxx.19.common.logic-centralus.azure-apihub.net/apim/sendgrid/xxxxxxx/",
"authentication": {
"type": "Raw",
"scheme": "Key",
"parameter": "@appsetting('sendgrid-connectionKey')"
}
},
"azuredatafactory_5": {
"api": {
"id": "/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx/providers/Microsoft.Web/locations/centralus/managedApis/azuredatafactory"
},
"authentication": {
"type": "ManagedServiceIdentity"
},
"connection": {
"id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourceGroups/xxxxxxx/providers/Microsoft.Web/connections/azuredatafactory"
},
"connectionRuntimeUrl": "https://xxxxxxxxxx.19.common.logic-centralus.azure-apihub.net/apim/azuredatafactory/xxxxxxx"
}
}
Вышеупомянутые управляемые соединения API относятся к существующим соединениям API из Azure. Но я хочу создать новые управляемые соединения API для каждой среды (это означает параметризацию значений в файле на основе среды).
Может ли кто-нибудь предложить мне, как параметризовать значения в
workflow.json
файлов для каждой среды и параметризуйте значения в
connections.json
файл для каждой среды.
1 ответ
Стандарт приложения логики - это просто своего рода сервис приложения.
workflowApp
. Здесь вы можете активно использовать настройки приложений.
Параметры приложения логики.
В вашей
workflow.json
, вы можете использовать такие параметры:"Create_a_pipeline_run": { "inputs": { "host": { "connection": { "referenceName": "azuredatafactory_5" } }, "method": "post", "path": "/subscriptions/@{encodeURIComponent(parameters('subscription_id'))}/resourcegroups/...", "queries": { "x-ms-api-version": "2017-09-01-preview" } }, "runAfter": {}, "type": "ApiConnection" }
Затем в своем файле укажите следующие настройки приложения:
{ "subscription_id": { "type": "String", "value": "@appsetting('WORKFLOWS_SUBSCRIPTION_ID')" } }
subscription_id
должен быть определен как параметр приложения в службе приложений.Подключения приложений логики. Таким же образом вы можете использовать настройки и параметры приложения для информации о подключении в вашем
connections.json
файл:{ "managedApiConnections": { "sendgrid": { "api": { "id": "/subscriptions/@appsetting('WORKFLOWS_SUBSCRIPTION_ID')/providers/Microsoft.Web/locations/centralus/managedApis/sendgrid" }, ... "authentication": "@parameters('azure_authentication')" } } }
тогда в твоем
parameters.json
файл:{ "authentication": { "type": "object", "value": { "type": "ManagedServiceIdentity" } } ... }
Таким образом, вы можете легко выгрузить все параметры, специфичные для среды, в настройки приложения.