Есть ли хороший способ поделиться конфигурацией между приложениями в Azure?

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

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

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

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

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

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

Вы рассматривали хранилище лазурных ключей?

Imran Arshad 26.03.2019 02:43

@ImranArshad Это неплохой план. Мы уже используем его для секретов.

Tom Wright 26.03.2019 02:45

Также есть новая служба конфигурации приложений :) docs.microsoft.com/en-us/azure/azure-app-configuration/overv‌​iew

juunas 26.03.2019 07:57

@juunas Если вы расширите это до ответа, это может быть претендент

Tom Wright 26.03.2019 10:48
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
2
4
622
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

Ответ принят как подходящий

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

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

Обратите внимание, что он не предназначен для секретов, для этого предназначен Key Vault.

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

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

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

Другие вопросы по теме