Slide 1

Slide 1 text

Durable Func,ons “ J 8” 7 0/30 ( 2 ) 1

Slide 2

Slide 2 text

• twitter : @yu_ka1984 • • $ ( • !&"Azure%' # • Medium https://medium.com/@yuka1984 • $ http://tamafuyou.hatenablog.com/

Slide 3

Slide 3 text

Slide 4

Slide 4 text

Slide 5

Slide 5 text

Slide 6

Slide 6 text

Slide 7

Slide 7 text

Slide 8

Slide 8 text

Slide 9

Slide 9 text

Slide 10

Slide 10 text

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

• Durable Functions • Durable Functions •

Slide 13

Slide 13 text

• • Durable Func-ons •

Slide 14

Slide 14 text

• Azure Functions / • "%+(, Durable FunctionsAzure Functions# -*! .Durable Functions(Azure Functions0&$' )&

Slide 15

Slide 15 text

Durable Functions 4 1. 2 32 4. 2 32 4. 4 . . . 4. 34 . 1. 4. 34 . 13

Slide 16

Slide 16 text

Durable Functions3 • Activity • ! API DB • Orchestrator • Activity # Activity$ ! • Starter • Orchestrator "

Slide 17

Slide 17 text

Activity h"ps://gist.github.com/yuka1984/4df7d7f8b44357f3d4a4b23be46fdce2

Slide 18

Slide 18 text

Orchestrator https://gist.github.com/yuka1984/347bead2c0720ab1c4de3e8ca9ea91d 5

Slide 19

Slide 19 text

Starter https://gist.github.com/yuka1984/42af948abb75892461c2a206f8ff5b87

Slide 20

Slide 20 text

Durable Functions • (&%# (&%#$Orchestrator/41+ • '# '#$Activity/41+ • $!% OrchestratorActivity 1+586; • ((!% 37 Orchestrator 1+9:6; • "!&! ActivityOrchestrator .*0 ) -,!&!2<

Slide 21

Slide 21 text

Starter48GOrchestratorD6 !0'.- +G +*%$"0 + (#',&)-OrchestratorD6@F !0'.- + +',Orchestrator48G CallAc.vity4852/ +*%$"(Ac.vity?9G1 78E)0 + / +',Orchestrator ;3Ac.vity4852 Aci.vity52>B(#',&)-@F !0'.- +*%$"0 + !0'.- + +',Orchestrator48G <GCallAc.vity 52: H(#',&)[email protected]>BI= OrchestratorACallAc.vity4852(ry OrchestratorCJ

Slide 22

Slide 22 text

Slide 23

Slide 23 text

Durable Funcitons 1. ! ! )&" 2. Azure Functions (' 3. 3%$ #Azure Functions(' Durable Functions

Slide 24

Slide 24 text

,1#0-3!/ 2!/)!/ !/?=9 "0*)$2+'2.( &%+'2@>7;8 Durable Functions46.(&%+'25<"0 *)$2+'2:;8

Slide 25

Slide 25 text

Durable Functions95 @?36$1'#1 • '*(/#'#1 • ,+";A8:4'#1 • <7%.1 -1'#1 • "!,.!1%"'&'#1 >= )02 http://tamafuyou.hatenablog.com/

Slide 26

Slide 26 text

'/ ,& ""0+. ,&%* + $#) Durable Func,ons-1( !

Slide 27

Slide 27 text

Slide 28

Slide 28 text

Azure Functions Azure Func*ons&+ host.jsonFunc*onApp(" !6#) *" 4'2/ • Func*onApp%$(".Func*on5(",3 ! • Excep*on01-(" ! • "!6 !

Slide 29

Slide 29 text

Azure Functions Durable Func,onsOrchestrator ! • CallAc,vityWithRetryAsync • CallSubOrchestratorWithRetryAsync • try-catch-finary

Slide 30

Slide 30 text

Slide 31

Slide 31 text

Slide 32

Slide 32 text

if / if else / else / switch

Slide 33

Slide 33 text

for / foreach / while / do-while continue / break linq

Slide 34

Slide 34 text

try-catch / try-finaly / try-catch-finaly

Slide 35

Slide 35 text

CreateTimer

Slide 36

Slide 36 text

WaitForExternalEvent / RaiseEventAsync

Slide 37

Slide 37 text

Task.WhenAll / Task.WhenAny

Slide 38

Slide 38 text

Slide 39

Slide 39 text

KG/).F 1. OrchestratorQ>7D? '%Table

Slide 40

Slide 40 text

Durable Functions - - • &' ) $ (*! • (*! • "#%"(*!

Slide 41

Slide 41 text

όοΫΤϯυॲཧΛॊೈʹߗ͘࡞ΕΔ ͦΕ͕ ʮ%VSBCMF'VODUJPOTʯ

Slide 42

Slide 42 text

Durable Func,ons

Slide 43

Slide 43 text

$-/&0 EC +"*# • ). • EC • ' • 21(, 3% 4 !

Slide 44

Slide 44 text

7EC,%Azure Functions81 !&*" "$.9A=@< E -!'" 66):0CD2 6(+;>/?5B 34 Durable Functions

Slide 45

Slide 45 text

• AL]APIVE$S"1015= "89(693 9( ! • MQ,/-,0-$1BGN 2B>0-GN ]API ! • RAPI>?[IK;7'&,1"&6$X, 8.179( ! • VE48:ZUO=d ! • WJ169*'+59$<TH@= ! bc48$)2"Y`D716%]_C " Durable Func4ons$^F# \Ca"P

Slide 46

Slide 46 text

))B Func%ons31.,52H$6:@ 8F)(C# %= "& %w)!A+ www Preview E< 57*GA;?(' -450/>D+ G9

Slide 47

Slide 47 text

Slide 48

Slide 48 text

M oT M m lM D v C B t a g rG v bifh b M F F wp g cea n us M C

Slide 49

Slide 49 text

Durable Functions Durable Functions"*1%8/7A<79 59+9 F> =D:(0739)H> ;E@ VSTSC? TaskhubName(Durable Functions,$49IJ ).6*IJLB :.6*-&!$9 ;Azure FunctionsSlot (Preview)(07 %8&0 .6*#%'2GK

Slide 50

Slide 50 text

Durable Func,ons • Application Insights!4: • EventGrid+0Orchestrator)$684: • <9#'(running68Orchestrator &% ! ,1Instance "Orchestrator)$68*; " "4:7 Instance "$-. FunctionApp35 4:$2 /=

