Install the Send messages to a queue integration
Install Send messages to a queue from Azion Marketplace and run it on an application to add messages to a RabbitMQ, Amazon SQS, or Kafka-REST queue.
Send messages to a queue adds messages to a message queue. A queue stores messages in first-in-first-out (FIFO) order: a message enters at the back and leaves from the front. The sender adds a message asynchronously, and the receiving component processes it later. The integration supports three messaging services: RabbitMQ, Amazon SQS, and Kafka-REST. It is one of the Marketplace integrations that run on an application.
Four objects must exist before a request sends a message: the installed function, an application with the Functions module turned on, a function instance that holds the arguments, and a Rules Engine rule with the Run Function behavior. Each section below creates one of them.
Prerequisites
- An Azion account. To sign in, refer to How to access Azion Console.
- An application served by a workload. To create one, refer to Applications quickstart.
- A queue on RabbitMQ, Amazon SQS, or Kafka-REST, with its server URL and, where the service requires one, its authorization credentials. Configure the service before you create the function instance.
- Turning on a product or a module can generate usage costs. For more information, refer to Pricing.
Install the integration
The install adds the Send messages to a queue function to your account. To install it from Azion Console:
Access Azion Console > Marketplace.
Enter Send messages to a queue in the Search on Marketplace field, then select the integration’s card. Browsing the cards and the categories reaches the same page.
The card shows Successfully installed! and Latest version installed!. The function is then listed in the Function list of the Create Instance drawer.
Turn on the Functions module
An application runs an installed function only when its Functions module is on. To turn on the module:
Access Azion Console > Applications > your application.
In the Main Settings tab, go to the Modules section.
Azion Console confirms that the application was updated.
Create the function instance
A function instance holds the arguments the Send messages to a queue function reads for one application. To create the instance in your application:
In Applications, select your application, then select the Functions Instances tab.
An application with no instance yet offers the same action as Function Instance. The Create Instance drawer opens.
In Name, enter a unique name that identifies the instance. For example: send-messages-amqp.
In Function, select Send messages to a queue. The Arguments editor fills with the default arguments of the integration.
In Arguments, enter the arguments of your messaging service. Each service takes a different set of arguments and credentials, shown below.
The instance appears in the Functions Instances tab with the name you entered.
Arguments
The arguments are one JSON object. Three keys define the connection:
| Key | Description |
|---|---|
server_type | The connection type. Takes amqp, sqs, or kafka-rest |
connection_url | The server URL of the messaging service |
connection_authorization | The type of authorization the connection requires. Optional |
The connection_args section passes extra parameters to the queue. Each service accepts different parameters, and all of them are optional.
For RabbitMQ, over AMQP:
For Amazon SQS:
For Kafka-REST:
Create the rule
The instance runs only when a Rules Engine rule calls it. The rule below matches every request. To create the rule:
In Applications, select your application, then select the Rules Engine tab.
In Name, enter a name for the rule. For example: Send messages to a queue on every request.
In the Phase section, select Request Phase.
In the Criteria section, keep the ${uri} variable and the starts with operator, then enter / as the argument.
In the Behaviors section, select Run Function, then select the instance you created by its name.
The rule appears in the Rules Engine tab, under the request phase, and runs the Send messages to a queue instance on every request.
For every criterion and behavior a rule accepts, refer to Rules Engine.