Commit ce2b693e authored by Komal Makkar's avatar Komal Makkar Committed by Hema Vishnu Pola [Microsoft]
Browse files

Updating documentation for Azure

parent 5c61c858
# SOPs for Creating a new Topic and Adding subscriber for it. ## Introduction
The document enumerates the scenarios service is designed for, limitations of the service and onboarding guide.
### Introduction
Notification service is invoked by PubSub called [Event Grid](https://docs.microsoft.com/en-us/azure/event-grid/).
This document describes how to create a topic, publish to it and listen to it.
### How to create the Topic and start using it. ## When to use Notification Service?
#### 1. Create Event Grid Topic. TBD
Following this will enable creation of topic in all data partitions.
1. Create a Topic. [Reference](https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-azure-provisioning/-/blob/master/infra/templates/osdu-r3-mvp/data_partition/main.tf#L301)
2. Assign the Service Principals of service the role "EventGrid EventSubscription Contributor". [Reference](https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-azure-provisioning/-/merge_requests/32)
3. Identify the fully qualified topic name and it's alias. The fully qualified topic name is the one you see on the Azure portal. An example is "osdu-env-dp1env-as12-grid-recordstopic". The alias could be recordstopic. Make sure the alias ends with topic. Invalid topic names will be "testtopic1", "test_topic", "testtopics" etc.
4. Create secrets in Common Resources Key Vault that helps your service identify the event grid topic end point. [Reference](https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-azure-provisioning/-/merge_requests/30/diffs)
Make sure you name them in the format "eventgrid-\<alias\>" and "eventgrid-\<alias\>-accesskey". For example, if the topic alias is "testtopic", the keys should look like "eventgrid-testtopic-accesskey" and "eventgrid-testtopic".
#### 2. Make partition service aware of the new topic. ## How to use Notification Service.
Partition service maintains the configuration for each infrastructure component. #### Prerequisite
Please verify that the topic you want to use exists. If now, follow [this](https://community.opengroup.org/osdu/platform/system/notification/-/blob/master/provider/notification-azure/PLAYBOOK_FOR_TOPIC_CREATION.md) guide to create one.
For all the tenants, add the new topic information. [Reference](https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-azure-provisioning/-/merge_requests/101)
This is to be done per partition per deployment. #### 1. Publish to Event Grid Topic.
#### 3. Make Register service aware of the new Topic
1. Add the topic alias to [topics.json](https://community.opengroup.org/osdu/platform/system/register/-/blob/master/provider/register-azure/src/main/resources/topics.json). Make sure you fill in the values of description, state and examples to ensure that the get Topic API contract is not broken.
#### 4. Publish to Event Grid Topic.
Using core-lib-azure [Event Grid facade](https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/blob/master/src/main/java/org/opengroup/osdu/azure/eventgrid/EventGridTopicStore.java), you can publish the events. [Reference](https://community.opengroup.org/osdu/platform/system/storage/-/blob/master/provider/storage-azure/src/main/java/org/opengroup/osdu/storage/provider/azure/MessageBusImpl.java#L67) Using core-lib-azure [Event Grid facade](https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/blob/master/src/main/java/org/opengroup/osdu/azure/eventgrid/EventGridTopicStore.java), you can publish the events. [Reference](https://community.opengroup.org/osdu/platform/system/storage/-/blob/master/provider/storage-azure/src/main/java/org/opengroup/osdu/storage/provider/azure/MessageBusImpl.java#L67)
#### 5. Steps to Subscribe #### 2. Steps to Subscribe
1. Register your subscriber with Register Service. You will need to expose two endpoints 1. Register your subscriber with Register Service. You will need to expose two endpoints
__Get Endpoint__: for a Handshake/challenge response. [Reference](https://community.opengroup.org/osdu/platform/system/register/-/blob/master/register-core/src/main/java/org/opengroup/osdu/register/api/test/SubscriberListenerApi.java#L52) __Get Endpoint__: for a Handshake/challenge response. [Reference](https://community.opengroup.org/osdu/platform/system/register/-/blob/master/register-core/src/main/java/org/opengroup/osdu/register/api/test/SubscriberListenerApi.java#L52)
...@@ -51,8 +38,5 @@ Not today. ...@@ -51,8 +38,5 @@ Not today.
3. __When should I create a topic vs using an existing one?__ 3. __When should I create a topic vs using an existing one?__
If the nature of messages and subscribers overlap completely with an existing topic, re-use it. If the nature of messages and subscribers overlap completely with an existing topic, re-use it.
4. __Are there different Topics for OSDU Platform and it's consumers?__ 4. __The topics.json isn't scalable model__
The need is getting evaluated. We are evaluating the need for the bringing up a store.
5. __The topics.json isn't scalable model__
We are evaluating the need for the bringing up a store.
\ No newline at end of file
# SOPs for Creating a new Topic and Adding subscriber for it.
### Introduction
Notification service is invoked by PubSub called [Event Grid](https://docs.microsoft.com/en-us/azure/event-grid/).
This document describes how to create an Event Grid Topic in OSDU universe, before you can start consuming it.
### How to create the Topic
#### 1. Create Event Grid Topic on infrastructure.
Following this will enable creation of topic in all data partitions.
1. Create a Topic via terraform. [Reference](https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-azure-provisioning/-/blob/master/infra/templates/osdu-r3-mvp/data_partition/main.tf#L301)
2. Assign the Service Principals of service the role "EventGrid EventSubscription Contributor". [Reference](https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-azure-provisioning/-/merge_requests/32)
3. Identify the fully qualified topic name and it's alias. The fully qualified topic name is the one you see on the Azure portal. An example is "osdu-env-dp1env-as12-grid-recordstopic". The alias could be recordstopic. Make sure the alias ends with topic. Invalid topic names will be "testtopic1", "test_topic", "testtopics" etc.
4. Create secrets in Common Resources Key Vault that helps your service identify the event grid topic end point. [Reference](https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-azure-provisioning/-/merge_requests/30/diffs)
Make sure you name them in the format "eventgrid-\<alias\>" and "eventgrid-\<alias\>-accesskey". For example, if the topic alias is "testtopic", the keys should look like "eventgrid-testtopic-accesskey" and "eventgrid-testtopic".
#### 2. Make partition service aware of the new topic.
Partition service maintains the configuration for each infrastructure component.
For all the tenants, add the new topic information. [Reference](https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-azure-provisioning/-/merge_requests/101)
This is to be done per partition per deployment.
#### 3. Make Register service aware of the new Topic, if the consumers are outside the bounds of OSDU.
1. Add the topic alias to [topics.json](https://community.opengroup.org/osdu/platform/system/register/-/blob/master/provider/register-azure/src/main/resources/topics.json). Make sure you fill in the values of description, state and examples to ensure that the get Topic API contract is not broken.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment