amqplib не поддерживает получение списка обменов, привязок и очередей из RabbitMQ, поскольку это не является частью протокола AMQP.
RabbitMQ предоставляет плагин управления , который включает в себя HTTP на основе API. В качестве альтернативы вы можете хранить список обменов, очередей и привязок отдельно и использовать узел для их утверждения, однако вы все равно не сможете утверждать vhosts, пользователей и политики с помощью amqplib. Вместо этого вам придется установить ранее упомянутый плагин управления и использовать HTTP.
Такие библиотеки, как Rascal (заявление об отказе от ответственности - я автор) также предоставляют ограниченную функциональность для автоматического создания объектов RabbitMQ. Rascal может быть настроен на утверждение vhosts (используя http), обменов, очередей и привязок (используя amqplib) при запуске приложения, но не будет удалять дополнительные объекты и в настоящее время не может создавать пользователей или политики.
Другим вариантом является резервное копирование и восстановление всей конфигурации RabbitMQ. Для этого я использовал только интерфейс управления, но он может поддерживаться HTTP API. Однако снова это не приведет к удалению объектов, которые были добавлены после резервного копирования.
Для полноты вы можете использовать инструменты командной строки RabbitMQ для подтверждения конфигурации. Такие инструменты, как Puppet, Chef и Ansible, часто используются для автоматизации этого, но, учитывая, что вы спросили об узле / amqplib, я предполагаю, что это неприемлемо.
Любая попытка переопределить существующий объект (например, изменение тип обмена или добавление различных x-атрибутов в очереди) с использованием любого из указанных выше методов завершится неудачей.