This topic gives you reference documentation for the environment variables that VMware Tanzu Application Service for VMs stores for VMware Tanzu RabbitMQ for Tanzu Application Service service instances. These variables include the credentials that apps use to access the service instances.

VCAP_SERVICES

Apps running in TAS for VMs 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": "single-node",
    "tags": ["rabbitmq"],
    "credentials": {
      "dashboard_url": "http://pivotal-rabbitmq.your.pcf.example.com",
      "username": "b5d0ad14-4352-48e8-8982-d5b1d257029f",
      "vhost": "62e5ab21-7b38-44ac-b139-6aa97af01cd7",
      "password": "#passwordexample123456789",
      "ssl": false,
      "hostname": "q-s0.rabbitmq-server.services-subnet.service-instance-e0e7fc5f-c1c7-4211-81b9-284fb29ba851.bosh",
      "hostnames": [
        "q-s0.rabbitmq-server.services-subnet.service-instance-e0e7fc5f-c1c7-4211-81b9-284fb29ba851.bosh",
      ],
      "uri": "amqp://b5d0ad14-4352-48e8-8982-d5b1d257029f:tavk86pnnns1ddiqpsdtbchurn@q-s0.rabbitmq-server.services-subnet.service-instance-e0e7fc5f-c1c7-4211-81b9-284fb29ba851.bosh/62e5ab21-7b38-44ac-b139-6aa97af01cd7",
      "uris": [
        "amqp://b5d0ad14-4352-48e8-8982-d5b1d257029f:tavk86pnnns1ddiqpsdtbchurn@q-s0.rabbitmq-server.services-subnet.service-instance-e0e7fc5f-c1c7-4211-81b9-284fb29ba851.bosh/62e5ab21-7b38-44ac-b139-6aa97af01cd7",
      ],
      "http_api_uri": "http://b5d0ad14-4352-48e8-8982-d5b1d257029f:tavk86pnnns1ddiqpsdtbchurn@q-s0.rabbitmq-server.services-subnet.service-instance-e0e7fc5f-c1c7-4211-81b9-284fb29ba851.bosh:15672/api",
      "http_api_uris": [
        "http://b5d0ad14-4352-48e8-8982-d5b1d257029f:tavk86pnnns1ddiqpsdtbchurn@q-s0.rabbitmq-server.services-subnet.service-instance-e0e7fc5f-c1c7-4211-81b9-284fb29ba851.bosh:15672/api",
      ],
      "protocols": {
        "amqp": {
          "password": "passwordexample123456789",
          "port": 5672,
          "ssl": false,
          "username": "b5d0ad14-4352-48e8-8982-d5b1d257029f",
          "vhost": "62e5ab21-7b38-44ac-b139-6aa97af01cd7",
          "host": "q-s0.rabbitmq-server.services-subnet.service-instance-e0e7fc5f-c1c7-4211-81b9-284fb29ba851.bosh",
          "hosts": [
            "q-s0.rabbitmq-server.services-subnet.service-instance-e0e7fc5f-c1c7-4211-81b9-284fb29ba851.bosh",
          ],
          "uri": "amqp://b5d0ad14-4352-48e8-8982-d5b1d257029f:passwordexample123456789@q-s0.rabbitmq-server.services-subnet.service-instance-e0e7fc5f-c1c7-4211-81b9-284fb29ba851.bosh:5672/62e5ab21-7b38-44ac-b139-6aa97af01cd7",
          "uris": [
            "amqp://b5d0ad14-4352-48e8-8982-d5b1d257029f:passwordexample123456789@q-s0.rabbitmq-server.services-subnet.service-instance-e0e7fc5f-c1c7-4211-81b9-284fb29ba851.bosh:5672/62e5ab21-7b38-44ac-b139-6aa97af01cd7",
          ]
        }
      }
    }
  }]
}

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

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

  • The credentials.protocols property has a key per enabled protocol, providing a more flexible approach. The possible keys are amqp, management, mqtt, and stomp. If SSL is enabled, 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 Plug-ins and Protocols

Note

Removing or adding plug-ins or protocols might cause apps bound with Tanzu RabbitMQ for Tanzu Application Service to break.

If you adjust the plug-ins and protocols enabled for RabbitMQ, you might need to force the VCAP_SERVICES environment variables of all apps to be regenerated. Adding and removing the following plug-ins require bound apps to be restaged:

  • rabbitmq_management
  • rabbitmq_stomp
  • rabbitmq_web_stomp
  • rabbitmq_mqtt
  • rabbitmq_amqp1_0

In common with all services in TAS for VMs, 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.

check-circle-line exclamation-circle-line close-line
Scroll to top icon