Connecting SAP Cloud Platform Enterprise Messaging with Azure Event Grid
Recently I got my hands dirty with SAP Cloud Platform Enterprise Messaging.
Thanks to some fantastic blogs from Carlos Roggan (get started with the first one here: https://blogs.sap.com/2020/03/03/sap-cloud-application-programming-model-and-enterprise-messaging-1-intro ) or Dries Van Vaerenbergh (https://blogs.sap.com/2020/05/06/cloud-foundry-enterprise-messaging-webhooks-%F0%9F%93%A8/; also check out his YouTube Video https://www.youtube.com/watch?v=DKI2WgDS_k0) and also the super help from Tobias Griebe (Thanks!) it was quite easy to get started (you might also want to check out the tutorial here, https://developers.sap.com/tutorials/cp-enterprisemessaging-learn-messaging-concepts.html).
Since I am obviously also working a lot with Microsoft customers who are very familiar with Microsoft Azure, I wanted to see if I can bridge these worlds. On the Microsoft side we have several messaging solutions (for a quick overview you can check out this Azure Friday video https://youtu.be/IQ_j41zBy0k). I want to focus on Azure Event Grid, which comes with several out of the box Event Sources and Event Handlers.
So to put everything together:
Receiving triggers from different SAP sources like S/4Hana, SuccessFactors, … to SAP Cloud Platform Enterprise Messaging. From there using — for now — Webhooks to send the event forward to Microsoft Azure Event Grid and from there using the Event Handler Logic Apps to send out an Email.
It is a very simple scenario, but hopefully it shows that connecting these two services can work. The benefit here obviously is that Enterprise Messaging is perfectly integrated in the SAP world and by this allows SAP developers to leverage their experience, while Azure Event Grid is perfectly integrated in the Microsoft world and enables Microsoft developers to stay in their environment.
Currently there is one open point — and why I want to highlight that this is just a first POC! The authentication from Enterprise Messaging to Event Grid is currently done with a SAS token via a Query Parameter in the URL. Obviously this is not something you would do in a productive environment! Still, I hope this first POC shows you what can be — quite easily — accomplished.
You can find a tutorial at https://github.com/hobru/EM-EventGrid-LogicApps and a related video in our SAP on Azure YouTube channel, https://youtube.com/c/Saponazure
Before I close I also want to highlight another blog from Christian Lechner who outlines how you can integrate Azure Functions directly with your SAP System. Obviously this is a very valid approach and I only want to highlight a different approach where via Event Grid I could connect Azure Functions, but also a lot of other different Event Handlers. Still, I can only encourage to check out the blog series from Christian, https://blogs.sap.com/2019/12/09/a-serverless-extension-story-from-abap-to-azure/
Hi Holger Bruchelt - great blog and thanks for the effort you've done - and also thanks for mentioning my blogs - good to know it was helpful ! 😉
Hi Holger Bruchelt nice blog integrating SAP Enterprise Messaging with Microsoft Azure!
Really cool to see how we can integrate all these kind of services! The authentication part should be handled in a different way indeed. Maybe Azure provides an OAuth token endpoint which can grant an access token to access the event grid? In that way this authentication method could be used in the Webhook Subscription in Enterprise Messaging.
Again great work!
Hi Holger Bruchelt,
very interesting PoC. Another cool example how to combine the services of the platform and I think good starting point for further event driven scenarios.
Very humbled that you referenced my blogs!