SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
サーバーレスの常識を覆す
Azure Durable Functionsを使い倒す
2018/08/22 Serverless Meetup Fukuoka #2
@tsubakimoto_s
松村優大 (MLBお兄さん)
• 株式会社オルターブース
• Microsoft MVP
(Developer Technologies)
• C#/PHP/Azure/AWS
• 島根県出身 3031歳
2
本日の内容
• Serverless Services on Microsoft Azure
• Azure Durable Functions
• デモ
3
Serverless Services on
Microsoft Azure
https://azure.microsoft.com/ja-jp/overview/serverless-computing/
https://azure.microsoft.com/ja-jp/campaigns/serverless/
4
5https://www.youtube.com/watch?v=cOFlSvnupQM
6
Azure Functions
Logic Apps
Event Grid
7
Platform as a Service
アプリケーション
コード
ロジック
トリガー
Azure
Functions
8
イベントドリブン型のコードを実行でき
るサービス。従来のホスティングプラン
の他、実行時間・実行回数に対する従量
課金プランが提供されている。
Webhookをはじめ、Microsoft Azure、
Microsoft Graph、サードパーティの
サービスと連携することができる。
Language Runtime v1.x Runtime v2.x
C# GA Preview
Node.js GA Preview
F# GA -
Java - Preview
Python Experimental -
PHP Experimental -
TypeScript Experimental -
.cmd, .bat Experimental -
Bash Experimental -
PowerShell Experimental -
9
Language Runtime v1.x Runtime v2.x
C# GA Preview
Node.js GA Preview
F# GA -
Java - Preview
Python Experimental -
PHP Experimental -
TypeScript Experimental -
.cmd, .bat Experimental -
Bash Experimental -
PowerShell Experimental -
10
仕様変更もある
通常のFunctionsの実装
11
トリガー(入力)
バインド(出力)
単一処理の軽量な
コードが望ましい
Azure Durable Functions
The primary use case for Durable Functions is
simplifying complex, stateful coordination problems
in serverless applications.
12
【de:code 2018】AD02 Serverless の世界を進化させるイノベーション - Durable Functions
https://youtu.be/QuXO5plBiFM
Visual Studio
• Visual Studio 15.3~
• Azure開発のワークロード
• Azure Storage Emulator
• 拡張機能
Microsoft.Azure.WebJobs.Extensions.DurableTask
• C#での開発に適している
13https://docs.microsoft.com/ja-jp/azure/azure-functions/durable-functions-install
Visual Studio Code
• Azure Functions Core Tools 2.x
• Azure Storage Emulator
• 拡張機能
Microsoft.Azure.WebJobs.Extensions.DurableTask
• C#, Node.jsでの開発に適している
14https://docs.microsoft.com/ja-jp/azure/azure-functions/durable-functions-install
Durable Functions Pattern
1. 関数チェーン
2. ファンアウト/ファンイン
3. 非同期のHTTP API
4. 監視
5. 人による操作
15https://docs.microsoft.com/ja-jp/azure/azure-functions/durable-functions-overview
パターン1 : 関数チェーン
16
本来、Queueでつないで連鎖する一連の
関数を、Queueなしで実行できる機能。
ドキュメントのサンプルでは動かない
17
Durable Functionsの仕組み
• クライアント関数(OrchestrationClientAttribute)
• 関数全体の実行トリガーとなる
• オーケストレーター関数(OrchestrationTriggerAttribute)
• アクティビティ関数を呼出し、結果の受取を行う
• アクティビティ関数(ActivityTriggerAttribute)
• 実際の処理を行う作業単位
18
19
[FunctionName("F1")]
public static async Task<HttpResponseMessage> HttpStart(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")]HttpRequestMessage req,
[OrchestrationClient]DurableOrchestrationClient starter,
ILogger log)
{
string instanceId = await starter.StartNewAsync("F2", null);
log.LogInformation($"Started orchestration with ID = '{instanceId}'.");
return starter.CreateCheckStatusResponse(req, instanceId);
}
[FunctionName("F2")]
public static async Task<List<string>> RunOrchestrator(
[OrchestrationTrigger] DurableOrchestrationContext context)
{
var outputs = new List<string>();
outputs.Add(await context.CallActivityAsync<string>("F3", "Tokyo"));
outputs.Add(await context.CallActivityAsync<string>("F3", "Osaka"));
outputs.Add(await context.CallActivityAsync<string>("F3", "Fukuoka"));
return outputs;
}
[FunctionName("F3")]
public static string SayHello([ActivityTrigger] string name, ILogger log)
{
log.LogInformation($"Saying hello to {name}.");
return $"Hello {name}!";
}
クライアント関数
オーケストレーター関数
アクティビティ関数
パターン2 : ファンアウト/ファンイン
20
複数の関数を並列に実行してすべてが
完了するまで待機するパターン。
パターン3 : 非同期のHTTP API
21
長時間実行する関数の“状態”を取得する
ためのAPIを公開する。
Durable FunctionsのAPIレスポンス(JSON)
項目 説明
id
オーケストレーションインスタンス
の ID
statusQueryGetUri
オーケストレーションインスタンス
の状態を取得するURL
sendEventPostUri
オーケストレーションインスタンス
のイベントを発生させるURL
terminatePostUri
オーケストレーションインスタンス
を終了させるURL
22
例
23
{
"id": "2b729f0beb2c44358a9f1c2a75197322",
"statusQueryGetUri":
"http://localhost:7071/runtime/webhooks/DurableTaskExte
nsion/instances/2b729f0beb2c44358a9f1c2a75197322?taskHu
b=DurableFunctionsHub&connection=Storage&code=2bYl3HewP
In8QZMTYiPA0ifHuJ6WSR/t38v1923ru8S8LzbXFNaaCg==", ...
}
statusQueryGetUri (待機中)
24
{
"instanceId": "2b729f0beb2c44358a9f1c2a75197322",
"runtimeStatus": "Pending",
"input": null,
"customStatus": null,
"output": null,
"createdTime": "2018-08-15T20:58:47Z",
"lastUpdatedTime": "2018-08-15T20:58:47Z"
}
statusQueryGetUri (実行中)
25
{
"instanceId": "2b729f0beb2c44358a9f1c2a75197322",
"runtimeStatus": "Running",
"input": null,
"customStatus": null,
"output": null,
"createdTime": "2018-08-15T20:58:47Z",
"lastUpdatedTime": "2018-08-15T20:58:48Z"
}
statusQueryGetUri (完了)
26
{
"instanceId": "2b729f0beb2c44358a9f1c2a75197322",
"runtimeStatus": "Completed",
"input": null,
"customStatus": null,
"output": [
"Hello Tokyo!", "Hello Seattle!", "Hello London!"
],
"createdTime": "2018-08-15T20:58:47Z",
"lastUpdatedTime": "2018-08-15T20:59:01Z"
}
パターン4 : 監視
27
外部の関数を監視し、関数の状態によっ
て後続の処理を変える。
パターン5 : 人による操作
28
イベントが呼び出されるまで関数の実行
を止める。
例)上司の承認が必要なワークフロー
29
[FunctionName("Approval_Run")]
public static async Task RunOrchestrator(
[OrchestrationTrigger] DurableOrchestrationContext context)
{
bool approved = await context.WaitForExternalEvent<bool>("Approval");
if (approved) { /* approval granted */ }
else { /* approval denied */ }
}
[FunctionName("Approval_Request")]
public static async Task RequestApproval(
[QueueTrigger("approval-queue")] string instanceId,
[OrchestrationClient]DurableOrchestrationClient client)
{
await client.RaiseEventAsync(instanceId, "Approval", true);
}
オーケストレーター関数
外部イベント関数
30
[FunctionName("Approval_Run")]
public static async Task RunOrchestrator(
[OrchestrationTrigger] DurableOrchestrationContext context)
{
bool approved = await context.WaitForExternalEvent<bool>("Approval");
if (approved) { /* approval granted */ }
else { /* approval denied */ }
}
[FunctionName("Approval_Request")]
public static async Task RequestApproval(
[QueueTrigger("approval-queue")] string instanceId,
[OrchestrationClient]DurableOrchestrationClient client)
{
await client.RaiseEventAsync(instanceId, "Approval", true);
}
ここで処理が止まり
“Approval”という
イベント呼出しを待つ
31
[FunctionName("Approval_Run")]
public static async Task RunOrchestrator(
[OrchestrationTrigger] DurableOrchestrationContext context)
{
bool approved = await context.WaitForExternalEvent<bool>("Approval");
if (approved) { /* approval granted */ }
else { /* approval denied */ }
}
[FunctionName("Approval_Request")]
public static async Task RequestApproval(
[QueueTrigger("approval-queue")] string instanceId,
[OrchestrationClient]DurableOrchestrationClient client)
{
await client.RaiseEventAsync(instanceId, "Approval", true);
}
キューにインスタンスID
をセットする
32
[FunctionName("Approval_Run")]
public static async Task RunOrchestrator(
[OrchestrationTrigger] DurableOrchestrationContext context)
{
bool approved = await context.WaitForExternalEvent<bool>("Approval");
if (approved) { /* approval granted */ }
else { /* approval denied */ }
}
[FunctionName("Approval_Request")]
public static async Task RequestApproval(
[QueueTrigger("approval-queue")] string instanceId,
[OrchestrationClient]DurableOrchestrationClient client)
{
await client.RaiseEventAsync(instanceId, "Approval", true);
}
指定したインスタンスIDの
“Approval”イベントを呼出す
33
[FunctionName("Approval_Run")]
public static async Task RunOrchestrator(
[OrchestrationTrigger] DurableOrchestrationContext context)
{
bool approved = await context.WaitForExternalEvent<bool>("Approval");
if (approved) { /* approval granted */ }
else { /* approval denied */ }
}
[FunctionName("Approval_Request")]
public static async Task RequestApproval(
[QueueTrigger("approval-queue")] string instanceId,
[OrchestrationClient]DurableOrchestrationClient client)
{
await client.RaiseEventAsync(instanceId, "Approval", true);
}
イベントの結果を受けて
後続の処理を実行
34
[FunctionName("Approval_Run")]
public static async Task RunOrchestrator(
[OrchestrationTrigger] DurableOrchestrationContext context)
{
bool approved = await context.WaitForExternalEvent<bool>("Approval");
if (approved) { /* approval granted */ }
else { /* approval denied */ }
}
[FunctionName("Approval_Request")]
public static async Task RequestApproval(
[QueueTrigger("approval-queue")] string instanceId,
[OrchestrationClient]DurableOrchestrationClient client)
{
await client.RaiseEventAsync(instanceId, "Approval", true);
}
文字列やオブジェクトを
渡すことも可能
価格モデル
• App Serviceプラン
• 使用するリソースに対する課金
• 常時接続可能(AlwaysOn)
• 従量課金プラン
• 関数の実行時間と実行回数に対する課金
• 無料枠あり
• Cold Startやオートスケールの考慮が必要
35
36
[FunctionName("Approval_Run")]
public static async Task RunOrchestrator(
[OrchestrationTrigger] DurableOrchestrationContext context)
{
bool approved = await context.WaitForExternalEvent<bool>("Approval");
if (approved) { /* approval granted */ }
else { /* approval denied */ }
}
ここで処理が止まり
“Approval”という
イベント呼出しを待つ
待機中の時間(=イベントが呼び出されるまで)は課金対象になる?
課金対象にならない
デモ
https://github.com/tsubakimoto/serverless-meetup-fukuoka-v2
37
38
Application
Insights
Azure Functions
Blob
Storage
SlackWeb Browser 上司の承認 結果の通知
私が思う アンチパターン
39
if
条件1 条件2 条件3 条件4 条件5
output1 output2 output3 output4 output5
トリガー
ひとつのFunctionで複数の出力を行うやつ
40
output output output output output
単処理になるように分解する
宣伝
41
42
43
44
https://fukuten.connpass.com/event/95744/
ご清聴ありがとうございました
45

