Created
September 29, 2020 21:19
-
-
Save nabinno/286a5c6e95d400e5e89997d0714bb87b to your computer and use it in GitHub Desktop.
AWS Lambdaの裏側をなるだけ詳しく解説してみる - https://www.keisuke69.net/entry/2020/09/29/131203
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@startuml | |
skinparam monochrome true | |
skinparam backgroundColor #EEEEEE | |
control ALB as LB | |
actor "Front\nEnd" as FE | |
actor "Counting\nService" as CS | |
actor "Worker\nManager" as WM | |
actor Worker as W | |
actor "Placement\nService" as PS | |
actor Poller as P | |
actor "State Manager\nStream Tracker" as SM | |
actor "Leasing\nService" as LS | |
collections SQS as Q | |
group 同期実行 | |
LB -> FE | |
activate LB | |
activate FE | |
FE -> WM: |Request|\n- Reserve Sandbox | |
deactivate FE | |
activate WM | |
alt 初回呼出 | |
WM -> PS | |
deactivate WM | |
activate PS | |
PS -> W | |
deactivate PS | |
activate W | |
end | |
W -> W: |Invoke| | |
deactivate W | |
end | |
group 非同期実行/スケールアップ | |
LB -> FE | |
deactivate LB | |
activate FE | |
FE -> Q: |SendMessage| | |
deactivate FE | |
activate Q | |
group スケールアップ | |
SM -> Q: Workを探索 | |
activate SM | |
alt 関数の同時実行数の設定が小さい場合 | |
SM -> LS | |
activate LS | |
LS -> P: Pollerの割当を作成\n(Poller Assignment Dataに書込) | |
activate P | |
else | |
SM -> Q: 新たにdedicatedなキューを作成 | |
deactivate SM | |
end | |
end | |
LS -> P: ヘルスチェック | |
deactivate LS | |
P -> Q: |ReceiveMessage|\n|DeleteMessage| | |
deactivate Q | |
P -> FE: |Invoke| | |
deactivate P | |
activate FE | |
group 非同期実行 | |
FE -> WM: |Request|\n- Reserve Sandbox | |
deactivate FE | |
activate WM | |
alt 初回呼出 | |
WM -> PS | |
deactivate WM | |
activate PS | |
PS -> W | |
deactivate PS | |
activate W | |
end | |
W -> W: |Invoke| | |
deactivate W | |
end | |
end | |
@enduml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="979px" preserveAspectRatio="none" style="width:835px;height:979px;background:#EEEEEE;" version="1.1" viewBox="0 0 835 979" width="835px" zoomAndPan="magnify"><defs><filter height="300%" id="f1r0r7o9xo1bto" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="198.6641" style="stroke: #383838; stroke-width: 1.0;" width="10" x="34" y="142.7266"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="48.2656" style="stroke: #383838; stroke-width: 1.0;" width="10" x="81" y="142.7266"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="33.1328" style="stroke: #383838; stroke-width: 1.0;" width="10" x="81" y="341.3906"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="72.3984" style="stroke: #383838; stroke-width: 1.0;" width="10" x="81" y="665.8516"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="38.1328" style="stroke: #383838; stroke-width: 1.0;" width="10" x="230" y="190.9922"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="38.1328" style="stroke: #383838; stroke-width: 1.0;" width="10" x="230" y="738.25"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="46.1328" style="stroke: #383838; stroke-width: 1.0;" width="10" x="300.5" y="243.125"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="46.1328" style="stroke: #383838; stroke-width: 1.0;" width="10" x="300.5" y="790.3828"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="14" style="stroke: #383838; stroke-width: 1.0;" width="10" x="377.5" y="229.125"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="14" style="stroke: #383838; stroke-width: 1.0;" width="10" x="377.5" y="776.3828"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="155.6641" style="stroke: #383838; stroke-width: 1.0;" width="10" x="449" y="510.1875"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="113.5313" style="stroke: #383838; stroke-width: 1.0;" width="10" x="536.5" y="427.7891"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="118.5313" style="stroke: #383838; stroke-width: 1.0;" width="10" x="677" y="465.9219"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="258.1953" style="stroke: #383838; stroke-width: 1.0;" width="10" x="763.5" y="374.5234"/><rect fill="#EEEEEE" filter="url(#f1r0r7o9xo1bto)" height="184.6641" style="stroke: #000000; stroke-width: 2.0;" width="429" x="13" y="119.5938"/><rect fill="#EEEEEE" filter="url(#f1r0r7o9xo1bto)" height="45.1328" style="stroke: #000000; stroke-width: 2.0;" width="240" x="192" y="205.9922"/><rect fill="#EEEEEE" filter="url(#f1r0r7o9xo1bto)" height="540.2578" style="stroke: #000000; stroke-width: 2.0;" width="811" x="13" y="318.2578"/><rect fill="#EEEEEE" filter="url(#f1r0r7o9xo1bto)" height="166.7969" style="stroke: #000000; stroke-width: 2.0;" width="402" x="412" y="389.5234"/><rect fill="#EEEEEE" filter="url(#f1r0r7o9xo1bto)" height="106.5313" style="stroke: #000000; stroke-width: 2.0;" width="382" x="422" y="442.7891"/><rect fill="#EEEEEE" height="31.1328" style="stroke: none; stroke-width: 1.0;" width="382" x="422" y="518.1875"/><rect fill="#EEEEEE" filter="url(#f1r0r7o9xo1bto)" height="170.6641" style="stroke: #000000; stroke-width: 2.0;" width="387" x="55" y="680.8516"/><rect fill="#EEEEEE" filter="url(#f1r0r7o9xo1bto)" height="45.1328" style="stroke: #000000; stroke-width: 2.0;" width="240" x="192" y="753.25"/><line style="stroke: #383838; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="39" x2="39" y1="102.5938" y2="875.5156"/><line style="stroke: #383838; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="86" x2="86" y1="102.5938" y2="875.5156"/><line style="stroke: #383838; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="151" x2="151" y1="102.5938" y2="875.5156"/><line style="stroke: #383838; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="235" x2="235" y1="102.5938" y2="875.5156"/><line style="stroke: #383838; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="305" x2="305" y1="102.5938" y2="875.5156"/><line style="stroke: #383838; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="382" x2="382" y1="102.5938" y2="875.5156"/><line style="stroke: #383838; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="454" x2="454" y1="102.5938" y2="875.5156"/><line style="stroke: #383838; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="541" x2="541" y1="102.5938" y2="875.5156"/><line style="stroke: #383838; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="681.5" x2="681.5" y1="102.5938" y2="875.5156"/><line style="stroke: #383838; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="768" x2="768" y1="102.5938" y2="875.5156"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="26" x="23" y="99.292">ALB</text><ellipse cx="39" cy="70.2969" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="12" ry="12" style="stroke: #383838; stroke-width: 2.0;"/><polygon fill="#383838" points="35,58.2969,41,53.2969,39,58.2969,41,63.2969,35,58.2969" style="stroke: #383838; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="26" x="23" y="887.5107">ALB</text><ellipse cx="39" cy="906.8125" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="12" ry="12" style="stroke: #383838; stroke-width: 2.0;"/><polygon fill="#383838" points="35,894.8125,41,889.8125,39,894.8125,41,899.8125,35,894.8125" style="stroke: #383838; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="36" x="65" y="82.9951">Front</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="27" x="69.5" y="99.292">End</text><ellipse cx="86" cy="13" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M86,21 L86,48 M73,29 L99,29 M86,48 L73,63 M86,48 L99,63 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="36" x="65" y="887.5107">Front</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="27" x="69.5" y="903.8076">End</text><ellipse cx="86" cy="917.1094" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M86,925.1094 L86,952.1094 M73,933.1094 L99,933.1094 M86,952.1094 L73,967.1094 M86,952.1094 L99,967.1094 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="63" x="117" y="82.9951">Counting</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="50" x="123.5" y="99.292">Service</text><ellipse cx="151.5" cy="13" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M151.5,21 L151.5,48 M138.5,29 L164.5,29 M151.5,48 L138.5,63 M151.5,48 L164.5,63 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="63" x="117" y="887.5107">Counting</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="50" x="123.5" y="903.8076">Service</text><ellipse cx="151.5" cy="917.1094" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M151.5,925.1094 L151.5,952.1094 M138.5,933.1094 L164.5,933.1094 M151.5,952.1094 L138.5,967.1094 M151.5,952.1094 L164.5,967.1094 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="49" x="207.5" y="82.9951">Worker</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="60" x="202" y="99.292">Manager</text><ellipse cx="235" cy="13" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M235,21 L235,48 M222,29 L248,29 M235,48 L222,63 M235,48 L248,63 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="49" x="207.5" y="887.5107">Worker</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="60" x="202" y="903.8076">Manager</text><ellipse cx="235" cy="917.1094" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M235,925.1094 L235,952.1094 M222,933.1094 L248,933.1094 M235,952.1094 L222,967.1094 M235,952.1094 L248,967.1094 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="49" x="278" y="99.292">Worker</text><ellipse cx="305.5" cy="29.2969" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M305.5,37.2969 L305.5,64.2969 M292.5,45.2969 L318.5,45.2969 M305.5,64.2969 L292.5,79.2969 M305.5,64.2969 L318.5,79.2969 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="49" x="278" y="887.5107">Worker</text><ellipse cx="305.5" cy="900.8125" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M305.5,908.8125 L305.5,935.8125 M292.5,916.8125 L318.5,916.8125 M305.5,935.8125 L292.5,950.8125 M305.5,935.8125 L318.5,950.8125 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="73" x="343" y="82.9951">Placement</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="50" x="354.5" y="99.292">Service</text><ellipse cx="382.5" cy="13" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M382.5,21 L382.5,48 M369.5,29 L395.5,29 M382.5,48 L369.5,63 M382.5,48 L395.5,63 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="73" x="343" y="887.5107">Placement</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="50" x="354.5" y="903.8076">Service</text><ellipse cx="382.5" cy="917.1094" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M382.5,925.1094 L382.5,952.1094 M369.5,933.1094 L395.5,933.1094 M382.5,952.1094 L369.5,967.1094 M382.5,952.1094 L395.5,967.1094 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="38" x="432" y="99.292">Poller</text><ellipse cx="454" cy="29.2969" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M454,37.2969 L454,64.2969 M441,45.2969 L467,45.2969 M454,64.2969 L441,79.2969 M454,64.2969 L467,79.2969 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="38" x="432" y="887.5107">Poller</text><ellipse cx="454" cy="900.8125" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M454,908.8125 L454,935.8125 M441,916.8125 L467,916.8125 M454,935.8125 L441,950.8125 M454,935.8125 L467,950.8125 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="100" x="488.5" y="82.9951">State Manager</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="105" x="486" y="99.292">Stream Tracker</text><ellipse cx="541.5" cy="13" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M541.5,21 L541.5,48 M528.5,29 L554.5,29 M541.5,48 L528.5,63 M541.5,48 L554.5,63 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="100" x="488.5" y="887.5107">State Manager</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="105" x="486" y="903.8076">Stream Tracker</text><ellipse cx="541.5" cy="917.1094" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M541.5,925.1094 L541.5,952.1094 M528.5,933.1094 L554.5,933.1094 M541.5,952.1094 L528.5,967.1094 M541.5,952.1094 L554.5,967.1094 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="53" x="652.5" y="82.9951">Leasing</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="50" x="654" y="99.292">Service</text><ellipse cx="682" cy="13" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M682,21 L682,48 M669,29 L695,29 M682,48 L669,63 M682,48 L695,63 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="53" x="652.5" y="887.5107">Leasing</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="50" x="654" y="903.8076">Service</text><ellipse cx="682" cy="917.1094" fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" rx="8" ry="8" style="stroke: #383838; stroke-width: 2.0;"/><path d="M682,925.1094 L682,952.1094 M669,933.1094 L695,933.1094 M682,952.1094 L669,967.1094 M682,952.1094 L695,967.1094 " fill="none" filter="url(#f1r0r7o9xo1bto)" style="stroke: #383838; stroke-width: 2.0;"/><rect fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" height="30.2969" style="stroke: #383838; stroke-width: 1.5;" width="43" x="747" y="63.2969"/><rect fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" height="30.2969" style="stroke: #383838; stroke-width: 1.5;" width="43" x="743" y="67.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="29" x="750" y="87.292">SQS</text><rect fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" height="30.2969" style="stroke: #383838; stroke-width: 1.5;" width="43" x="747" y="874.5156"/><rect fill="#F8F8F8" filter="url(#f1r0r7o9xo1bto)" height="30.2969" style="stroke: #383838; stroke-width: 1.5;" width="43" x="743" y="878.5156"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="29" x="750" y="898.5107">SQS</text><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="198.6641" style="stroke: #383838; stroke-width: 1.0;" width="10" x="34" y="142.7266"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="48.2656" style="stroke: #383838; stroke-width: 1.0;" width="10" x="81" y="142.7266"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="33.1328" style="stroke: #383838; stroke-width: 1.0;" width="10" x="81" y="341.3906"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="72.3984" style="stroke: #383838; stroke-width: 1.0;" width="10" x="81" y="665.8516"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="38.1328" style="stroke: #383838; stroke-width: 1.0;" width="10" x="230" y="190.9922"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="38.1328" style="stroke: #383838; stroke-width: 1.0;" width="10" x="230" y="738.25"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="46.1328" style="stroke: #383838; stroke-width: 1.0;" width="10" x="300.5" y="243.125"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="46.1328" style="stroke: #383838; stroke-width: 1.0;" width="10" x="300.5" y="790.3828"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="14" style="stroke: #383838; stroke-width: 1.0;" width="10" x="377.5" y="229.125"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="14" style="stroke: #383838; stroke-width: 1.0;" width="10" x="377.5" y="776.3828"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="155.6641" style="stroke: #383838; stroke-width: 1.0;" width="10" x="449" y="510.1875"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="113.5313" style="stroke: #383838; stroke-width: 1.0;" width="10" x="536.5" y="427.7891"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="118.5313" style="stroke: #383838; stroke-width: 1.0;" width="10" x="677" y="465.9219"/><rect fill="#FFFFFF" filter="url(#f1r0r7o9xo1bto)" height="258.1953" style="stroke: #383838; stroke-width: 1.0;" width="10" x="763.5" y="374.5234"/><path d="M13,119.5938 L114,119.5938 L114,126.5938 L104,136.5938 L13,136.5938 L13,119.5938 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="184.6641" style="stroke: #000000; stroke-width: 2.0;" width="429" x="13" y="119.5938"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="28" y="132.6606">同期実行</text><polygon fill="#383838" points="69,138.7266,79,142.7266,69,146.7266,73,142.7266" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="44" x2="75" y1="142.7266" y2="142.7266"/><polygon fill="#383838" points="218,186.9922,228,190.9922,218,194.9922,222,190.9922" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="86" x2="224" y1="190.9922" y2="190.9922"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="61" x="93" y="168.7935">Request</text><line style="stroke: #000000; stroke-width: 1.0;" x1="93" x2="154" y1="156.7266" y2="156.7266"/><line style="stroke: #000000; stroke-width: 1.0;" x1="93" x2="154" y1="171.8594" y2="171.8594"/><line style="stroke: #000000; stroke-width: 1.0;" x1="93" x2="93" y1="156.7266" y2="171.8594"/><line style="stroke: #000000; stroke-width: 1.0;" x1="154" x2="154" y1="156.7266" y2="171.8594"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="93" y="185.9263">- Reserve Sandbox</text><path d="M192,205.9922 L256,205.9922 L256,212.9922 L246,222.9922 L192,222.9922 L192,205.9922 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="45.1328" style="stroke: #000000; stroke-width: 2.0;" width="240" x="192" y="205.9922"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="19" x="207" y="219.0591">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="54" x="271" y="218.2026">[初回呼出]</text><polygon fill="#383838" points="365.5,225.125,375.5,229.125,365.5,233.125,369.5,229.125" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="235" x2="371.5" y1="229.125" y2="229.125"/><polygon fill="#383838" points="321.5,239.125,311.5,243.125,321.5,247.125,317.5,243.125" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="315.5" x2="381.5" y1="243.125" y2="243.125"/><line style="stroke: #383838; stroke-width: 1.0;" x1="310.5" x2="352.5" y1="288.2578" y2="288.2578"/><line style="stroke: #383838; stroke-width: 1.0;" x1="352.5" x2="352.5" y1="288.2578" y2="301.2578"/><line style="stroke: #383838; stroke-width: 1.0;" x1="305.5" x2="352.5" y1="301.2578" y2="301.2578"/><polygon fill="#383838" points="315.5,297.2578,305.5,301.2578,315.5,305.2578,311.5,301.2578" style="stroke: #383838; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="48" x="317.5" y="281.1919">Invoke</text><line style="stroke: #000000; stroke-width: 1.0;" x1="317.5" x2="365.5" y1="269.125" y2="269.125"/><line style="stroke: #000000; stroke-width: 1.0;" x1="317.5" x2="365.5" y1="284.2578" y2="284.2578"/><line style="stroke: #000000; stroke-width: 1.0;" x1="317.5" x2="317.5" y1="269.125" y2="284.2578"/><line style="stroke: #000000; stroke-width: 1.0;" x1="365.5" x2="365.5" y1="269.125" y2="284.2578"/><path d="M13,318.2578 L231,318.2578 L231,325.2578 L221,335.2578 L13,335.2578 L13,318.2578 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="540.2578" style="stroke: #000000; stroke-width: 2.0;" width="811" x="13" y="318.2578"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="173" x="28" y="331.3247">非同期実行/スケールアップ</text><polygon fill="#383838" points="69,337.3906,79,341.3906,69,345.3906,73,341.3906" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="39" x2="75" y1="341.3906" y2="341.3906"/><polygon fill="#383838" points="751.5,370.5234,761.5,374.5234,751.5,378.5234,755.5,374.5234" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="86" x2="757.5" y1="374.5234" y2="374.5234"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="103" x="93" y="367.4575">SendMessage</text><line style="stroke: #000000; stroke-width: 1.0;" x1="93" x2="196" y1="355.3906" y2="355.3906"/><line style="stroke: #000000; stroke-width: 1.0;" x1="93" x2="196" y1="370.5234" y2="370.5234"/><line style="stroke: #000000; stroke-width: 1.0;" x1="93" x2="93" y1="355.3906" y2="370.5234"/><line style="stroke: #000000; stroke-width: 1.0;" x1="196" x2="196" y1="355.3906" y2="370.5234"/><path d="M412,389.5234 L555,389.5234 L555,396.5234 L545,406.5234 L412,406.5234 L412,389.5234 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="166.7969" style="stroke: #000000; stroke-width: 2.0;" width="402" x="412" y="389.5234"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="98" x="427" y="402.5903">スケールアップ</text><polygon fill="#383838" points="751.5,423.7891,761.5,427.7891,751.5,431.7891,755.5,427.7891" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="546.5" x2="757.5" y1="427.7891" y2="427.7891"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="553.5" y="422.7231">Workを探索</text><path d="M422,442.7891 L486,442.7891 L486,449.7891 L476,459.7891 L422,459.7891 L422,442.7891 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="106.5313" style="stroke: #000000; stroke-width: 2.0;" width="382" x="422" y="442.7891"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="19" x="437" y="455.856">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="197" x="501" y="454.9995">[関数の同時実行数の設定が小さい場合]</text><polygon fill="#383838" points="665,461.9219,675,465.9219,665,469.9219,669,465.9219" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="546.5" x2="671" y1="465.9219" y2="465.9219"/><polygon fill="#383838" points="470,506.1875,460,510.1875,470,514.1875,466,510.1875" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="464" x2="676" y1="510.1875" y2="510.1875"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="113" x="476" y="489.9888">Pollerの割当を作成</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="199" x="476" y="505.1216">(Poller Assignment Dataに書込)</text><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="422" x2="804" y1="519.1875" y2="519.1875"/><polygon fill="#383838" points="751.5,537.3203,761.5,541.3203,751.5,545.3203,755.5,541.3203" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="541.5" x2="757.5" y1="541.3203" y2="541.3203"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="193" x="548.5" y="536.2544">新たにdedicatedなキューを作成</text><polygon fill="#383838" points="470,580.4531,460,584.4531,470,588.4531,466,584.4531" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="464" x2="681" y1="584.4531" y2="584.4531"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="476" y="579.3872">ヘルスチェック</text><polygon fill="#383838" points="756.5,628.7188,766.5,632.7188,756.5,636.7188,760.5,632.7188" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="459" x2="762.5" y1="632.7188" y2="632.7188"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="123" x="466" y="610.52">ReceiveMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="99" x="466" y="625.6528">DeleteMessage</text><line style="stroke: #000000; stroke-width: 1.0;" x1="466" x2="589" y1="598.4531" y2="598.4531"/><line style="stroke: #000000; stroke-width: 1.0;" x1="466" x2="589" y1="613.5859" y2="613.5859"/><line style="stroke: #000000; stroke-width: 1.0;" x1="466" x2="589" y1="628.7188" y2="628.7188"/><line style="stroke: #000000; stroke-width: 1.0;" x1="466" x2="466" y1="598.4531" y2="628.7188"/><line style="stroke: #000000; stroke-width: 1.0;" x1="589" x2="589" y1="598.4531" y2="628.7188"/><polygon fill="#383838" points="102,661.8516,92,665.8516,102,669.8516,98,665.8516" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="96" x2="453" y1="665.8516" y2="665.8516"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="48" x="108" y="658.7856">Invoke</text><line style="stroke: #000000; stroke-width: 1.0;" x1="108" x2="156" y1="646.7188" y2="646.7188"/><line style="stroke: #000000; stroke-width: 1.0;" x1="108" x2="156" y1="661.8516" y2="661.8516"/><line style="stroke: #000000; stroke-width: 1.0;" x1="108" x2="108" y1="646.7188" y2="661.8516"/><line style="stroke: #000000; stroke-width: 1.0;" x1="156" x2="156" y1="646.7188" y2="661.8516"/><path d="M55,680.8516 L170,680.8516 L170,687.8516 L160,697.8516 L55,697.8516 L55,680.8516 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="170.6641" style="stroke: #000000; stroke-width: 2.0;" width="387" x="55" y="680.8516"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="70" x="70" y="693.9185">非同期実行</text><polygon fill="#383838" points="218,734.25,228,738.25,218,742.25,222,738.25" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="86" x2="224" y1="738.25" y2="738.25"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="61" x="93" y="716.0513">Request</text><line style="stroke: #000000; stroke-width: 1.0;" x1="93" x2="154" y1="703.9844" y2="703.9844"/><line style="stroke: #000000; stroke-width: 1.0;" x1="93" x2="154" y1="719.1172" y2="719.1172"/><line style="stroke: #000000; stroke-width: 1.0;" x1="93" x2="93" y1="703.9844" y2="719.1172"/><line style="stroke: #000000; stroke-width: 1.0;" x1="154" x2="154" y1="703.9844" y2="719.1172"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="93" y="733.1841">- Reserve Sandbox</text><path d="M192,753.25 L256,753.25 L256,760.25 L246,770.25 L192,770.25 L192,753.25 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="45.1328" style="stroke: #000000; stroke-width: 2.0;" width="240" x="192" y="753.25"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="19" x="207" y="766.3169">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="54" x="271" y="765.4604">[初回呼出]</text><polygon fill="#383838" points="365.5,772.3828,375.5,776.3828,365.5,780.3828,369.5,776.3828" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="235" x2="371.5" y1="776.3828" y2="776.3828"/><polygon fill="#383838" points="321.5,786.3828,311.5,790.3828,321.5,794.3828,317.5,790.3828" style="stroke: #383838; stroke-width: 1.0;"/><line style="stroke: #383838; stroke-width: 1.0;" x1="315.5" x2="381.5" y1="790.3828" y2="790.3828"/><line style="stroke: #383838; stroke-width: 1.0;" x1="310.5" x2="352.5" y1="835.5156" y2="835.5156"/><line style="stroke: #383838; stroke-width: 1.0;" x1="352.5" x2="352.5" y1="835.5156" y2="848.5156"/><line style="stroke: #383838; stroke-width: 1.0;" x1="305.5" x2="352.5" y1="848.5156" y2="848.5156"/><polygon fill="#383838" points="315.5,844.5156,305.5,848.5156,315.5,852.5156,311.5,848.5156" style="stroke: #383838; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="48" x="317.5" y="828.4497">Invoke</text><line style="stroke: #000000; stroke-width: 1.0;" x1="317.5" x2="365.5" y1="816.3828" y2="816.3828"/><line style="stroke: #000000; stroke-width: 1.0;" x1="317.5" x2="365.5" y1="831.5156" y2="831.5156"/><line style="stroke: #000000; stroke-width: 1.0;" x1="317.5" x2="317.5" y1="816.3828" y2="831.5156"/><line style="stroke: #000000; stroke-width: 1.0;" x1="365.5" x2="365.5" y1="816.3828" y2="831.5156"/><!--MD5=[77a8a509f79f723eaaed70ed102223d5] | |
@startuml | |
skinparam monochrome true | |
skinparam backgroundColor #EEEEEE | |
control ALB as LB | |
actor "Front\nEnd" as FE | |
actor "Counting\nService" as CS | |
actor "Worker\nManager" as WM | |
actor Worker as W | |
actor "Placement\nService" as PS | |
actor Poller as P | |
actor "State Manager\nStream Tracker" as SM | |
actor "Leasing\nService" as LS | |
collections SQS as Q | |
group 同期実行 | |
LB -> FE | |
activate LB | |
activate FE | |
FE -> WM: |Request|\n- Reserve Sandbox | |
deactivate FE | |
activate WM | |
alt 初回呼出 | |
WM -> PS | |
deactivate WM | |
activate PS | |
PS -> W | |
deactivate PS | |
activate W | |
end | |
W -> W: |Invoke| | |
deactivate W | |
end | |
group 非同期実行/スケールアップ | |
LB -> FE | |
deactivate LB | |
activate FE | |
FE -> Q: |SendMessage| | |
deactivate FE | |
activate Q | |
group スケールアップ | |
SM -> Q: Workを探索 | |
activate SM | |
alt 関数の同時実行数の設定が小さい場合 | |
SM -> LS | |
activate LS | |
LS -> P: Pollerの割当を作成\n(Poller Assignment Dataに書込) | |
activate P | |
else | |
SM -> Q: 新たにdedicatedなキューを作成 | |
deactivate SM | |
end | |
end | |
LS -> P: ヘルスチェック | |
deactivate LS | |
P -> Q: |ReceiveMessage|\n|DeleteMessage| | |
deactivate Q | |
P -> FE: |Invoke| | |
deactivate P | |
activate FE | |
group 非同期実行 | |
FE -> WM: |Request|\n- Reserve Sandbox | |
deactivate FE | |
activate WM | |
alt 初回呼出 | |
WM -> PS | |
deactivate WM | |
activate PS | |
PS -> W | |
deactivate PS | |
activate W | |
end | |
W -> W: |Invoke| | |
deactivate W | |
end | |
end | |
@enduml | |
PlantUML version 1.2019.12(Sun Nov 03 10:24:54 UTC 2019) | |
(GPL source distribution) | |
Java Runtime: OpenJDK Runtime Environment | |
JVM: OpenJDK 64-Bit Server VM | |
Java Version: 1.8.0_232-heroku-b09 | |
Operating System: Linux | |
Default Encoding: UTF-8 | |
Language: en | |
Country: US | |
--></g></svg> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment