Skip to content

Redis - credential_provider #2406

@SorianoMarmol

Description

@SorianoMarmol

Hello!

Celery now includes built-in support for the ‘credential_provider' redis feature (development version, RC).

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?

Related Issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions