RabbitMQ Environment Variables

Note: This version of RabbitMQ for Pivotal Platform is no longer supported because it has reached the End of General Support phase. To stay up to date with the latest software and security updates, upgrade to a supported version.

This topic provides a reference for the environment variables that Pivotal Cloud Foundry (PCF) stores for RabbitMQ for PCF service instances. These variables include the credentials that apps use to access the service instances.

VCAP_SERVICES

Apps running in PCF gain access to the bound service instances through an environment variable credentials hash called VCAP_SERVICES. An example hash is show below:


{
    "p-rabbitmq": [{
        "label": "p-rabbitmq",
        "name": "my-rabbit-service-instance",
        "plan": "standard",
        "tags": ["rabbitmq", "messaging", "message-queue", "amqp", "pivotal"],
        "credentials": {
            "dashboard_url": "http://pivotal-rabbitmq.your.pcf.example.com/#/login/b5d0ad14-4352-48e8-8982-d5b1d257029f/tavk86pnnns1ddiqpsdtbchurn",
            "username": "b5d0ad14-4352-48e8-8982-d5b1d257029f",
            "vhost": "62e5ab21-7b38-44ac-b139-6aa97af01cd7",
            "password": "#passwordexample123456789",
            "ssl": false,
            "hostname": "10.0.0.41",
            "hostnames": [
                "10.0.0.41",
                "10.0.0.51"],
            "uri": "amqp://b5d0ad14-4352-48e8-8982-d5b1d257029f:tavk86pnnns1ddiqpsdtbchurn@10.0.0.41/62e5ab21-7b38-44ac-b139-6aa97af01cd7",
            "uris": [
                "amqp://b5d0ad14-4352-48e8-8982-d5b1d257029f:tavk86pnnns1ddiqpsdtbchurn@10.0.0.41/62e5ab21-7b38-44ac-b139-6aa97af01cd7",
                "amqp://b5d0ad14-4352-48e8-8982-d5b1d257029f:tavk86pnnns1ddiqpsdtbchurn@10.0.0.51/62e5ab21-7b38-44ac-b139-6aa97af01cd7"],
            "http_api_uri": "http://b5d0ad14-4352-48e8-8982-d5b1d257029f:tavk86pnnns1ddiqpsdtbchurn@10.0.0.41:15672/api",
            "http_api_uris": [
                "http://b5d0ad14-4352-48e8-8982-d5b1d257029f:tavk86pnnns1ddiqpsdtbchurn@10.0.0.41:15672/api",
                "http://b5d0ad14-4352-48e8-8982-d5b1d257029f:tavk86pnnns1ddiqpsdtbchurn@10.0.0.51:15672/api"],
            "protocols": {
                "amqp": {
                    "password": "passwordexample123456789",
                    "port": 5672,
                    "ssl": false,
                    "username": "b5d0ad14-4352-48e8-8982-d5b1d257029f",
                    "vhost": "62e5ab21-7b38-44ac-b139-6aa97af01cd7",
                    "host": "10.0.0.41",
                    "hosts": [
                        "10.0.0.41",
                        "10.0.0.51"],
                    "uri": "amqp://b5d0ad14-4352-48e8-8982-d5b1d257029f:passwordexample123456789@10.0.0.41:5672/62e5ab21-7b38-44ac-b139-6aa97af01cd7",
                    "uris": [
                        "amqp://b5d0ad14-4352-48e8-8982-d5b1d257029f:passwordexample123456789@10.0.0.41:5672/62e5ab21-7b38-44ac-b139-6aa97af01cd7",
                        "amqp://b5d0ad14-4352-48e8-8982-d5b1d257029f:passwordexample123456789@10.0.0.51:5672/62e5ab21-7b38-44ac-b139-6aa97af01cd7"]},
                "management": {
                    "username": "b5d0ad14-4352-48e8-8982-d5b1d257029f",
                    "password": "passwordexample123456789",
                    "path": "/api",
                    "port": 15672,
                    "ssl": false,
                    "host": "10.0.0.41",
                    "hosts": [
                        "10.0.0.41",
                        "10.0.0.51"],
                    "uri": "http://b5d0ad14-4352-48e8-8982-d5b1d257029f:passwordexample123456789@10.0.0.41:15672/api",
                    "uris": [
                        "http://b5d0ad14-4352-48e8-8982-d5b1d257029f:passwordexample123456789@10.0.0.41:15672/api",
                        "http://b5d0ad14-4352-48e8-8982-d5b1d257029f:passwordexample123456789@10.0.0.51:15672/api"]}}}}]}

You can search for your service by its name, given when creating the service instance, or dynamically through the tags or label properties. The credentials property can be used as follows:

  • The top level properties uri, uris, vhost, username, password, hostname, and hostnames provide access to the AMQP 0.9.1 protocol.

  • A more flexible approach is provided by the credentials.protocols property, which has a key per enabled protocol. The possible keys are amqp, management, mqtt, and stomp. If SSL is enabled, then the keys are amqp+ssl, management+ssl, mqtt+ssl, and stomp+ssl respectively.

  • The values associated with each of these keys gives access credentials specific to each protocol. In all cases, URIs are provided, along with the individual components.

Changing Enabled Plugins and Protocols

Note: Removing or adding plugins/protocols might cause apps bound with RabbitMQ to break.

If you adjust the plugins and protocols enabled for RabbitMQ, you might need to force all app’s VCAP_SERVICES environment variable to be regenerated. Adding and removing the following plugins require bound apps to be restaged:

  • rabbitmq_management
  • rabbitmq_stomp
  • rabbitmq_mqtt
  • rabbitmq_amqp1_0

In common with all services in PCF, the VCAP_SERVICES environment variable for an app is only modified when the app is bound to a service instance. Users need to cf unbind-service, cf bind-service, and cf restage their app in this scenario.

Was this helpful?
What can we do to improve?