Verwenden Sie den Parameterspeicher in Python

Einführung

Ich erinnerte mich, dass ich den Parameterspeicher (AWS Systems Manager) verwenden musste, den ich bei der Arbeit wieder verwendete.

Auch dieses Mal wird Poetry + Docker als Entwicklungsumgebung verwendet. Die Quelle finden Sie unter Github.

Stellen Sie den Parameterspeicher ein

Erstellt, um mit / aaa zu beginnen スクリーンショット 2020-10-19 16.58.17.png

Datei

Die Dateien sind als Haupt- und Bibliothek getrennt.

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

Am Ende

Jetzt können Sie das RDS-Passwort usw. speichern, das Sie in die Umgebungsvariablen usw. eingegeben haben.

Recommended Posts

Verwenden Sie den Parameterspeicher in Python
Verwenden Sie config.ini mit Python
Verwenden Sie Datumsangaben in Python
Verwenden Sie Valgrind mit Python
Verwenden Sie den Profiler in Python
Mal sehen, wie def in Python verwendet wird
Verwenden Sie den let-Ausdruck in Python
Verwenden Sie das Messprotokoll mit Python
Verwenden Sie die Rückruffunktion in Python
Verwenden Sie den HTTP-Cache in Python
Verwenden Sie in Python ein Diktat mit Listenschlüssel
Verwenden Sie Random Forest mit Python
Verwenden Sie Spyder von Python IDE
Übertragen Sie Parameterwerte in Python
Verwenden Sie Stoff wie in Python (Stoff3)
Optimierung der FX-Systolenparameter in Python
Implementierung der HMM-Parameterschätzung in Python
Verwendung von SQLite in Python
Verwenden Sie rospy mit virtualenv in Python3
Wie man MySQL mit Python benutzt
Verwenden Sie Python in pyenv mit NeoVim
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Verwenden Sie OpenCV mit Python 3 in Window
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Verwenden Sie einfach Ihre eigenen Funktionen in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Einfache Möglichkeit, Wikipedia mit Python zu verwenden
Plink in Python
Konstante in Python
Verwenden Sie \ d nicht in regulären Python 3-Ausdrücken!
FizzBuzz in Python
Verwendung von __slots__ in der Python-Klasse
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
Verwenden Sie pathlib in Maya (Python2.7), um sich auf das kommende Python3.7 vorzubereiten