Skip to main content

RabbitMQ

Type: bindings.rabbitmq

Status: stable

Reference: https://docs.dapr.io/reference/components-reference/supported-bindings/rabbitmq/

Example

apiVersion: cra.diagrid.io/v1beta1
kind: Component
metadata:
name: <name>
spec:
type: bindings.rabbitmq
version: v1
metadata:
# RabbitMQ host address.
- name: host
value: "amqp://[username][:password]@host.domain[:port], amqps://[username][:password]@host.domain[:port]"
# Indicates the direction of the binding component.
- name: direction
value: "input,output"
# RabbitMQ queue name.
- name: queueName
value: "myqueue"
# Certificate authority certificate, required for using TLS. (Optional)
#- name: caCert
# value: |
# -----BEGIN CERTIFICATE-----
# <base64-encoded DER>
# -----END CERTIFICATE-----
# Client certificate, required when "authType" is "mtls". (Optional)
#- name: clientCert
# value: |
# -----BEGIN CERTIFICATE-----
# <base64-encoded DER>
# -----END CERTIFICATE-----
# Client key, required when "authType" is "mtls". (Optional)
#- name: clientKey
# value: |
# -----BEGIN PRIVATE KEY-----
# <base64-encoded DER>
# -----END PRIVATE KEY-----
# The content type of the message. (Optional)
#- name: contentType
# value: "“text/plain”"
# Enables or disables auto-delete. (Optional)
#- name: deleteWhenUnused
# value: "false"
# Tells RabbitMQ to persist message in storage. (Optional)
#- name: durable
# value: "false"
# If true, the topic is treated as exclusive. (Optional)
#- name: exclusive
# value: "false"
# With TLS, should the username be taken from an additional field (e.g. CN.) See RabbitMQ Authentication Mechanisms. (Optional)
#- name: externalSasl
# value: "false"
# Parameter to set the priority queue. If this parameter is omitted, queue will be created as a general queue instead of a priority queue. Value is between 1 and 255. (Optional)
#- name: maxPriority
# value: "1"
# Set the Channel Prefetch Setting (QoS). If this parameter is omitted, QoS would set value to 0 as no limit. (Optional)
#- name: prefetchCount
# value: "0"
# Represents the duration in seconds that the client should wait before attempting to reconnect to the server after a disconnection occurs. (Optional)
#- name: reconnectWaitInSeconds
# value: "5"
# Specifies a custom route for incoming events. (Optional)
#- name: route
# value: "/custom-path"
# Set the default message time to live at RabbitMQ queue level. If this parameter is omitted, messages won't expire, continuing to exist on the queue until processed. (Optional)
#- name: ttl
# value: "60s"

Binding information

Input Binding: yes

Output Binding: yes

Output Binding operations:

  • create: Publish a new message in the queue.

Authentication profiles

Available authentication profiles:

  • Connection string

Connection string

Use a connection string

host

Required - RabbitMQ host address.

Example value: amqp://[username][:password]@host.domain[:port], amqps://[username][:password]@host.domain[:port]

Metadata

direction (string)

Required - Indicates the direction of the binding component.

Example value: input,output

Allowed values:

  • input

  • output

  • input,output

Documentation: https://docs.dapr.io/reference/api/bindings_api/#binding-direction-optional

queueName (string)

Required - RabbitMQ queue name.

Example value: myqueue

caCert (string)

Certificate authority certificate, required for using TLS.

Example value:

-----BEGIN CERTIFICATE-----
<base64-encoded DER>
-----END CERTIFICATE-----

clientCert (string)

Client certificate, required when "authType" is "mtls".

Example value:

-----BEGIN CERTIFICATE-----
<base64-encoded DER>
-----END CERTIFICATE-----

clientKey (string)

Client key, required when "authType" is "mtls".

Example value:

-----BEGIN PRIVATE KEY-----
<base64-encoded DER>
-----END PRIVATE KEY-----

contentType (string)

The content type of the message.

Default value: “text/plain”

Example value: text/plain, application/cloudevent+json

deleteWhenUnused (bool)

Enables or disables auto-delete.

Default value: false

Example value: true, false

durable (bool)

Tells RabbitMQ to persist message in storage. Used for output binding direction.

Default value: false

Example value: true, false

exclusive (bool)

If true, the topic is treated as exclusive.

Default value: false

Example value: true, false

externalSasl (string)

With TLS, should the username be taken from an additional field (e.g. CN.) See RabbitMQ Authentication Mechanisms.

Default value: false

Example value: true, false

RabbitMQ Authentication Mechanisms: https://www.rabbitmq.com/access-control.html#mechanisms

maxPriority (number)

Parameter to set the priority queue. If this parameter is omitted, queue will be created as a general queue instead of a priority queue. Value is between 1 and 255.

Default value: 1

Example value: 1, 10

RabbitMQ Priority Queue Support: https://www.rabbitmq.com/priority.html

prefetchCount (number)

Set the Channel Prefetch Setting (QoS). If this parameter is omitted, QoS would set value to 0 as no limit. Used for input binding direction.

Default value: 0

Example value: 0

RabbitMQ Channel Prefetch Setting (QoS): https://www.rabbitmq.com/confirms.html#channel-qos-prefetch

reconnectWaitInSeconds (number)

Represents the duration in seconds that the client should wait before attempting to reconnect to the server after a disconnection occurs.

Default value: 5

Example value: 5, 10

route (string)

Specifies a custom route for incoming events.

Example value: /custom-path

Documentation: https://docs.dapr.io/developing-applications/building-blocks/bindings/howto-triggers/#specify-a-custom-route

ttl (duration)

Set the default message time to live at RabbitMQ queue level. If this parameter is omitted, messages won't expire, continuing to exist on the queue until processed. Used for output binding direction.

Example value: 60s

RabbitMQ Time-To-Live and Expiration: https://www.rabbitmq.com/ttl.html