Exemplo n.º 1
0
    def load_secret_settings(self) -> None:
        if self._is_secret_load_required():
            secrets = parameters.get_parameter(self.SECRETS_KEY,
                                               decrypt=True,
                                               transform='json')

            if isinstance(secrets, dict):
                for name in self.secret_fields:
                    value = secrets.get(name)
                    if value:
                        cast_to = type(getattr(self, name))
                        setattr(self, name, cast_to(value))

            self.SECRETS_LOADED_AT = datetime.utcnow().timestamp()
def test_get_parameter(monkeypatch, mock_name, mock_value):
    """
    Test get_parameter()
    """

    class TestProvider(BaseProvider):
        def _get(self, name: str, **kwargs) -> str:
            assert name == mock_name
            return mock_value

        def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
            raise NotImplementedError()

    monkeypatch.setitem(parameters.base.DEFAULT_PROVIDERS, "ssm", TestProvider())

    value = parameters.get_parameter(mock_name)

    assert value == mock_value
def test_get_parameter_new(monkeypatch, mock_name, mock_value):
    """
    Test get_parameter() without a default provider
    """
    class TestProvider(BaseProvider):
        def _get(self, name: str, **kwargs) -> str:
            assert name == mock_name
            return mock_value

        def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
            raise NotImplementedError()

    monkeypatch.setattr(parameters.ssm, "DEFAULT_PROVIDERS", {})
    monkeypatch.setattr(parameters.ssm, "SSMProvider", TestProvider)

    value = parameters.get_parameter(mock_name)

    assert value == mock_value
Exemplo n.º 4
0
Arquivo: app.py Projeto: P00L/aws-sam
import json
from ssm_cache import SSMParameter
from aws_lambda_powertools.utilities import parameters
import logging
import os

logger = logging.getLogger(__name__)
logger.setLevel(os.environ.get("LOG_LEVEL"))

my_ssm_parameter_ssm_cache = SSMParameter("MyParameter").value
my_ssm_parameter_powertools = parameters.get_parameter("/MyParameter")


def lambda_handler(event, context):
    # Environment section of SAM template
    logger.info(f"ENV = {os.environ.get('ENV')}")
    logger.info(
        f"MY_SSM_PARAMETER_RESOLVE = {os.environ.get('MY_SSM_PARAMETER_RESOLVE')}"
    )
    logger.info(f"MY_SSM_PARAMETER = {os.environ.get('MY_SSM_PARAMETER')}")
    logger.info(f"my_ssm_parameter_ssm_cache = {my_ssm_parameter_ssm_cache}")
    logger.info(f"my_ssm_parameter_powertools = {my_ssm_parameter_powertools}")
    logger.info(f"MY_SECRET = {os.environ.get('MY_SECRET')}")
    logger.info(f"LOG_LEVEL = {os.environ.get('LOG_LEVEL')}")
    logger.info(f"LOG_LEVEL_MAPPING = {os.environ.get('LOG_LEVEL_MAPPING')}")
    logger.info(
        f"LOG_LEVEL_CONDITION = {os.environ.get('LOG_LEVEL_CONDITION')}")

    # Change LOG_LEVEL environment variable to test log level behaviour
    logger.info("this is an INFO message")
    logger.debug("this is a DEBUG message")