#python #airflow
Вопрос:
Попытка повернуть мой ключ fernet в Apache Airflow. В документации перечислены три шага, которые я должен предпринять для выполнения этой задачи:
1. Set fernet_key to new_fernet_key,old_fernet_key
2. Run airflow rotate-fernet-key to re-encrypt existing credentials with the new fernet key
3. Set fernet_key to new_fernet_key
Выполнив эти действия, я установил fernet_key
в своем поле airflow.cfg следующее значение:
fernet_key = PgYclMAx5ovWHa3MEE2Qt4oIOPoB70U64frFnwBzTtc=,d3itG077fUgVXkTfLd2EEA6y7ShulLjGRYXwgEq78j4=
Примечание: Я подтвердил d3itG077fUgVXkTfLd2EEA6y7ShulLjGRYXwgEq78j4=
, что это старый ключ. Я также убедился, что использовал библиотеку fernet для создания нового ключа, поэтому они должны быть правильно сформированы.
Когда я пытаюсь запустить airflow rotate-fernet-key
, я получаю следующую ошибку:
Traceback (most recent call last):
File "/usr/local/bin/airflow", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.8/site-packages/airflow/__main__.py", line 40, in main
args.func(args)
File "/usr/local/lib/python3.8/site-packages/airflow/cli/cli_parser.py", line 48, in command
return func(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/airflow/utils/cli.py", line 89, in wrapper
return f(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/airflow/cli/commands/rotate_fernet_key_command.py", line 28, in rotate_fernet_key
conn.rotate_fernet_key()
File "/usr/local/lib/python3.8/site-packages/airflow/models/connection.py", line 265, in rotate_fernet_key
self._extra = fernet.rotate(self._extra.encode('utf-8')).decode()
File "/usr/local/lib/python3.8/site-packages/cryptography/fernet.py", line 183, in rotate
raise InvalidToken
cryptography.fernet.InvalidToken
Версия воздушного потока: 2.0.2
Версия Python: 3.8.5
Есть какие-нибудь идеи о том, почему это может произойти?
Комментарии:
1. Вы перезапустили все свои службы после поворота ключа fernet?
2. @kaxil К сожалению, я вообще не могу вращаться.
rotate-fernet-key
Команда завершается сInvalidToken
ошибкой3. Это
airflow connections list
тоже дает вам ошибку>4. @kaxil Нет. Я считаю, что исходный ключ fernet действителен, поэтому все команды соединений и переменных работают правильно.