AWS Lambda ломает код для расшифровки переменных среды - PullRequest
1 голос
/ 14 мая 2019

По соображениям безопасности я хочу добавить некоторые зашифрованные переменные окружения в мою лямбда-функцию, которая включает в себя 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,))

Понятия не имею, что делать для его решения.

...