Есть ли хороший способ поделиться настройкой между приложениями в Azure? - PullRequest
1 голос
/ 26 марта 2019

У нас есть большая система, встроенная в приложения Azure. Он состоит из службы приложений для нашего API и нескольких приложений-функций для серверной обработки.

Какой лучший способ разрешить этим приложениям использовать общую конфигурацию?

В настоящее время мы используем шаблоны ARM для настройки переменных среды для каждого приложения, что хорошо для времени развертывания, но нет ничего для синхронизации конфигурации между приложениями.

Вариант использования может представлять собой флаг функции, который управляет работой подсистемы. Мы могли бы хотеть, чтобы этот флаг использовался в API и приложении функций. В настоящее время мы можем вручную войти и установить переменную в каждом из приложений, но было бы проще управлять, если бы мы делали это только в одном месте.

В идеале любое обновление конфигурации должно быть обнаружено Azure и инициировать перезапуск службы, как в настоящее время происходит с собственной реализацией.

Есть ли хороший, готовый способ сделать это? Или я буду кататься самостоятельно с таблицей в базе данных и легкой функцией?

Ответы [ 3 ]

6 голосов
/ 26 марта 2019

Одним из способов будет использование новой службы конфигурации приложения: https://docs.microsoft.com/en-us/azure/azure-app-configuration/overview.

Он предназначен для совместного использования параметров конфигурации между компонентами.

Обратите внимание, что это не для секретов, это то, для чего предназначено хранилище ключей.

1 голос
/ 26 марта 2019

Для этого существует шаблон руководства / дизайна от Microsoft, его можно найти по здесь .

0 голосов
/ 26 марта 2019

Лучшие практики в архитектуре: вы можете использовать шаблон внешнего хранилища конфигурации и использовать Redis Cache для совместного использования конфигурации между несколькими приложениями, как описано здесь: https://docs.microsoft.com/en-us/azure/architecture/patterns/external-configuration-store

Подход заключается в том, что вы можете получить эти данныеиз Appsettings для каждой среды (это может быть автоматизировано в CI / CD конвейере).При первом подключении вы сохраняете данные в RedisCache.

Для конфиденциальных данных: используйте Keyvault для хранения секретов / ключей / сертификатов.

...