Weitere ähnliche Inhalte

Was ist angesagt?

Azure monitoring and alert v0.2.21.0707
Azure monitoring and alert v0.2.21.0707Azure monitoring and alert v0.2.21.0707
Azure monitoring and alert v0.2.21.0707Ayumu Inaba
 
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践日本マイクロソフト株式会社
 
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法de:code 2017
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会Shigeru Hanada
 
Azure AD による Web API の 保護
Azure AD による Web API の 保護 Azure AD による Web API の 保護
Azure AD による Web API の 保護 junichi anno
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Takeshi Fukuhara
 
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装Masatoshi Tada
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会ShuheiUda
 
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかAmazon Web Services Japan
 
Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!Project Samurai
 
Azure Log Analytics 概要
Azure Log Analytics 概要Azure Log Analytics 概要
Azure Log Analytics 概要喜智 大井
 
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etcAzure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etcYoichi Kawasaki
 
Azure Cosmos DB の整合性レベルについて
Azure Cosmos DB の整合性レベルについてAzure Cosmos DB の整合性レベルについて
Azure Cosmos DB の整合性レベルについてOshitari_kochi
 
俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service EnvironmentSunao Tomita
 
Amazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオンAmazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオンAmazon Web Services Japan
 
Microsoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてたMicrosoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてたDevTakas
 

