Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Durable Functionsを"公式ドキュメントとは違う形で"話して見る

Durable Functionsを"公式ドキュメントとは違う形で"話して見る

第13回 Tokyo Jazui Night 2018/07/18

Yu_ka1984

July 18, 2018
Tweet

More Decks by Yu_ka1984

Other Decks in Technology

Transcript

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

    View Slide


  2. • twitter : @yu_ka1984

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

    View Slide




  3. View Slide


  4. View Slide



  5. View Slide



  6. View Slide



  7. View Slide



  8. View Slide



  9. View Slide



  10. View Slide

  11. View Slide


  12. • Durable Functions

    • Durable Functions

    View Slide



  13. • Durable Func-ons


    View Slide



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

    View Slide

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

    View Slide

  16. Durable Functions3

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  20. Durable Functions

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

    View Slide



  21. 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

    View Slide



  22. View Slide

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

    View Slide



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

    View Slide



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

    View Slide



  26. '/ ,& ""0+.


    ,&%* + $#)
    Durable Func,ons-1( !

    View Slide



  27. View Slide

  28. Azure Functions
    Azure Func*ons&+
    host.jsonFunc*onApp(" !6#)
    *"


    4'2/

    • Func*onApp%$(".Func*on5(",3
    !
    • Excep*on01-(" !
    • "!6
    !

    View Slide

  29. Azure Functions
    Durable Func,onsOrchestrator

    !
    • CallAc,vityWithRetryAsync
    • CallSubOrchestratorWithRetryAsync
    • try-catch-finary

    View Slide



  30. View Slide







  31. View Slide

  32. if / if else / else / switch

    View Slide

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

    View Slide

  34. try-catch / try-finaly / try-catch-finaly

    View Slide

  35. CreateTimer

    View Slide

  36. WaitForExternalEvent / RaiseEventAsync

    View Slide

  37. Task.WhenAll / Task.WhenAny

    View Slide



  38. View Slide


  39. KG/).F
    1. OrchestratorQ>7D? '%Table2.
    A:API'%S
    3.
    A:API$#L8-(,[XUY
    65M=2O
    Slack
    I;NV@*&$"RB
    4. Slack*&$"HZ -0-&2M=WA:API
    $#I;
    5.

    *&$"JY-0-&
    65
    I;51E
    94 65PC(,0 !+04 3M=JY
    https://gist.github.com/yuka1984/c5779a0e3d070a4c6e2cf72fe46ae41d#file-orchestrator-cs

    View Slide

  40. Durable Functions - -
    • &'
    )
    $

    (*!
    • (*!
    • "#%"(*!

    View Slide

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

    View Slide


  42. Durable Func,ons

    View Slide



  43. $-/&0 EC +"*#
    • ).
    • EC

    '
    • 21(,
    3% 4 !

    View Slide


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

    View Slide


  45. • 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

    View Slide


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

    View Slide


  47. View Slide


  48. 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

    View Slide

  49. 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

    View Slide

  50. Durable Func,ons

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

    View Slide

  51. Durable Func,ons

    • ( 'E6@ KH93
    • Orchestrator/; 1@
    %!")'#*=

    • 27:")'$
    • PrecompileFunctions& (ASingletonAttribute
    AOLE6+0,I-
    5M D8

    View Slide

  52. 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)

    View Slide

  53. Durable Functions
    • :E@;#*/LAHJMK;=

    7I
    • )/>C3 F;5R863 B<

    • Durable FunctionsLA1'+"%D
    • Durable FunctionsAzure Storage@;PAzure Storage49
    O2NG?()-0!,$.&"
    • V1(.NET Framework)QGA
    V2Preview

    View Slide

  54. 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

    View Slide

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

    View Slide

  56. Github

    View Slide



  57. View Slide