По соображениям безопасности я хочу добавить некоторые зашифрованные переменные окружения в мою лямбда-функцию, которая включает в себя pandas, numpy, psycopg2 и sklearn в качестве дополнительных пакетов python.
Функция работает гладко, но когда я ввожу следующий код для расшифровки переменных, она перестает работать:
import os
from base64 import b64decode
keys = {}
def get_variables(variable):
encrypted = os.environ[f'{variable}']
decrypted = boto3.client('kms').decrypt(CiphertextBlob=b64decode(encrypted))['Plaintext']
keys[variable] = str(decrypted, 'utf-8')
for variable in ['dbname','port','user','password','host']:
get_variables(variable)
def lambda_handler(event,context):
code
result = keys['password']
return result
В частности, часть, которая ломает все, и есть эта строка
result = keys['password']
Код правильный, потому что я проверил его в другой лямбда-функции (плюс он основан на примере, предоставленном самой лямбдой), и я получаю следующую ошибку:
/var/task/sklearn/externals/joblib/_multiprocessing_helpers.py:38: UserWarning: [Errno 38] Function not implemented. joblib will operate in serial mode
warnings.warn('%s. joblib will operate in serial mode' % (e,))
Понятия не имею, что делать для его решения.