Celery не работает на экземпляре EC2 в производстве
Я пытался развернуть django appllication на aws ec2, я успешно развернул его до сих пор, за исключением того, что заставил celery работать, я попробовал протестировать celery worker, пытаясь временно запустить его в shell с помощью этой команды:
celery -A ReelShopBackend worker -l INFO
который работает локально, а также в docker, но когда я запускаю его на экземпляре ec2, он выдает такую ошибку:
Traceback (most recent call last):
File "/home/ubuntu/Renv/bin/celery", line 8, in <module>
sys.exit(main())
File "/home/ubuntu/Renv/lib/python3.10/site-packages/celery/__main__.py", line 15, in main
sys.exit(_main())
File "/home/ubuntu/Renv/lib/python3.10/site-packages/celery/bin/celery.py", line 217, in main
return celery(auto_envvar_prefix="CELERY")
File "/home/ubuntu/Renv/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/home/ubuntu/Renv/lib/python3.10/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/home/ubuntu/Renv/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/ubuntu/Renv/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/ubuntu/Renv/lib/python3.10/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/home/ubuntu/Renv/lib/python3.10/site-packages/click/decorators.py", line 26, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/ubuntu/Renv/lib/python3.10/site-packages/celery/bin/base.py", line 134, in caller
return f(ctx, *args, **kwargs)
File "/home/ubuntu/Renv/lib/python3.10/site-packages/celery/bin/worker.py", line 343, in worker
worker = app.Worker(
File "/home/ubuntu/Renv/lib/python3.10/site-packages/celery/worker/worker.py", line 99, in __init__
self.setup_instance(**self.prepare_args(**kwargs))
File "/home/ubuntu/Renv/lib/python3.10/site-packages/celery/worker/worker.py", line 120, in setup_instance
self._conninfo = self.app.connection_for_read()
File "/home/ubuntu/Renv/lib/python3.10/site-packages/celery/app/base.py", line 808, in connection_for_read
return self._connection(url or self.conf.broker_read_url, **kwargs)
File "/home/ubuntu/Renv/lib/python3.10/site-packages/celery/app/base.py", line 867, in _connection
return self.amqp.Connection(
File "/home/ubuntu/Renv/lib/python3.10/site-packages/kombu/connection.py", line 181, in __init__
if not get_transport_cls(transport).can_parse_url:
File "/home/ubuntu/Renv/lib/python3.10/site-packages/kombu/transport/__init__.py", line 85, in get_transport_cls
_transport_cache[transport] = resolve_transport(transport)
File "/home/ubuntu/Renv/lib/python3.10/site-packages/kombu/transport/__init__.py", line 66, in resolve_transport
raise KeyError(f'No such transport: {transport}')
KeyError: 'No such transport: '
Я предполагаю, что он почему-то не видит мою конфигурацию redis, которую я уже настроил в settings.py:
CELERY_BROKER_URL = 'rediss://reelshop-redis.qmdpe.ng.0001.use1.cache.amazonaws.com:6379'
CELERY_RESULT_BACKEND ='rediss://reelshop-redis.qmdpe.ng.0001.use1.cache.amazonaws.com:6379'
получил url redis из службы кластера elastic cache redis и могу получить доступ к redis из redis-cli в моем экземпляре ec2, но celery все еще не видит никакого значения.