Creating REST Delivery Points

A REST Delivery Point (RDP) is a provisioned object on an event broker service that facilitates message delivery to remote REST endpoints. An RDP is associated with a client profile on the event broker service, which provides it with some configuration parameters. The RDP can be bound to queues on the event broker service to deliver messages from those queues to REST endpoints. The RDP maintains a list of REST consumers, which are identified by the connection information for the remote endpoint. For more information about RDPs, see REST Consumers.

In PubSub+ Broker Manager, you can create an RDP using these methods:

  • Use a Connector Wizard to create an RDP for various cloud services, including the following:
    ProviderService(s)

    Amazon Web Services (AWS)

    Amazon API Gateway

    This connector enables additional services such as Simple Notification Service (SNS), Simple Queue Services (SQS), and Lambda. For more information, see PubSub+ and AWS Services Integration on GitHub.

    Microsoft Azure

    Azure Event Hubs, Azure Service Bus, Azure Functions, Data Lake Storage Gen2

    Google Cloud

    Google Cloud Functions, Google Cloud Run, Google Cloud Storage

  • Create an RDP client and enter all of the appropriate settings.

You can also configure RDPs using the Solace CLI.

Using the Connector Wizard

If you want to create an RDP for various supported AWS, Microsoft Azure, or Google Cloud services, use the Connector Wizard. You need to generate an API token to allow the Connector Wizard to authenticate with the event broker service. For more information, see Creating an API Token for Connector Wizards.

The Connector Wizard guides you through the connection process; you don't need to know which individual settings and properties you need to configure or in which order. The wizard automatically creates all of the RDP components (RDP client, REST consumer, queue, and queue bindings). You can find all these components grouped together on the My Connectors page.

To create an RDP with the Connector Wizard, perform these steps:

  1. Open Broker Manager. For instructions, see Using PubSub+ Broker Manager.
  2. In the navigation bar, click Connector Wizards.
  3. Select one of the following cloud providers:
    • Amazon AWS
    • Microsoft Azure
    • Google Cloud
  4. Choose the type of service you want to connect to.
  5. Follow the steps in the wizard to configure authentication, specify the connection details, and set up subscriptions.

The new connector appears in the list on the My Connectors page for the event broker service. On the My Connectors page, you can review the settings for each connector, edit and make changes to components, and delete all of the components (except queues, which may be shared with other connectors).

Examples

For a selection of step-by-step examples for creating connectors using the Connector Wizard, see REST Connector Examples.

Creating an RDP Client

To create an RDP for a remote REST endpoint not supported by the Connector Wizard, or to manage RDPs created using the Connector Wizard or Event Portal, you can create or update an RDP as a client in Broker Manager.

When you use this method, you configure the RDP, REST consumers, and queue bindings separately.

To create an RDP client, perform these steps:

  1. Open Broker Manager. For instructions, see Using PubSub+ Broker Manager.
  2. In the navigation bar, select Clients.
  3. Select the REST tab.
  4. Click + REST Delivery Point.
  5. Enter a name for the RDP and click Create.
  6. Select the Client Profile for the RDP.
  7. (Optional) Enter a Service name. This name is used in the lists of connectors and RDPs to organize services for a cloud provider or other vendor. The default is REST.
  8. (Optional) Enter a Vendor name. This name identifies the cloud provider or other vendor in the lists of connectors and RDPs. The default is Custom.
  9. If you're ready to enable the RDP, click the Enabled toggle to set it to On.
  10. Click Apply.
  11. On the RDPs subtab, click the name of the RDP you created. The Summary tab shows the RDP and a client representing the RDP. From the Summary tab, you can create REST consumers and queue bindings for the RDP.

Adding REST Consumers to an RDP