Was ist angesagt? (20)

Azure monitoring and alert v0.2.21.0707
Azure monitoring and alert v0.2.21.0707Azure monitoring and alert v0.2.21.0707
Azure monitoring and alert v0.2.21.0707
 
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
 
AWS CLIでAssumeRole
AWS CLIでAssumeRoleAWS CLIでAssumeRole
AWS CLIでAssumeRole
 
Azure Network 概要
Azure Network 概要Azure Network 概要
Azure Network 概要
 
Azure AD による Web API の 保護
Azure AD による Web API の 保護 Azure AD による Web API の 保護
Azure AD による Web API の 保護
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
 
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
 
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
 
Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!
 
Azure Log Analytics 概要
Azure Log Analytics 概要Azure Log Analytics 概要
Azure Log Analytics 概要
 
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etcAzure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
 
Azure Cosmos DB の整合性レベルについて
Azure Cosmos DB の整合性レベルについてAzure Cosmos DB の整合性レベルについて
Azure Cosmos DB の整合性レベルについて
 
俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment
 
Apache Solr 入門
Apache Solr 入門Apache Solr 入門
Apache Solr 入門
 
Amazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオンAmazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオン
 
Microsoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてたMicrosoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてた
 

Ähnlich wie サーバーレスの常識を覆す Azure Durable Functionsを使い倒す

