Flogue opened a new issue, #26754:
URL: https://github.com/apache/airflow/issues/26754
### Apache Airflow Provider(s)
amazon
### Versions of Apache Airflow Providers
Providers included in apache/airflow:2.4.0 docker image:
```
apache-airflow==2.4.0
apache-airflow-providers-amazon==5.1.0
apache-airflow-providers-celery==3.0.0
apache-airflow-providers-cncf-kubernetes==4.3.0
apache-airflow-providers-common-sql==1.2.0
apache-airflow-providers-docker==3.1.0
apache-airflow-providers-elasticsearch==4.2.0
apache-airflow-providers-ftp==3.1.0
apache-airflow-providers-google==8.3.0
apache-airflow-providers-grpc==3.0.0
apache-airflow-providers-hashicorp==3.1.0
apache-airflow-providers-http==4.0.0
apache-airflow-providers-imap==3.0.0
apache-airflow-providers-microsoft-azure==4.2.0
apache-airflow-providers-mysql==3.2.0
apache-airflow-providers-odbc==3.1.1
apache-airflow-providers-postgres==5.2.1
apache-airflow-providers-redis==3.0.0
apache-airflow-providers-sendgrid==3.0.0
apache-airflow-providers-sftp==4.0.0
apache-airflow-providers-slack==5.1.0
apache-airflow-providers-sqlite==3.2.1
apache-airflow-providers-ssh==3.1.0
```
### Apache Airflow version
2.4
### Operating System
AWS Fargate
### Deployment
Docker-Compose
### Deployment details
We have configure the alternative secrets backend to use AWS SMP:
```
[secrets]
backend =
airflow.providers.amazon.aws.secrets.systems_manager.SystemsManagerParameterStoreBackend
backend_kwargs = {"config_prefix": "/airflow2/config", "connections_prefix":
"/airflow2/connections", "variables_prefix": "/airflow2/variables"}
```
### What happened
```
All processes fail with:
`Traceback (most recent call last):
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/secrets/systems_manager.py",
line 178, in _get_secret
response = self.client.get_parameter(Name=ssm_path, WithDecryption=True)
File
"/home/airflow/.local/lib/python3.7/site-packages/cached_property.py", line 36,
in __get__
value = obj.__dict__[self.func.__name__] = self.func(obj)
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/secrets/systems_manager.py",
line 98, in client
from airflow.providers.amazon.aws.hooks.base_aws import SessionFactory
ImportError: cannot import name 'SessionFactory' from
'airflow.providers.amazon.aws.hooks.base_aws'
(/home/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/hooks/base_aws.py)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/configuration.py",
line 122, in _get_config_value_from_secret_backend
return secrets_client.get_config(config_key)
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/secrets/systems_manager.py",
line 167, in get_config
return self._get_secret(self.config_prefix, key)
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/secrets/systems_manager.py",
line 180, in _get_secret
except self.client.exceptions.ParameterNotFound:
File
"/home/airflow/.local/lib/python3.7/site-packages/cached_property.py", line 36,
in __get__
value = obj.__dict__[self.func.__name__] = self.func(obj)
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/secrets/systems_manager.py",
line 98, in client
from airflow.providers.amazon.aws.hooks.base_aws import SessionFactory
ImportError: cannot import name 'SessionFactory' from
'airflow.providers.amazon.aws.hooks.base_aws'
(/home/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/hooks/base_aws.py)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/secrets/systems_manager.py",
line 178, in _get_secret
response = self.client.get_parameter(Name=ssm_path, WithDecryption=True)
File
"/home/airflow/.local/lib/python3.7/site-packages/cached_property.py", line 36,
in __get__
value = obj.__dict__[self.func.__name__] = self.func(obj)
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/secrets/systems_manager.py",
line 98, in client
from airflow.providers.amazon.aws.hooks.base_aws import SessionFactory
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/hooks/base_aws.py",
line 49, in <module>
from airflow.models.connection import Connection
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/models/connection.py",
line 32, in <module>
from airflow.models.base import ID_LEN, Base
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/models/base.py", line
76, in <module>
COLLATION_ARGS = get_id_collation_args()
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/models/base.py", line
70, in get_id_collation_args
conn = conf.get('database', 'sql_alchemy_conn', fallback='')
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/configuration.py",
line 557, in get
option = self._get_option_from_secrets(deprecated_key,
deprecated_section, key, section)
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/configuration.py",
line 577, in _get_option_from_secrets
option = self._get_secret_option(section, key)
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/configuration.py",
line 502, in _get_secret_option
return _get_config_value_from_secret_backend(secrets_path)
File
"/home/airflow/.local/lib/python3.7/site-packages/airflow/configuration.py",
line 125, in _get_config_value_from_secret_backend
'Cannot retrieve config from alternative secrets backend. '
airflow.exceptions.AirflowConfigException: Cannot retrieve config from
alternative secrets backend. Make sure it is configured properly and that the
Backend is accessible.
cannot import name 'SessionFactory' from
'airflow.providers.amazon.aws.hooks.base_aws'
(/home/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/hooks/base_aws.py)
```
`
### What you think should happen instead
We are trying to import 'SessionFactory' from
'airflow.providers.amazon.aws.hooks.base_aws' but only BaseSessionFactory is
defined in there.
### How to reproduce
I assume anyone that sets up the parameter store as backend and try to use
the docker image (FROM apache/airflow:2.4.0) will run into this issue.
### Anything else
_No response_
### Are you willing to submit PR?
- [ ] Yes I am willing to submit a PR!
### Code of Conduct
- [X] I agree to follow this project's [Code of
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]