After you create an RDP, you add one or more REST consumers. Each REST consumer is an object on the event broker service that defines the connection details for a remote REST consumer that receives messages from the event broker service.

  1. Open Broker Manager. For instructions, see Using PubSub+ Broker Manager.
  2. In the navigation bar, select Clients.
  3. Select the REST tab.
  4. On the RDPs subtab, click the name of the RDP you want to add a consumer to.
  5. Select the REST Consumers tab.
  6. Click + REST Consumer.
  7. Enter a name for the REST consumer and click Create.
  8. Enter the connection details for the consumer. You can set the following options:
    SettingDescription

    Enabled

    Enables or disables the REST consumer on the event broker service. The RDP can send messages to the remote REST endpoint when the REST consumer is enabled.

    Remote

    Host

    Specifies the IP address or DNS name of the remote REST endpoint. A host value must be configured

    Port

    Specifies the port associated with the host for the remote REST endpoint.

    Proxy Name

    Specifies the forward proxy to use if one is required for the connection to the remote REST endpoint. Select a proxy from the list of proxies that have been configured on the event broker service. For more information, see Configuring a Forward Proxy.

    HTTP Method

    Specifies the HTTP method to use when delivering messages to the remote REST endpoint. The default is POST. You can instead select PUT to connect the event broker service to remote endpoints that don't support the POST method, such as certain cloud native data lake products.

    TLS Enabled

    Enables or disables using TLS for connections to the remote REST endpoint.

     

    Outgoing Connection Count

    Specifies the maximum number of concurrent outgoing connections to the remote REST endpoint that the event broker service can initiate. The valid range is from 1 to 50 connections. The default is 3.

    Max Response Wait Time

    Specifies the maximum amount of time, in seconds, that the event broker service waits for a response from the remote REST endpoint. If an operation is outstanding for more than the configured maximum wait time, the TCP connection is reset and message delivery is re-attempted through another available outgoing connection for the RDP, up to the maximum delivery count on the queue. If the maximum delivery count is exceeded and the message is eligible for the dead message queue (DMQ), then the message is moved to the DMQ, otherwise it is discarded. The valid range is from 1 to 300 seconds. The default value is 30 seconds.

    Connection Retry Delay

    Specifies the amount of time, in seconds, to wait before retrying a connection attempt. The valid range is from 1 to 300 seconds. The default value is 3 seconds.

    Authentication Scheme

    Specifies the authentication scheme that the event broker service uses to connect to the remote REST endpoint. You can select from the following options:

    • None— specifies to login with no authentication. This option may be useful for anonymous connections or when a REST consumer does not require authentication.

    • HTTP Basic— specifies to login with a username and optional password carried over HTTP. Credentials can be transmitted either using plain text or encrypted with SSL If you select this option, you must specify the username and you can also specify the password.

    • Client Certificate— specifies to login with a client TLS certificate. If you select this option, you must upload the certificate file and you can also specify the password for the certificate.

    • HTTP Header— specifies to login with a specified HTTP header. If you select this option, you must specify the header name and value

    • OAuth 2.0 Client Credentials— specifies to login with OAuth 2.0 client credentials. If you select this option, you must specify the settings required by your OAuth provider.

    • OAuth JWT— specifies to login with an OAuth JWT profile. If you select this option, you must specify the settings required by your OAuth provider.

    • Transparent— specifies to login using the authorization header from the message properties, if present. Transparent authentication passes along existing authorization header metadata instead of discarding it.

    • AWS Signature Version 4—specifies to login with AWS Signature Version 4 authentication.You can use this authentication mechanism to enable RDPs to communicate with most AWS services. If you select this option, you must specify the settings required by AWS.

    Local

    Interface

    This setting is not valid for event broker services.

    Status Codes

    Rejected

    On event broker versions 10.12.0 and later, specifies a comma-separated list of 4xx and 5xx status codes sent by the remote REST endpoint to be treated as a message rejection outcome rather than a delivery failure. You can specify a range of values using a dash, for example, 401, 410-429.

    When message delivery to an endpoint is unsuccessful, the endpoint returns a 4xx or 5xx HTTP status code. By default, when the outcome is a delivery failure, the event broker service retries to deliver the message, based on the Maximum Redelivery Count set for the queue. For more information about configuring message redelivery, see Configuring Advanced Queue Options.

    When an HTTP status code specified by this setting is returned, the event broker service interprets the response as a message rejection. Rejected messages are typically discarded or moved to the DMQ if one exists and the message is eligible. For more information, see Negative Acknowledgments for Specific Messages.

  9. Click Apply.

Adding Queue Bindings to an RDP

After you create an RDP, you add queue bindings for one or more queues to specify the queue that subscribes to the messages that the RDP send to REST consumers and additional queue binding settings. The queue must already exist on the event broker service to configure queue bindings.

To create a queue binding, perform these steps:

  1. Open Broker Manager. For instructions, see Using PubSub+ Broker Manager.
  2. In the navigation bar, select Clients.
  3. Select the REST tab.
  4. On the RDPs subtab, click the name of the RDP you want to add a consumer to.
  5. Select the Queue Bindings tab.
  6. Click + Queue Binding.
  7. Select a queue on the event broker service from the list and click Create.
  8. Enter the queue binding settings for the RDP. You can set the following options:
    SettingDescription

    Post Request Target

    Specifies the POST request target used in HTTP POST requests that are sent to REST consumers and identifies the target resource for message delivery on the remote REST consumer. The POST request target must be set to enable message delivery from a queue to a REST consumer.

    Enables or disables the consumer. The RDP can send messages to the remote REST endpoint when the REST consumer is enabled.

    Request Target Evaluation

    Specifies whether the event broker evaluates substitution expressions in the POST request target to send messages to unique targets based on the message topic, metadata, or the current time. This option is useful when forwarding messages into storage services such as Azure Storage, Amazon S3, or Google Cloud Storage. For more information about substitution expressions, see Substitution Expressions Overview.

    Replace Target Authority

    If the Message VPN is configured to act as a microgateway, enabling this setting specifies that the event broker service propagates HTTP requests in absolute form and retrieves the request-target's authority from the REST consumer's remote host and port configuration.

  9. Click Apply.