In this session, Stephen will walk through how you can use Azure Logic Apps to automate business processes without using code. He will demonstrate the new graphical designer, as well as speak to the architecture of the underlying system, and how to best take advantage of different Logic App capabilities.
3. API APPS
Easily build and consume
APIs in the cloud
WEB APPS
Web apps that scale with your
business
LOGIC APPS
Automate business process
across SaaS and on-premises
MOBILE APPS
Build Mobile apps for any
device
App Service
9. Azure Resource
Manager
The Azure Resource manager is a highly-scalable
geo-distributed system that handles millions of
resources across 100,000’s of subscriptions.
10.
11. Same underlying engine…
RESOURCE MANAGER
Can handle thousands of
parallel deployments per stamp
Resilient against failure – retries
with “at least once” guarantee
Simple, declarative JSON
template
Automatically infers
dependences between resources
LOGIC APPS
Can handle thousands of
parallel runs per stamp
Resilient against failure – retries
with “at least once” guarantee
Simple, declarative JSON
definition
Automatically infers
dependences between actions
13. … more power
RESOURCE MANAGER
8 functions for basic referencing
and string functions
Can only PUT resources into
resource groups
Auth must be through AAD
Triggered manual through API
LOGIC APPS
Over 50 functions from string
manipulations to math, to sets
operations, to logical operators
All HTTP operations supported
on any arbitrary endpoint
Supports many OAuth
providers, AAD, Cert auth, or
Basic auth
4 different ways to be triggered
15. User adds an item
to a list in their
Mobile app
Mobile app has
the callback URI
for the workflow
When the callback
URI is called, the
workflow
immediately starts
the “first*” action
All dependent
actions in the
workflow continue
as normal
16. Actions with simple orchestration
3 ways to introduce dependences between
actions:
1. Implicitly – whenever you reference the
output of an action you’ll depend on that
action executing first
2. Explicit “dependsOn” condition – you can
mark certain actions to run only after
previous ones have completed
“dependsOn” : “twitterconnector”
3. Explicit “expression” condition – a
complex function that evaluates properties
of other actions
“expression” :
“@equals(actions(‘twitterconnector’).code,
‘InternalServerError’)”
18. Triggering a Logic app “Run”
Recurring schedule – “every X hours”
Polling an API for a response
A 200 response means “run” -- a 202 response means “wait”
Can use trigger state to get information on the previous execution
Registering an API App to “push” to a workflow
Using a custom contract implemented for API Apps
WebHook
Every workflow has an endpoint you can POST to from any web service
Supports Basic auth for simple systems
Manually
User can click the “Run Now” button in the portal
20. Repeating
Loop a single action over a list of items
Runs the action N times
You can get at all of the statuses for each action
Tip: when you have multiple collections use:
"repeat" : "@range(0,length(body('connector1')))"
…
"inputs" : "@concat(body('connector1')[repeatItem()],
body('connector2')[repeatItem()])"
21. Conditionals
Logic on a trigger or action
For triggers conditionals are post-
conditions
For actions conditionals are pre-conditions
You can do conditionals inside of repeats to
perform as a filter
22. Parameters
Dev Workflow Prod Workflow
Definition
Declares
parameters
Uri: @parameters
(‘endpoint’)
Definition
(identical)
Declares same
parameters
Uri: @parameters
(‘endpoint’)
Parameters
Provides DEV
config
Endpoint :
“http://int.mysite.n
et”
Parameters
Provides PROD
config
Endpoint :
“http://mysite.net”
• Re-using values, or even complex objects, throughout the definition, which makes it
easier to comprehend
• Separate out config from the definition itself, making sharing easy, as well as across
different environments.
23. Messages
Large message support is built-in (<100 MB)
To handle binary blobs of data you can:
1. Externalize state (save it to Azure storage)
2. Base64 encode it and return it directly in the workflow (workflows are
JSON)
All messages are archived
Retention period depends on the App Service plan
24. Debugging tips
Try calling the API App directly:
POST {gatewayURI}/api/service/invoke/{api app name}/{operation
name}?api-version=2015-01-14
x-zumo-auth : {your token}
This may be a faster way to iterate if you are seeing failures
Use requestb.in to debug triggers – you can inspect all incoming requests
Enable logging for the Web app hosting the API App
*New* you can Cancel a Run if it is failed
App Service has everything you need to build apps that target both web and mobile clients from a single app back-end.
Using API Apps, you can connect your app to dozens of popular services like Office 365 and salesforce.com in minutes, and integrate your own APIs so they can be used within any app.
And finally with Logic Apps, you can automate business processes using a simple no-code experience.
App Service has everything you need to build apps that target both web and mobile clients from a single app back-end.
Using API Apps, you can connect your app to dozens of popular services like Office 365 and salesforce.com in minutes, and integrate your own APIs so they can be used within any app.
And finally with Logic Apps, you can automate business processes using a simple no-code experience.