Избегайте чтения всего файла конфигурации в Flask - PullRequest
0 голосов
/ 08 мая 2020

У меня есть файл конфигурации в Flask, и он загружается app.config.from_object('app.config.Development'). Я ожидал, что будет прочитан только класс разработки, но похоже, что app.config.from_object читает все классы в файле конфигурации в моем исследовании. Есть ли способ прочитать только определенный класс конфигурации c? Я прочитал этот пост, и то, что я сказал, кажется правильным. Как импортировать из файла конфигурации в Flask?

class Development(Common):
    AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY = get_ssm_params(
        '/dev/AccessKey',
        '/dev/SecretAccessKey')


class Staging(Common):
    AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY = get_ssm_params(
        '/stg/AccessKey',
        '/stg/SecretAccessKey')


class Production(Common):
    AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY = get_ssm_params(
        '/prd/AccessKey',
        '/prd/SecretAccessKey')

У меня есть такая конфигурация и разные AWS пользователей для каждой среды. Это означает, что я обнаружил исключение AccessDeniedException, когда пользователь development читает классы Staging и Production, поскольку у пользователя development нет разрешения на получение /stg/AccessKey.

1 Ответ

0 голосов
/ 08 мая 2020

Ваше приложение не должно вести себя по-разному на разных этапах, если это вообще возможно (как и во всех жестких правилах, при необходимости есть исключения). Поэтому в идеале у вас должен быть только один класс и структурировать свои настройки так, чтобы они не зависели от этапа - например, удалите префикс dev / stg / prd.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...