Slide 51

Slide 51 text

Durable Func,ons • ( 'E6@ KH93 • Orchestrator/; 1@ %!")'#*= • 27:")'$ • PrecompileFunctions& (ASingletonAttribute AOLE6+0,I- 5M D8

Slide 52

Slide 52 text

Durable Func,ons • !/ • Durable Func-ons),Orchestrator7,!*5 #%7,!3 • Ac-vityDI(Func-ons"& &0. !( • EndToEnd!%$host+' func-ons- ( 2(Durable Func-ons!41 6)

Slide 53

Slide 53 text

Durable Functions • :E@;#*/LAHJMK;= 7I • )/>C3 F;5R863 B< • Durable FunctionsLA1'+"%D • Durable FunctionsAzure Storage@;PAzure Storage49 O2NG?()-0!,$.&" • V1(.NET Framework)QGA V2Preview

Slide 54

Slide 54 text

Durable Func,ons AppService or • E>B> • MLK485IO 9 ;6?%$1 "( !2%&2% <7C • AppService+/2%$1 '+ %$1 " ( : )*#,2% JNA • @H-.03LFG=MLK4+/2 JD

Slide 55

Slide 55 text

Durable Func,ons • 2?6"&%( • #'%:@4/ • 7;=:@4/ • 6. !"$)8* • 39=>9=,<"' 15 *0 -+A

Slide 56

Slide 56 text

Github

Slide 57

Slide 57 text