Azure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライAzure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライMasanobu Sato
 
Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1ikikko
 
20190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #420190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #4Issei Hiraoka
 
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編Yusuke Kodama
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Microsoft Azure Japan
 
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architectureIssei Hiraoka
 
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Yasuaki Matsuda
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用Yatabe Terumasa
 
Infrastructure as code for azure
Infrastructure as code for azureInfrastructure as code for azure
Infrastructure as code for azureKeiji Kamebuchi
 
Google I/O 2016 報告会
Google I/O 2016 報告会Google I/O 2016 報告会
Google I/O 2016 報告会shingo suzuki
 
Microsoft AzureでのServerless活用術
Microsoft AzureでのServerless活用術Microsoft AzureでのServerless活用術
Microsoft AzureでのServerless活用術ryosuke matsumura
 
codeless/serverless develop
codeless/serverless develop codeless/serverless develop
codeless/serverless develop Tomoyuki Obi
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -Yoichi Kawasaki
 
GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...
GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...
GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...Kazumi IWANAGA
 
Azure Container Services and Microservices design pattern
Azure Container Services and Microservices design patternAzure Container Services and Microservices design pattern
Azure Container Services and Microservices design patternYoshio Terada
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -Yoichi Kawasaki
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesKazushi Kamegawa
 

Ähnlich wie サーバーレスの常識を覆す Azure Durable Functionsを使い倒す (20)

Azure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライAzure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライ
 
Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1
 
