Очень скоро у меня есть 2 вопроса:

  1. как мы можем setup logic app variable value at realease time (для пример)...
  2. Или как приложение логики может читать значения из файла настроек?

My actual environment:

У меня есть 2 azure "environments", другими словами 2 azure resource groups , каждый из которых содержит идентичные ресурсы и конфигурации.

Azure
|
| __Dev группа ресурсов: приложение логики + приложение API + .... другие ресурсы
Группа ресурсов Prod: приложение Prod Logic + Prod API App + .... другие ресурсы Prod

Внутри моих логических приложений у меня есть шаги вызова конечной точки http.

here

На самом деле оба приложения логики (приложение prod logic и приложение dev logic) вызывают конечные точки приложения dev api (то же самое приложение api в среде dev), потому что моя проблема в том, что я не смог найти способ чтобы преобразовать значение URL-адреса внутри логического приложения http-вызовов .

То, что я пытаюсь сделать, - это изменить базовое значение url, подчеркнутое на изображении выше, соответствующим URL-адресом приложения для каждой среды (dev и prod), как показано ниже:

URL-адрес приложения dev api: https: // pwfotcapiapp

URL-адрес приложения Prod api: https: // pwfprodotwapiapp...

Я попытался настроить базовый URL-адрес приложения api в переменной appsettings.json и преобразовать его во время развертывания. Это было нормально, но я не мог установить базовое значение URL, потому что не мог найти способ чтения переменных appsettings.json из логических приложений.

У меня есть конвейер Ci / Cd, который создает или обновляет адекватные ресурсы в каждой группе ресурсов и успешно выполняет преобразование переменных:

ci cd

Итак, другими словами, у меня есть:

2 среды, 2 веб-приложения (API-приложения), 2 логических приложения

==> Я хочу иметь возможность настраивать значения URL-адресов для HTTP-вызовов каждого приложения логики, чтобы указывать на другое веб-приложение (приложение api) во время выпуска или найти способ считывать значения параметров приложения из приложения логики.

Любой вклад будет оценен

РЕДАКТИРОВАТЬ:

Я использую Visual Studio для разработки приложения логики

Триггером для моей сборки является фиксация, затем drop (удаление артефакта сборки) является триггером для конвейера развертывания.

0
Haithem KAROUI 18 Окт 2019 в 13:30

2 ответа

Лучший ответ

Я только что проверил приложение логики с параметрами шаблона.

Я использовал пример по умолчанию для разработка логического приложения в визуальной студии.

Я параметризовал как базовый URL для RSS-канала, так и для значения mail. Шаги следующие:

  1. Объявите параметр шаблона. Значение по умолчанию не является обязательным. Step1
  2. Замените строки внутри полей, заменив их вызовом параметра. Step2
  3. Затем вы также можете переопределить эти параметры в файле параметров. Step3
  4. Вы также можете переопределить значение параметра в конвейере CD введите описание изображения здесь

Приоритет значений: “LogicApp.json” < “LogicApp.parameters.json” < “override in CD pipeline”.

В этом примере вы можете видеть, что я использовал "google.com" в качестве базового URL по умолчанию. Но я переопределяю это в файлах параметров. Также у меня есть три разных адреса электронной почты в разных файлах. Таким образом, адрес электронной почты был использован, как представлено в конвейере CD, переопределяя как объявление по умолчанию, так и файл параметров.

Но базовый URL используется, как указано в файле параметров. Поэтому, если у вас есть другой этап / задача для развертывания приложения логики в среде разработки и производства, вы можете использовать любой из этих способов.

0
Haithem KAROUI 22 Окт 2019 в 11:52

Мы можем прочитать appsettings.json из приложения логики, выполнив следующие шаги:

  1. Я устанавливаю значение baseurl в appsetting.json и создаю голубой хранилище BLOB-объектов, а затем загружаю appsetting.json в BLOB-объект.

enter image description here

enter image description here

  1. Используйте действие «Получить содержимое BLOB-объекта» в приложении логики, чтобы получить содержимое файла appsetting.json. введите описание изображения здесь

  2. Затем инициализируйте переменную с именем «jsonString» и установите значение с помощью выражения, показанного на снимке экрана ниже. введите описание изображения здесь

  3. После этого мы можем использовать действие «Parse JSON» для анализа jsonString, который мы получили выше. введите описание изображения здесь Мы можем нажать «Использовать образец полезной нагрузки для создания схемы» на снимке экрана выше и ввести в него содержимое appsetting.json для создания схемы.

  4. Затем мы можем инициализировать другую переменную с именем «baseurl» и установить значение с помощью baseurl get из «Parse JSON». введите описание изображения здесь

  5. Теперь мы можем использовать baseurl выражением, показанным на скриншоте ниже, в вашем действии «HTTP». введите описание изображения здесь

Надеюсь, это будет полезно для вашей проблемы ~

0
Hury Shen 22 Окт 2019 в 02:30