Skip to main content

AMQP Component

Send and receive messages on an AMQP-based message broker

Component key: amqp

Description

The Advanced Message Queuing Protocol (AMQP) is a standard protocol for interacting with message brokers and queueing platforms. It is used by many common message broker services like Azure Event Hubs, Apache Qpid, RabbitMQ and more.

This component allows you to manage messages on an AMQP-based queue.

Connections

AMQP Connection

An AMQP connection is comprised of a host name (this can be an IP address or FQDN endpoint), port, protocol and vhost. For example, if you are told that your AMQP server is hosted at amqps://amqp.example.com:5672/example/vhost, enter amqp.example.com for the host, and 5672 for the port, select AMQPS for the protocol, and enter example/vhost for the vhost.

AMQP often requires authentication (a username and password), but some AMQP servers are anonymous and do not require authentication. If the server you're interacting with is allows anonymous authentication, you can omit the username and password fields.

You can verify that your settings are correct using the this component's Check AMQP Connection action.

Actions

Acknowledge Message

Acknowledge a previously fetched message | key: acknowledgeMessage


Check AMQP Connection

Verify that an AMQP server is available, and return the server's connection information. This is helpful for debugging purposes. | key: checkConnection

Output Example Payload

{
"data": {
"host": "amqp.example.com",
"copyright": "Copyright (c) 2007-2022 VMware, Inc. or its affiliates.",
"information": "Licensed under the MPL 2.0. Website: https://rabbitmq.com",
"platform": "Erlang/OTP 24.2.1",
"product": "RabbitMQ",
"version": "3.9.13",
"connection": {
"host": "amqp.example.com",
"port": "5672",
"vhost": "example/vhost",
"password": "myPassword",
"protocol": "amqp",
"username": "myUsername"
}
}
}

Get Message

Receives a message from an AMQP-based queue | key: getMessage

This action will return a message from a given queue, if a message is available to get. If no message is available, this action will return null.

Use a Branch on Expression step to branch based on whether or not a message was fetched. You can check if the results of this step are non-null using the exists operator.

You have two options for marking a message "acknowledged":

  1. You can set the Acknowledge Message input to true. This will cause the message to be acknowledged immediately, and the message will be removed from the queue.
  2. You can choose to not acknowledge the message immediately, but instead process the message and then pass the message to a Acknowledge Message step instead. This option is helpful if you would like to ensure the message is processed completely before removing it from the queue.

Output Example Payload

{
"data": {
"fields": {
"deliveryTag": 1,
"redelivered": true,
"routingKey": "classic",
"messageCount": 10
},
"properties": {
"contentType": "text",
"contentEncoding": "",
"deliveryMode": "exampleMode",
"priority": "High",
"correlationId": "exampleId",
"replyTo": "",
"expiration": "",
"messageId": "exampleId",
"timestamp": "Fri, 06 Aug 2021 00:00:00 GMT",
"type": "Buffer",
"userId": "exampleId",
"appId": "exampleId",
"clusterId": "exampleId"
},
"content": {
"type": "Buffer",
"data": [
69,
120,
97,
109,
112,
108,
101
]
},
"message": "Example Message Content"
}
}

Publish Message

Add a message to an AMQP-based queue | key: publishMessage

Output Example Payload

{
"data": true
}

Reject Message

Rejects one message from an AMQP-based queue | key: rejectMessage

Output Example Payload

{
"data": {
"consumerTag": "amq.ctag-ExampleTag"
}
}