Python에서 parameter store 사용

소개



이전에는 작업에 사용한 Parameter Store(AWS Systems Manager)를 다시 사용하게 되었기 때문에 기억했습니다.

이번에도 Poetry + Docker을 개발 환경으로하고 있습니다.
소스는 Github에 올려져 있습니다.

Parameter Store 설정


/aaa 로 시작하도록 작성


파일



main과 라이브러리로 파일을 나눕니다.

main.py

from src.ssm_manager import SsmManager

print("start")

ssm_manager = SsmManager(region_name="ap-northeast-1")
ssm_manager.load_parameter(base_ssm_path="/aaa")
print(ssm_manager.parameters)

ssm_manager.py
from typing import List, Dict

import boto3


class SsmManager:
    def __init__(self, region_name: str):
        self.__ssm = boto3.client('ssm', region_name=region_name)
        self.__parameters = []
        self.__base_ssm_path = None

    @property
    def parameters(self) -> List[Dict[str, any]]:
        return [{
            'name': item['Name'].replace(f'{self.__base_ssm_path}/', ''),
            'value': item['Value']
        } for item in self.__parameters]

    def load_parameter(self, base_ssm_path: str) -> None:
        self.__base_ssm_path = base_ssm_path
        result = []
        next_token = None
        while True:
            dict_parameter = {
                'Path': base_ssm_path,
                'Recursive': True,
                'WithDecryption': True,
            }
            if next_token is not None:
                dict_parameter['NextToken'] = next_token
            response = self.__ssm.get_parameters_by_path(**dict_parameter)
            parameters = response['Parameters']
            result.extend(parameters)
            if 'NextToken' not in response:
                break
            next_token = response['NextToken']
        self.__parameters = result

끝에



이제 환경 변수 등에 넣었던 RDS의 암호 등을 저장할 수 있습니다.

좋은 웹페이지 즐겨찾기