20190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #420190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #4
 
Azure Functions Tips
Azure Functions TipsAzure Functions Tips
Azure Functions Tips
 
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
 
JavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, PerformanceJavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, Performance
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
 
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
 
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
 
How To Drink Wsgi
How To Drink WsgiHow To Drink Wsgi
How To Drink Wsgi
 
Infrastructure as code for azure
Infrastructure as code for azureInfrastructure as code for azure
Infrastructure as code for azure
 
Google I/O 2016 報告会
Google I/O 2016 報告会Google I/O 2016 報告会
Google I/O 2016 報告会
 
Microsoft AzureでのServerless活用術
Microsoft AzureでのServerless活用術Microsoft AzureでのServerless活用術
Microsoft AzureでのServerless活用術
 
codeless/serverless develop
codeless/serverless develop codeless/serverless develop
codeless/serverless develop
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
 
GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...
GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...
GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...
 
Azure Container Services and Microservices design pattern
Azure Container Services and Microservices design patternAzure Container Services and Microservices design pattern
Azure Container Services and Microservices design pattern
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure Pipelines
 

Mehr von Yuta Matsumura

「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainerYuta Matsumura
 
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組みチーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組みYuta Matsumura
 
.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyoYuta Matsumura
 
App Modernization for .NET
App Modernization for .NETApp Modernization for .NET
App Modernization for .NETYuta Matsumura
 
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD分かったうえではじめるCI/CD
分かったうえではじめるCI/CDYuta Matsumura
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発Yuta Matsumura
 
いつでもどこでも .NET
いつでもどこでも .NETいつでもどこでも .NET
いつでもどこでも .NETYuta Matsumura
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーションYuta Matsumura
 
マイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tyeマイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project TyeYuta Matsumura
 
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介Yuta Matsumura
 
Azure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もうAzure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もうYuta Matsumura
 
Blazor Server テンプレート解説
Blazor Server テンプレート解説Blazor Server テンプレート解説
Blazor Server テンプレート解説Yuta Matsumura
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#Yuta Matsumura
 
改めて C# でできることを振り返る
改めて C# でできることを振り返る改めて C# でできることを振り返る
改めて C# でできることを振り返るYuta Matsumura
 
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法Yuta Matsumura
 
忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめ忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめYuta Matsumura
 
.NET Conf の歩き方
.NET Conf の歩き方.NET Conf の歩き方
.NET Conf の歩き方Yuta Matsumura
 
PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 閉会式PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 閉会式Yuta Matsumura
 
PHPカンファレンス福岡2019 開会式
PHPカンファレンス福岡2019 開会式PHPカンファレンス福岡2019 開会式
PHPカンファレンス福岡2019 開会式Yuta Matsumura
 
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏Yuta Matsumura
 

Mehr von Yuta Matsumura (20)

「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
 
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組みチーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組み
 
.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo
 
App Modernization for .NET
App Modernization for .NETApp Modernization for .NET
App Modernization for .NET
 
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD分かったうえではじめるCI/CD
分かったうえではじめるCI/CD
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 
いつでもどこでも .NET
いつでもどこでも .NETいつでもどこでも .NET
いつでもどこでも .NET
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
 
マイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tyeマイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tye
 
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
 
Azure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もうAzure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もう
 
Blazor Server テンプレート解説
Blazor Server テンプレート解説Blazor Server テンプレート解説
Blazor Server テンプレート解説
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
改めて C# でできることを振り返る
改めて C# でできることを振り返る改めて C# でできることを振り返る
改めて C# でできることを振り返る
 
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
 
忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめ忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめ
 
.NET Conf の歩き方
.NET Conf の歩き方.NET Conf の歩き方
.NET Conf の歩き方
 
PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 閉会式PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 閉会式
 
PHPカンファレンス福岡2019 開会式
PHPカンファレンス福岡2019 開会式PHPカンファレンス福岡2019 開会式
PHPカンファレンス福岡2019 開会式
 
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏
 

サーバーレスの常識を覆す Azure Durable Functionsを使い倒す