.. This work is licensed under a Creative Commons Attribution 4.0 International License. | |
.. http://creativecommons.org/licenses/by/4.0 | |
.. _dmaap-connection-objects: | |
DMaaP connection objects | |
======================== | |
DMaaP Connection Objects are JSON objects that: | |
1. At Runtime - this is generated by the DCAE Platform and passed to the | |
component in its application_configuration to be used to connect to | |
the DMaaP feed or topic. Components will receive the entire object | |
with all properties populated (default will be \`null) unless | |
specified otherwise. | |
2. During dcae_cli testing - this is provided through the command-line | |
argument ``--dmaap-file`` to test the component with manually | |
provisioned feeds and topics. Developers are not required to provide | |
the entire object. The required properties are labeled below with | |
“*Required as input*”. | |
.. _dmaap-message-router: | |
Message Router | |
-------------- | |
Publishers and subscribers have the same generated | |
``Dmaap Connection Object`` structure. Here’s an example for any given | |
config-key: (This is what will be in application_configuration) | |
.. code:: json | |
{ | |
"type": "message_router", | |
"aaf_username": "some-user", | |
"aaf_password": "some-password", | |
"dmaap_info": { | |
"client_role": "com.dcae.member", | |
"client_id": "1500462518108", | |
"location": "mtc00", | |
"topic_url": "https://we-are-message-router.us:3905/events/some-topic" | |
} | |
} | |
At the top-level: | |
+--------------------------------+---------+---------------------------+ | |
| Property Name | Type | Description | | |
+================================+=========+===========================+ | |
| type | string | *Required as input*. Must | | |
| | | be ``message_router`` for | | |
| | | message router topics | | |
+--------------------------------+---------+---------------------------+ | |
| aaf_username | string | AAF username message | | |
| | | router clients use to | | |
| | | authenticate with secure | | |
| | | topics | | |
+--------------------------------+---------+---------------------------+ | |
| aaf_password | string | AAF password message | | |
| | | router clients use to | | |
| | | authenticate with secure | | |
| | | topics | | |
+--------------------------------+---------+---------------------------+ | |
| dmaap_info | JSON | *Required as input*. | | |
| | object | Contains the topic | | |
| | | connection details | | |
+--------------------------------+---------+---------------------------+ | |
The ``dmaap_info`` object contains: | |
+--------------------------------+---------+---------------------------+ | |
| Property Name | Type | Description | | |
+================================+=========+===========================+ | |
| client_role | string | AAF client role that’s | | |
| | | requesting publish or | | |
| | | subscribe access to the | | |
| | | topic | | |
+--------------------------------+---------+---------------------------+ | |
| client_id | string | Client id for given AAF | | |
| | | client | | |
+--------------------------------+---------+---------------------------+ | |
| location | string | DCAE location for the | | |
| | | publisher or subscriber, | | |
| | | used to set up routing | | |
+--------------------------------+---------+---------------------------+ | |
| topic_url | string | *Required as input*. URL | | |
| | | for accessing the topic | | |
| | | to publish or receive | | |
| | | events | | |
+--------------------------------+---------+---------------------------+ | |
The –dmaap-file argument (to the component ``run`` or ``dev`` command), | |
must minimally contain: | |
.. code:: json | |
{ | |
"type": "message_router", | |
"dmaap_info": { | |
"topic_url": "https://we-are-message-router.us:3905/events/some-topic" | |
} | |
} | |
.. _dmaap-data-router: | |
Data Router | |
----------- | |
Publisher | |
~~~~~~~~~ | |
Here’s an example of what the generated ``Dmaap Connection Object`` for | |
Data Router Publisher looks like: (This is what will be in | |
application_configuration) | |
.. code:: json | |
{ | |
"type": "data_router", | |
"dmaap_info": { | |
"location": "mtc00", | |
"publish_url": "https://we-are-data-router.us/feed/xyz", | |
"log_url": "https://we-are-data-router.us/feed/xyz/logs", | |
"username": "some-user", | |
"password": "some-password", | |
"publisher_id": "123456" | |
} | |
} | |
At the top-level: | |
+--------------------------------+---------+---------------------------+ | |
| Property Name | Type | Description | | |
+================================+=========+===========================+ | |
| type | string | *Required as input*. Must | | |
| | | be ``data_router`` for | | |
| | | data router feeds | | |
+--------------------------------+---------+---------------------------+ | |
| dmaap_info | JSON | *Required as input*. | | |
| | object | Contains the feed | | |
| | | connection details | | |
+--------------------------------+---------+---------------------------+ | |
The ``dmaap_info`` object contains: | |
+--------------------------------+---------+---------------------------+ | |
| Property Name | Type | Description | | |
+================================+=========+===========================+ | |
| location | string | DCAE location for the | | |
| | | publisher, used to set up | | |
| | | routing | | |
+--------------------------------+---------+---------------------------+ | |
| publish_url | string | *Required as input*. URL | | |
| | | to which the publisher | | |
| | | makes Data Router publish | | |
| | | requests | | |
+--------------------------------+---------+---------------------------+ | |
| log_url | string | URL from which log data | | |
| | | for the feed can be | | |
| | | obtained | | |
+--------------------------------+---------+---------------------------+ | |
| username | string | Username the publisher | | |
| | | uses to authenticate to | | |
| | | Data Router | | |
+--------------------------------+---------+---------------------------+ | |
| password | string | Password the publisher | | |
| | | uses to authenticate to | | |
| | | Data Router | | |
+--------------------------------+---------+---------------------------+ | |
| publisher_id | string | Publisher id in Data | | |
| | | Router | | |
+--------------------------------+---------+---------------------------+ | |
The –dmaap-file argument (to the component ``run`` or ``dev`` command), | |
must minimally contain: | |
.. code:: json | |
{ | |
"type": "data_router", | |
"dmaap_info": { | |
"publish_url": "https://we-are-data-router.us/feed/xyz" | |
} | |
} | |
Subscriber | |
~~~~~~~~~~ | |
Here’s an example of what the generated ``Dmaap Connection Object`` for | |
a Data Router Subscriber looks like: (This is what will be passed in | |
application_configuration) | |
.. code:: json | |
{ | |
"type": "data_router", | |
"dmaap_info": { | |
"location": "mtc00", | |
"delivery_url": "https://my-subscriber-app.dcae:8080/target-path", | |
"username": "some-user", | |
"password": "some-password", | |
"subscriber_id": "789012" | |
} | |
} | |
At the top-level: | |
+--------------------------------+---------+---------------------------+ | |
| Property Name | Type | Description | | |
+================================+=========+===========================+ | |
| type | string | *Required as input*. Must | | |
| | | be ``data_router`` for | | |
| | | data router feeds | | |
+--------------------------------+---------+---------------------------+ | |
| dmaap_info | JSON | *Required as input*. | | |
| | object | Contains the feed | | |
| | | connection details | | |
+--------------------------------+---------+---------------------------+ | |
The ``dmaap_info`` object contains: | |
+--------------------------------+---------+---------------------------+ | |
| Property Name | Type | Description | | |
+================================+=========+===========================+ | |
| location | string | DCAE location for the | | |
| | | subscriber, used to set | | |
| | | up routing | | |
+--------------------------------+---------+---------------------------+ | |
| delivery_url | string | URL to which the Data | | |
| | | Router should deliver | | |
| | | files | | |
+--------------------------------+---------+---------------------------+ | |
| username | string | Username Data Router uses | | |
| | | to authenticate to the | | |
| | | subscriber when | | |
| | | delivering files | | |
+--------------------------------+---------+---------------------------+ | |
| password | string | Password Data Router uses | | |
| | | to authenticate to the | | |
| | | subscriber when | | |
| | | delivering files | | |
+--------------------------------+---------+---------------------------+ | |
| subscriber_id | string | Subscriber id in Data | | |
| | | Router | | |
+--------------------------------+---------+---------------------------+ | |
The –dmaap-file argument (to the component ``run`` or ``dev`` command), | |
must minimally contain: | |
.. code:: json | |
{ | |
"type": "data_router", | |
"dmaap_info": { | |
} | |
} | |
It is the recommended security practice that ``username`` and | |
``password`` are specified. You cannot provide the ``delivery_url`` in | |
your dmaap-file, because it’s not constructed until deployment time. | |
Therefore, after the test deployment, go back to the Data Router Feed | |
and provide the delivery_url (in order to start receiving the feeds). | |
Data Router Example | |
~~~~~~~~~~~~~~~~~~~ | |
(After the Data Router feed has been manually provisioned) | |
:: | |
$ dcae_cli component run --dmaap-file $dmaap_file $component-name | |
DCAE.Run | WARNING | Your component is a data router subscriber. Here are the delivery urls: | |
some-sub-dr: http://135.205.226.128:32838/identity | |
(Update the Data Router Feed to provide the delivery_url). |