-
-
Notifications
You must be signed in to change notification settings - Fork 973
Description
Hello!
Celery now includes built-in support for the ‘credential_provider' redis feature (development version, RC).
- Support credential_provider Redis client option -> PR https://github.com/celery/celery/pull/9879/files
I'm trying to use a credential_provider Redis for the Celery broker, but encountering a TypeError when configuring credential_provider for the broker URL:
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/click/decorators.py", line 34, in new_func
return f(get_current_context(), *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/celery/bin/base.py", line 135, in caller
return f(ctx, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/celery/bin/worker.py", line 359, in worker
worker = app.Worker(
^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/celery/worker/worker.py", line 99, in __init__
self.setup_instance(**self.prepare_args(**kwargs))
File "/usr/local/lib/python3.12/site-packages/celery/worker/worker.py", line 120, in setup_instance
self._conninfo = self.app.connection_for_read()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/celery/app/base.py", line 967, in connection_for_read
return self._connection(url or self.conf.broker_read_url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/celery/app/base.py", line 1026, in _connection
return self.amqp.Connection(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/kombu/connection.py", line 211, in __init__
self._init_params(**params)
TypeError: Connection._init_params() got an unexpected keyword argument 'credential_provider'
I follow the Celery doc https://docs.celeryq.dev/en/main/getting-started/backends-and-brokers/redis.html#configuration
If redis credential provider should be used, the URL needs to be in the following format:
redis://@hostname:port/db_number?credential_provider=mymodule.myfile.myclass
So I added the query param
?credential_provider=
I also need it for results backend so following the doc: https://docs.celeryq.dev/en/main/userguide/configuration.html#redis-backend-credential-provider
I also set -> CELERY_REDIS_BACKEND_CREDENTIAL_PROVIDER
Could you help me?