Код: Выделить всё
class DummyConfig(BaseSettings):
PARAM1: str
PARAM2: str
API_KEY: str
model_config = SettingsConfigDict(
env_prefix="dummy_", env_file=".env", env_file_encoding="utf-8"
)
@classmethod
def customise_sources(
cls,
init_settings,
env_settings,
file_secret_settings):
return (
init_settings,
env_settings,
get_aws_prams_store,
file_secret_settings,
)
def get_aws_prams_store(param_name: str = "/dev/dummy-service/API_KEY"):
session = boto3.session.Session(
profile_name='my-account', region_name="us-east-1")
client = session.client("ssm")
response = client.get_parameters(
Names=[param_name],
WithDecryption=True
)
params = {param["Name"].split("/")[-1]: param["Value"]
for param in response["Parameters"]}
return params
Код: Выделить всё
dummy_PARAM1=value1
dummy_PARAM2=value1
Код: Выделить всё
config= DummyConfig()
Код: Выделить всё
print("PARAM1", config.PARAM1) #value1
print("PARAM2", config.PARAM2) # value2
print("API_KEY", config.API_KEY) # None
Подробнее здесь: https://stackoverflow.com/questions/794 ... s-expected