Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Durable Functionsを"公式ドキュメントとは違う形で"話して見る
Search
Yu_ka1984
July 18, 2018
Technology
3
860
Durable Functionsを"公式ドキュメントとは違う形で"話して見る
第13回 Tokyo Jazui Night 2018/07/18
Yu_ka1984
July 18, 2018
Tweet
Share
More Decks by Yu_ka1984
See All by Yu_ka1984
EventGridTopicで手軽にイベントドリブンを手に入れる
yukaabuno
5
1.8k
Durable Functionsの特徴をふわっと理解してみる
yukaabuno
2
160
Xamarin.Forms 使うべき?
yukaabuno
3
1.2k
Xamarin.Forms とコンソールアプリでモデル層を共通化してみた
yukaabuno
0
2.2k
Other Decks in Technology
See All in Technology
Noを伝える技術2025: 爆速合意形成のためのNICOフレームワーク速習 #pmconf2025
aki_iinuma
2
980
mablでリグレッションテストをデイリー実行するまで #mablExperience
bengo4com
0
470
Capture Checking / Separation Checking 入門
tanishiking
0
110
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
37k
タグ付きユニオン型を便利に使うテクニックとその注意点
uhyo
2
610
Modern Data Stack大好きマンが語るSnowflakeの魅力
sagara
0
270
形式手法特論:CEGAR を用いたモデル検査の状態空間削減 #kernelvm / Kernel VM Study Hokuriku Part 8
ytaka23
1
130
プロダクトマネージャーが押さえておくべき、ソフトウェア資産とAIエージェント投資効果 / pmconf2025
i35_267
2
330
たかが特別な時間の終わり / It's Only the End of Special Time
watany
2
360
「え?!それ今ではHTMLだけでできるの!?」驚きの進化を遂げたモダンHTML
riyaamemiya
10
4.4k
Ryzen NPUにおけるAI Engineプログラミング
anjn
0
210
ページの可視領域を算出する方法について整理する
yamatai1212
0
160
Featured
See All Featured
A better future with KSS
kneath
240
18k
The Invisible Side of Design
smashingmag
302
51k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Embracing the Ebb and Flow
colly
88
4.9k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
How to Ace a Technical Interview
jacobian
280
24k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Statistics for Hackers
jakevdp
799
230k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Designing Experiences People Love
moore
142
24k
Transcript
Durable Func,ons “ J 8” 7 0/30 ( 2 )
1
• twitter : @yu_ka1984 • • $ (
• !&" Azure%' # • Medium https://medium.com/@yuka1984 • $ http://tamafuyou.hatenablog.com/
None
• Durable Functions • Durable Functions •
• • Durable Func-ons •
• Azure Functions / •
"%+(, Durable FunctionsAzure Functions# -*! .Durable Functions( Azure Functions0&$' )&
Durable Functions 4 1. 2 32 4. 2 32 4.
4 . . . 4. 34 . 1. 4. 34 . 13
Durable Functions3 • Activity • ! API
DB • Orchestrator • Activity # Activity$ ! • Starter • Orchestrator "
Activity h"ps://gist.github.com/yuka1984/4df7d7f8b44357f3d4a4b23be46fdce2
Orchestrator https://gist.github.com/yuka1984/347bead2c0720ab1c4de3e8ca9ea91d 5
Starter https://gist.github.com/yuka1984/42af948abb75892461c2a206f8ff5b87
Durable Functions • (&%# (&%#$ Orchestrator/41+
• '# '#$ Activity/41+ • $!% OrchestratorActivity 1+586; • ((!% 37 Orchestrator 1+9:6; • "!&! ActivityOrchestrator .*0 ) -, !&! 2<
Starter48G OrchestratorD6 !0'.- +G +*%$"0
+ (#',&)-OrchestratorD6@F !0'.- + +',Orchestrator48G CallAc.vity4852/ +*%$"(Ac.vity?9G1 78E)0 + / +',Orchestrator ;3 Ac.vity4852 Aci.vity52>B(#',&)-@F !0'.- +*%$"0 + !0'.- + +',Orchestrator48G <G CallAc.vity 52: H(#',&)-@F Aci.vity>BI= OrchestratorACallAc.vity4852(ry OrchestratorCJ
Durable Funcitons 1. ! ! )&" 2. Azure Functions ('
3. 3%$ #Azure Functions(' Durable Functions
,1#0-3!/ 2!/)!/ !/?=9 "0*)$2+'2.( &%+'2@>7;8
Durable Functions46.(&%+'25<"0 *)$2+'2:;8
Durable Functions95 @?36$1'#1 • '*(/#'#1
• ,+";A8:4'#1 • <7%.1 -1'#1 • "!,.!1%"'&'#1 >= )02 http://tamafuyou.hatenablog.com/
'/ ,& ""0+.
,&%* + $ #) Durable Func,ons-1( !
Azure Functions Azure Func*ons&+ host.jsonFunc*onApp(" !6#) *" 4'2/
• Func*onApp%$(" .Func*on5(",3 ! • Excep*on01- (" ! • "!6 !
Azure Functions Durable Func,onsOrchestrator ! • CallAc,vityWithRetryAsync •
CallSubOrchestratorWithRetryAsync • try-catch-finary
≒
if / if else / else / switch
for / foreach / while / do-while continue / break
linq
try-catch / try-finaly / try-catch-finaly
CreateTimer
WaitForExternalEvent / RaiseEventAsync
Task.WhenAll / Task.WhenAny
KG/).F 1. OrchestratorQ>7D? '%Table<T 2. 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
Durable Functions - - • &' )
$ (* ! • (* ! • "#%" (* !
όοΫΤϯυॲཧΛॊೈʹߗ͘࡞ΕΔ ͦΕ͕ ʮ%VSBCMF'VODUJPOTʯ
Durable Func,ons
$-/&0 EC +" *# • ).
• EC • ' • 21(, 3% 4 !
7EC&#,%Azure Functions81 !&*" "$.9A=@< E - !'"
66):0CD2 6 (+;>/?5B 34 Durable Functions
• 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
))B Func%ons31.,52H$ 6:@ 8F)(C# %= "& %w)!A+ www
Preview E< 57*GA;?(' -450/>D+ G9
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
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
Durable Func,ons • Application Insights!4: • EventGrid+0Orchestrator)$684: • <9#'(running68Orchestrator
&% ! ,1Instance "Orchestrator)$68*; " "4: 7 Instance "$-. FunctionApp35 4:$2 /=
Durable Func,ons • ( 'E6@ KH93 • Orchestrator/;
1@ %!")'#*= • 2<NFC.G4B-J?>7:")'$ • PrecompileFunctions& (ASingletonAttribute A OLE6+0,I- 5M D8
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)
Durable Functions • :E@; #*/LAHJMK;= 7I • )/>C3 F;5R 863
B< • Durable FunctionsLA1'+"%D • Durable FunctionsAzure Storage@; PAzure Storage49 O2NG?()-0!,$.&" • V1(.NET Framework)QGA V2Preview
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
Durable Func,ons • 2?6"&%( • #'%:@4/ • 7;=:@4/ • 6.
!"$)8* • 39=>9=,<"' 15 *0 -+A
Github