Slides of the session given at the SharePoint Saturday Brussels 2017 around Microsoft flow and Azure Functions. This session is an introduction to both services and how you can combine them
3. Vincent Biret
Passionate about development, community and technologies
@baywet
bit.ly/vince365
MVP Office Servers and Services
Azure and Office 365 developer @ 2toLead
4. Often we think we need more than what we actually need and end up over-designing
Fact – development can get complex
5. That’s, and other causes, leads to spending way more than we thought
Fact – costs increase rapidly
6. Workflows and SharePoint always has been a love and hate story
Your experience?
• Customizing SharePoint Workflows with SPD?
• Developing WF with Visual Studio?
• Maintaining a WF infrastructure?
7. Let’s try to find better and more enjoyable tools that’ll make us more productive
Why this session?
• SharePoint workflows are a complicated thing
• Limited to SharePoint
• Software development is costly
• Reusing what already exists
8. Users build flows, developers extend capabilities with Azure Functions
The Team
Users Devs
9. Agenda
• Demo (“beer locator” solution)
• Introduction to Microsoft Flow
• Introduction to Azure Functions
• Conclusion
14. Cloud based solution for workflows provided by Microsoft with or without Office 365
Description
• User based workflow solution
• Connectors based (extensible)
• Web editor
• You can leverage on prem data via a gateway
• Steps based concept
• Numerous templates already available
15. 171 connectors to date, most of them are free (might require a service purchase), some
require a premium license
Some Services
17. You can either use it for free, have it as part of your office 365 plan or add it to it
Pricing
18. Good for 80% of the workloads, I’d avoid it for mission critical workflows for now
Some remarks
• NEW: performances are
guaranteed for paid tiers
• NEW: retry policies
• User based execution context
• NEW: import/export as
template or logic app
• Inconstancies Folder/SPItem
19. Devs have multiple ways to integrate, from the one-deal integration to the ISV
What about the devs?
• WebHooks to start the flows
• Private API’s => use of swagger + AAD app
• Public API’s => Swagger/OpenAPI => flowdev@microsoft.com
• Catalog => Iframes + URL params system or SDK JS
21. Microsoft’s response to the serverless opening market, allowing you to run code and just
not care.
Azure Functions
• Run « pieces of code »
• Focus on code, nothing else
• Supported by Azure App Service/WebJobs
• .NET is .net standard
• backed by runtime 4.7 for now
• soon by asp.net core / dotnet core
• NEW: now available in most of the regions
• PREVIEW: integration with MS Graph
22. Multiple languages supported which lowers the entry cost as the devs in your company
probably already master one or two of those
Supported langages
23. Functions can be triggered periodically, on events, http/webhook or using the bot
framework
Triggers
24. Triggers/Inputs/Outputs
• One trigger per function
• Can have multiple inputs (SQL, Azure Storage, DocumentDB…)
• Can have multiple outputs (same as inputs + http, SendGrid, Twilio…)
25. The more control you want, the lower in the stack, the more simplicity the higher
How to chose?
f
WebJob-App
Service
Cloud Service
VM
On prem
si
m
pl
ic
it
y
c
o
n
tr
o
l
26. SDK is still in preview but usefull to implement DevOps and more advanced scenarios
Tools
• Web Editor
• Git + Visual Studio
• VS 2015 update 3 + Azure Sdk 2.9.6 + functions SDK
• VS 2017 update 3 + azure dev checked
• #r ‘’Newtonsoft.Json’’
27. Azure functions are making progress on the DevOps path allowing you to better control
the lifecycle
Continuous integration
• Publication via web deploy
• Same as a app Service
• ARM
• NEW: Can (easily) be set up via VSTS
• NEW: Deployment slots are in preview
• **VSTS hosted agent doesn’t have Azure functions SDK for now
32. WebHooks are probably the most straight forward way to integrate both together
Multiple integration options
• WebHooks (both ways)
• Simple API (limitations)
• API + swagger
• API + Swagger + PowerApps
33. I swear, I’m going to stop talking soon and let you free
Conclusion
34. Conclusion
• Native access to tons of services and data
• Short development cycles
• More power to users
• Time saved
• Money saved
L’objectif c’est que les usagers fassent des flow et demandent aux développeurs des API/functions
Gestion des questions, interaction, ok avec ce programme?
https://flow.microsoft.com/
https://flow.microsoft.com/en-us/pricing/
Le débuggueur a cessé quand j’ai oublié d’approuver
On peut attendre jusqu’à plusieurs minutes sur une approbation
https://powerusers.microsoft.com/t5/Flow-Ideas/Flow-export/idi-p/8912
http://social.technet.microsoft.com/wiki/contents/articles/36906.microsoft-flow-and-sharepoint.aspx
https://flow.microsoft.com/de-de/blog/import-export-bap-packages/
Emphase: faible courbe d’apprentissage car langages très présents dans l’industrie
C# et Javascript ceux qui ont le plus d’intégration pour le moment
Toutes les 15 minutes, data scavenging
Event blob storage, transformation du CSV en données, explotation via powerbi
Event excel onedrive, creation de graphiques automatisée
Photo prise qui appelle un webhook, stockage dans le blob storage, redimensionnement des images
Implémentation d’un bot via le SDK, commandes mappées à des functions, sortie mappée à des réponses
Les autres paramètres d’entrées vont être mappés aux paramètres de notre fonction en fonction des noms qu’on fournit
Expliquer ce qu’est un webhook
Modèles de route permettent de réutiliser la même fonction en contextualisant les appels
https://blogs.msdn.microsoft.com/webdev/2016/12/01/visual-studio-tools-for-azure-functions/
https://blogs.msdn.microsoft.com/webdev/2017/05/10/azure-function-tools-for-visual-studio-2017/
Syntaxe r avec le pool de librairies à disposition
Référencer une dll existante comme point d’entrée
http://stackoverflow.com/questions/36577584/how-to-put-the-entry-point-of-an-azure-function-inside-a-net-dll
https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-microsoft-graph
BRK3202 – Business processes with Microsoft Graph + Azure Functions
BRK2234 – Modern API development in a serverless world with Azure Functions