Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Amazon Simple Workflow Casual
Search
Kenichi Takahashi
November 01, 2013
Programming
790
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Amazon Simple Workflow Casual
AWS Casual Talks #1 LT
Kenichi Takahashi
November 01, 2013
More Decks by Kenichi Takahashi
See All by Kenichi Takahashi
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.5k
実践、マルチクラウド環境でのコスト管理の現状と未来
kenchan
0
220
エンジニアリング 💰Moneyジャー / Engineering Money-ger
kenchan
3
1.1k
Lv1,2の開発生産性を経営と繋ぐ
kenchan
4
2.2k
「トップ10プランナー」からはじめる目標設定
kenchan
5
4.5k
負債と言わないことが負債と向き合うこと
kenchan
5
4.8k
可用性No.1へ!「カラーミーショップ」のリ・アーキテクティング
kenchan
0
200
カラーミーショップは私たちが作っています
kenchan
0
1.8k
カラーミーショップ 2022 / COLORME SHOP 2022
kenchan
0
760
Other Decks in Programming
See All in Programming
yield再入門 #phpcon
o0h
PRO
0
1.1k
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.7k
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
240
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
190
仕様駆動開発の消費期限
watany
20
8.5k
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
1
120
AIが無かった頃の素敵な出会いの話
codmoninc
1
450
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
180
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
560
今さら聞けない .NET CLI
htkym
0
200
the container ship “Apple Silicon”@WWDC26 Recap -Japan-\(region).swift
shingangan
0
130
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
270
Featured
See All Featured
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
420
Into the Great Unknown - MozCon
thekraken
41
2.7k
WCS-LA-2024
lcolladotor
0
800
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
630
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
170
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
800
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Darren the Foodie - Storyboard
khoart
PRO
3
3.6k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
270
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.1k
Transcript
ג ӬγεςϜϚωδϝϯτ ∁ڮ݈Ұ LFOUBLBIBTIJ!FTNDPKQ IUUQTIVDSFBNOFU "84$BTVBM5BMLT "NB[PO 4JNQMF8PSLqPX $BTVBM
ࣗݾհ ,FOJDIJ5",")"4)* IUUQTIVDSFBNOFU UXJUUFS!LFODIBO HJUIVCLFODIBO ! (FOUPP 'VOUPP -JOVY 5JMJOH8JOEPX.BOBHFS
,JOFTJT$POUPVSFE,FZCPBSE ! ఏಜ ϦϯΨധ ޫͷઓ࢜ ϰΝφσΟʔϧ
ɹIUUQJEPCBUBJP
ँࣙ
"NB[PO4JNQMF8PSLqPX Λ"844%,GPS3VCZ͔Β ͍ɺ"DUJWJUZ5BTLΛඇಉظ ʹྃͤ͞ΔΈΛ࡞Δ͜ͱͰ ༷ʑͳ՝Λղܾͨ͠Λ͠·͢ɻ ࠓͷ͓
͓ख͍͍ͯ͠Δ4BOTBO༷ ͷʮͱ͋ΔγεςϜʯͰ 4JNQMF8PSLqPX͕γε ςϜͷத֩Λ୲͓ͬͯΓɺ ̔ສͷϫʔΫϑϩʔΛຖ࣮ ߦ͍ͯ͠·͢ɻ ࠓͷ͓ͷิ
ͳͥ4JNQMF8PSLqPX
ͳͥ4JNQMF8PSLqPX "NB[PO4JNQMF8PSLqPX ͍ͬͯ͏৽͍͠αʔϏε͕͋ΔΈ ͍ͨͳΜ͚ͩͲʜ
w ్தͰਓखΛೖΕ͍ͨ w ༏ઌʹΑͬͯॲཧ͢Δॱ ൪Λ੍ޚ͍ͨ͠ w ్தͰ·ͱΊͯόονॲཧ ͍ͨ͠ w ݴޠ3VCZ
՝
w ్தͰਓखΛೖΕ͍ͨ w ༏ઌʹΑͬͯॲཧ͢Δॱ ൪Λ੍ޚ͍ͨ͠ w ్தͰ·ͱΊͯόονॲཧ ͍ͨ͠ w ݴޠ3VCZ
՝
IUUQEIBUFOBOFKQDLBUBZBNB
'MPX'SBNFXPSL3FDJQFT
ʂʂʂ
w ్தͰਓखΛೖΕ͍ͨ w ༏ઌʹΑͬͯॲཧ͢Δॱ ൪Λ੍ޚ͍ͨ͠ w ్தͰ·ͱΊͯόονॲཧ ͍ͨ͠ w ݴޠ3VCZ
՝
جຊҰݸྲྀ͠Ͱॱ൪ʹ
جຊҰݸྲྀ͠Ͱॱ൪ʹ ʮ͓ٸ͗ศʯ ʮ·ͱΊͯൃૹʯ Ͳ͏࣮ݱ͠Α͏ʁ
4JNQMF8PSLqPXͷػೳ
4JNQMF8PSLqPXͷػೳ ΞΫςΟϏςΟͷதͰ ࣗͨͪͰ ࣮͠ͳ͍ͱ͍͚ͳ͍
w ్தͰਓखΛೖΕ͍ͨ w ༏ઌʹΑͬͯॲཧ͢Δॱ ൪Λ੍ޚ͍ͨ͠ w ్தͰ·ͱΊͯόονॲཧ ͍ͨ͠ w ݴޠ3VCZ
՝
"844JNQMF8PSLqPX "DUJWJUZ5BTLΛӬଓԽͰ ͖ΔΑ͏ʹ͢Δ ղܾҊTUFQ
w ͪঢ়ଶͷλεΫΛϝϞϦ ্ʹ͞ͳͯ͘Α͍ w ࣮ࡍʹॲཧ͢Δॱ൪ɺ୯Ґ Λ੍ޚͰ͖Δ ӬଓԽ͕Ͱ͖Δͱʜ
"DUJWJUZ5BTL͔Βඞཁͳ ใΛ+40/ܗࣜͰऔΓग़͠ɺ%# ʹอଘ͓ͯ͘͠ɻλεΫΛྃ ͤ͞Δࡍʹɺͦͷใ͔ΒΦ ϒδΣΫτΛ෮ݩ͢Δɻ "DUJWJUZ5BTLΛ%#ʹอଘ
NZ@BDUJWJUZ@UBTLSC class MyActivityTask < SimpleDelegator! def initialize(original_activity_task)! super original_activity_task! end!
...! def to_json! to_hash.to_json! end! ! def to_hash! {! 'taskToken' => task_token,! 'activityId' => activity_id,! 'startedEventId' => started_event_id,! ! 'activityType' => {! 'name' => activity_type.name,! 'version' => activity_type.version,! },! ! 'workflowExecution' => {! 'workflowId' => workflow_execution.workflow_id,! 'runId' => workflow_execution.run_id,! }! ! ‘task_info' => {! # set custom task_info! }! }! end!
NZ@BDUJWJUZ@UBTLSC class MyActivityTask < SimpleDelegator! ...! def self.create_from_attributes(domain, attributes)! aws_attributes
= attributes.except('task_info')! swf_activity_task = AWS::SimpleWorkflow::ActivityTask.new(! domain,! aws_attributes,! {}! )! ! task = self.new(swf_activity_task)! ! if task_info = attributes['task_info']! # set custom task_info! end! ! task! end! end
1SPEVDFS$POTVNFS ύλʔϯΛద༻ͯ͠ɺ࣮ࡍͷ ॲཧॱ൪ͷ੍ޚɺόονॲ ཧΛ࣮͢Δɻ ղܾҊTUFQ
http://www.hyuki.com/dp/dpinfo.html#ProducerConsumer
"8448"DUJWJUZ5BTL $PMMFDUJPOQPMM·ͨ QPMM@TJOHMF@UBTLΛ͍ɺ 48'͔ΒλεΫΛऔಘͯ͠%# ʹอଘ͢Δ͚ͩɻ 1SPEVDFS
BDUJWJUZ@UBTL@QSPEVDFS@CBTFSC class ActivityTaskProducerBase! ...! def process_next_task!! activity_task = activity_task_list.poll_for_single_task! !
process!(MyActivityTask.new(activity_task))! end! ! def process!(my_activity_task)! MyTaskMode.create(! task_info: my_activity_task.to_json,! # other attributes! )! end! end
λεΫΛҙͷॱ൪ɺ·ͱ· ΓͰॲཧΛߦ͍ɺ"84 48"DUJWJUZ5BTLDPN QMFUFΛݺͼग़͠ɺλεΫΛ ࣍ਐΊΔɻ $POTVNFS
TBNQMF@DPOTVNFSSC
"DUJWJUZ5BTLΛӬଓԽ͢Δ ͜ͱͰɺ48'ͱͷΠϯλ ϑΣʔεʹ1SPEVDFS $POTVNFSύλʔϯΛద༻ ͠ɺࠓճͷ՝ղܾͰ͖· ͨ͠ɻ ·ͱΊ
w ్தͰਓखΛೖΕ͍ͨ w ༏ઌʹΑͬͯॲཧ͢Δॱ ൪Λ੍ޚ͍ͨ͠ w ్தͰ·ͱΊͯόονॲཧ ͍ͨ͠ w ݴޠ3VCZ
՝
ϫʔΫϑϩʔͷ్தͰਓखΛೖΕΔ ͚ͩͰ͋Ε'MPX'SBNFXPSL Λ͏͜ͱͰ؆୯ʹ࣮ݱͰ͖·͕͢ɺ ్தͰόονॲཧΛڬΉ߹ɺॲ ཧ͢Δॱ൪ΛೖΕସ͍͑ͨͱ͍͏༻ ͕݅͋Δ߹ࣗલͰ࣮͢Δඞཁ ͕͋Γ·͢ɻ ·ͱΊ
&OKPZ$PEJOH