Configuration in this directory creates a REST delivery point and child objects on the PubSub+ event broker, leveraging the REST Delivery Terraform module.
It demonstrates the use of substitution expressions for flexible REST requests.
Substitution expressions may be used in the
- Request URI path component
- Request headers
Strings containing substitution expressions must be properly escaped in the Terraform configuration.
msg_vpn_name- Set todefaultin the example.rest_delivery_point_nameurl- Set tohttp://example.com/$${msgId()}in the example. Notice the escape sequence, which results in${msgId()}configured on the broker. Substitution expressions are only supported in the path component.queue_name- Set tordp_queue, the queue that has been created to be used with the RDP.
Important: The REST delivery point must have permission to consume messages from the queue — to achieve this, the queue’s owner must be set to #rdp/<rest_delivery_point_name> or the queue’s permissions for non-owner clients must be set to at least consume level access. Queue ingress and egress must also be enabled.
request_headers- Here{ header_name = "header1", header_value = "$${uuid()}" }, notice again the use of the escape sequence.
Note that substitution expressions are not supported for protected_request_headers.
Optional module input variables have the same name as the attributes of the underlying provider resource. If omitted, then the default for the related resource attribute will be configured on the broker. For a list of attributes and the corresponding defaults, see the documentation of "solacebroker_msg_vpn_rest_delivery_point_rest_consumer".
The module default for the enabled variable is true, which enables both the RDP and the REST consumer resources.
The module rdp, consumer and queue_binding outputs refer to the created REST delivery point, REST consumer and queue binding.
This example will create the following resources:
solacebroker_msg_vpn_queue(created before the module, as pre-requisite)solacebroker_msg_vpn_rest_delivery_pointsolacebroker_msg_vpn_rest_delivery_point_rest_consumersolacebroker_msg_vpn_rest_delivery_point_queue_bindingsolacebroker_msg_vpn_rest_delivery_point_queue_binding_request_header
If you don't already have access to a broker, see the Developers page for options to get started.
The sample is available from the module GitHub repo:
git clone https://github.com/SolaceProducts/terraform-solacebroker-rest-delivery.git
cd examples/using-substitution-expressionsAdjust the provider parameters in main.tf according to your broker. The example configuration shows settings for a local broker running in Docker.
Tip: You can verify configuration changes on the broker, before and after, using the PubSub+ Broker Manager Web UI.
Execute from this folder:
terraform init
terraform plan
terraform applyRun terraform destroy to clean up the created resources when they are no longer needed.
For more information, see Managing REST Delivery Points section in the PubSub+ documentation.