Upload
Download free for 30 days
Login
Submit Search
5分では終わりそうにないfunctionsの話
0 likes
1,968 views
Yoshiyuki Taniguchi
Azure Functions の小ネタ
Internet
Read more
1 of 33
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
More Related Content
PDF
The Internal of Serverless Plugins
Terui Masashi
PDF
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
Terui Masashi
PDF
Ansible night2021.02
ssuserd86b77
PDF
組織で、もっとAnsible
sugoto
PPTX
kintoneカスタマイズの可能性
安隆 沖
PDF
グラフ解析で社長の脳内さらす!
Kazuki Morozumi
PDF
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano
PDF
モバイルゲームにおけるAWSの泥臭い使い方
Junpei Nakada
The Internal of Serverless Plugins
Terui Masashi
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
Terui Masashi
Ansible night2021.02
ssuserd86b77
組織で、もっとAnsible
sugoto
kintoneカスタマイズの可能性
安隆 沖
グラフ解析で社長の脳内さらす!
Kazuki Morozumi
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano
モバイルゲームにおけるAWSの泥臭い使い方
Junpei Nakada
What's hot
(20)
PDF
JAWS-UG Osaka 2013.11.02 Feel the Elesticity v2.0
Toshiyuki Konparu
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
PPTX
自社パッケージのDBをSQL ServerからPostgreSQLに移行してみた
Taiji Uchida
PDF
EC-CUBEによるECサイトの負荷対策
Kazunori Inaba
PDF
Alibaba Cloudのベンチマークテスト
Kazunori Inaba
PPTX
JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏
Takashi Someda
PDF
CloudGarageのベンチマークテスト
Kazunori Inaba
PDF
Serverless Meetup Tokyo #1 オープニング
真吾 吉田
PDF
そのRails Engine、 本当に必要ですか?
nixiesan
PDF
一枚岩なレガシーシステムを ラクスルではどのようにRebuildしているのか?
nixiesan
PDF
Slerがawsで運用してきた話
Sato Shun
PDF
RakSulのInternal API開発で gRPCを導入した話
nixiesan
PDF
40まで開発のリーダーだった男がインフラの運用のリーダー(見習い)になってみて
Hiroyuki Hiki
PDF
さばわのわ#2 AWS SDK for PHP で学ぶAthena
Takaki Sugitani
PDF
20141017 あなたのword pressに捧げる3つの法要
Seiji Akatsuka
PPTX
Shiva 〜Nextremerをscale upする機械学習環境〜
Kazuki Morozumi
PPTX
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
Takahiro Moteki
PDF
JAWS-UG 初心者支部 #4 東急ハンズのEC2の使いかた
Tomoaki Imai
PDF
hbstudy#82 SRE大全 FullGCとの闘い (UZABSE SRE Team Hirofumi Kubo)
Hirofumi Kubo
PDF
Aws
Kurihara Jyunichi
JAWS-UG Osaka 2013.11.02 Feel the Elesticity v2.0
Toshiyuki Konparu
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
自社パッケージのDBをSQL ServerからPostgreSQLに移行してみた
Taiji Uchida
EC-CUBEによるECサイトの負荷対策
Kazunori Inaba
Alibaba Cloudのベンチマークテスト
Kazunori Inaba
JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏
Takashi Someda
CloudGarageのベンチマークテスト
Kazunori Inaba
Serverless Meetup Tokyo #1 オープニング
真吾 吉田
そのRails Engine、 本当に必要ですか?
nixiesan
一枚岩なレガシーシステムを ラクスルではどのようにRebuildしているのか?
nixiesan
Slerがawsで運用してきた話
Sato Shun
RakSulのInternal API開発で gRPCを導入した話
nixiesan
40まで開発のリーダーだった男がインフラの運用のリーダー(見習い)になってみて
Hiroyuki Hiki
さばわのわ#2 AWS SDK for PHP で学ぶAthena
Takaki Sugitani
20141017 あなたのword pressに捧げる3つの法要
Seiji Akatsuka
Shiva 〜Nextremerをscale upする機械学習環境〜
Kazuki Morozumi
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
Takahiro Moteki
JAWS-UG 初心者支部 #4 東急ハンズのEC2の使いかた
Tomoaki Imai
hbstudy#82 SRE大全 FullGCとの闘い (UZABSE SRE Team Hirofumi Kubo)
Hirofumi Kubo
Aws
Kurihara Jyunichi
Ad
Viewers also liked
(6)
PDF
[JAZUG 7周年総会]社内でIoT&AIな農業系チャットボット開発講座をやってみて
拓将 平林
PPTX
みんな大好き!!ファイルサーバー DFS-R vs S2D
Takashi Ushigami
PDF
Jazug7周年LT(片倉義昌)
Yoshimasa Katakura
PPTX
開発未経験の私がBotをつくってみた
Aika Yamazaki
PPTX
Azure media services はいいぞ!
Takanori Tsuruta
PPTX
Azure Search クックブック
Kazuyuki Miyake
[JAZUG 7周年総会]社内でIoT&AIな農業系チャットボット開発講座をやってみて
拓将 平林
みんな大好き!!ファイルサーバー DFS-R vs S2D
Takashi Ushigami
Jazug7周年LT(片倉義昌)
Yoshimasa Katakura
開発未経験の私がBotをつくってみた
Aika Yamazaki
Azure media services はいいぞ!
Takanori Tsuruta
Azure Search クックブック
Kazuyuki Miyake
Ad
Similar to 5分では終わりそうにないfunctionsの話
(20)
PDF
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
PPTX
Windows azureって何
Kana SUZUKI
PPTX
Azure aws違い
Masanobu Sato
PDF
現場開発者視点で答えるWindows Azure
Keiichi Hashimoto
PDF
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
PPTX
「Azure durable functions」の概要
裕之 木下
PDF
2013/08 JAWS_UG北九州 AWSを使った儲け方
Serverworks Co.,Ltd.
PDF
20200923 miyazaki
beyond Co., Ltd.
PPTX
Spring I/O 2017での拡張のお話
Alisa Sasaki
PDF
Eight meets AWS
Tetsuya Mase
PDF
コンソールゲームを世界展開してみた - JAWS DAYS 2015
Ryo Nakamaru
PPTX
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
Toshiyuki Konparu
PDF
LocalStack
chibochibo
PDF
Amazon ec2とは何か?
Shinya_131
PDF
サーバーレスの話
真吾 吉田
PDF
新しくなったAzure Stack HCIは以前と何が違うのか?もう一度ゼロからしっかり整理します!
Masahiko Ebisuda
PDF
B 2-1 はじめての Windows Azure
GoAzure
PDF
Morning Session - AWS Serverless Ways
akitsukada
PDF
クラウド案件の作り方 for azureしなの4周年
Kuniteru Asami
PPTX
インフラ勉強会 20090711
axsh co., LTD.
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
Windows azureって何
Kana SUZUKI
Azure aws違い
Masanobu Sato
現場開発者視点で答えるWindows Azure
Keiichi Hashimoto
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
「Azure durable functions」の概要
裕之 木下
2013/08 JAWS_UG北九州 AWSを使った儲け方
Serverworks Co.,Ltd.
20200923 miyazaki
beyond Co., Ltd.
Spring I/O 2017での拡張のお話
Alisa Sasaki
Eight meets AWS
Tetsuya Mase
コンソールゲームを世界展開してみた - JAWS DAYS 2015
Ryo Nakamaru
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
Toshiyuki Konparu
LocalStack
chibochibo
Amazon ec2とは何か?
Shinya_131
サーバーレスの話
真吾 吉田
新しくなったAzure Stack HCIは以前と何が違うのか?もう一度ゼロからしっかり整理します!
Masahiko Ebisuda
B 2-1 はじめての Windows Azure
GoAzure
Morning Session - AWS Serverless Ways
akitsukada
クラウド案件の作り方 for azureしなの4周年
Kuniteru Asami
インフラ勉強会 20090711
axsh co., LTD.
5分では終わりそうにないfunctionsの話
1.
5分では終わりそうにない Azure Functionsの話 2017/9/9 JAZUG
7周年 LT 谷口 慈行
2.
Me @_iwate Commerble Inc. 自己紹介苦手勢
3.
Attention 2017/9/9 時点の情報です。
4.
Introduction Functions のインスタンス作ったことある人 ←
たぶん多い Functions のコード書いたことある人 ← これもたぶん多い Functions 運用したことある人 ← これはたぶん少ない? 弊社では、タスクサーバをなくすべく全バッチをFunctionsに移行 今日は、その過程で巡り合った問題をさらっと解説。 聞くも涙、語るも涙の物語。
5.
Azure Functions Serverless &
Event-Driven 詳細略(https://azure.microsoft.com/services/functions/) 2016/3 release 2016/11 GA 弊社では2017/3から実運用
6.
Serverless Unlimited Scalability を目指したもの パフォーマンスがいいということではないよ!…
はず。 Unlimited Scalability って、厨二ぽくてかっこいい。 インスタンスを囲い込む必要がないつくり 実行回数、CPU、時間 に対して課金
7.
EXE on VM
→ Functions 動機: VM2台分安くなる 今思うと結構安易 別にUnlimited Scalability をすごく欲してたわけではない 落とせるコストを落とさないのも怠慢だよね タスクサーバ なくせるね VM2台分 (A1 x 2) だから2万/月ぐらい ほぼほぼ無料枠で 収まっちゃいそう
8.
質問 Functionで何言語使ってますか? 1. Node.js 2. Powershell 3.
C#
9.
はい、C#が圧倒的ですね。 知ってましたよ。僕。
10.
豆知識1 c#のFunction実行方法が増えましたね CSX、PreCompiledとDirect(configurationSource=attributes)は わりと違う。 PreCompiledがアップデートでBindAttributeを使えるようになったの では? →
多分違う CSX、PreCompiledはHostがいい感じにFunctionInvokerを組み 立てる https://github.com/Azure/azure-webjobs-sdk- script/blob/master/src/WebJobs.Script/Description/FunctionGenerato r.cs DirectはWebJobそのまま
11.
悩みどころ App.configがない Dynamic Assembly Load Hostの動作
12.
App.config AppSettings以外の項目を使ってるとないと困る 例:System.Diagnostics.Traceのリスナーを差し替えてる場合 うちでは、FlushされるとLogentriesに飛ぶようなListener これ超便利だったのに使えない 解決策: しようがないので、コード中でインスタンスを生成してそれを使う もちろん、既存のコードは修正してまわる
13.
豆知識2 Shared Assembly Default
Assembly Private Assembly Package Assembly Assembly.LoadFile Assembly.Load + assembly.MapCodeBase Assembly.LoadFrom typeof().Assembly | Assembly.LoadFrom typeof().Assembly External Assembly アセンブリのロードのされ方が割と違う Default Assembly と Shared AssemblyはRoslynのScriptOptionに、 他はAppDomain.CurrentDomain.AssemblyResolveにResolverにラップされてわたされる
14.
ロードのされ方って別にどうでもよくない? よくない場合がある。 Assembly.Loadで取り込まれるPrivate Assembly(binフォル ダ)のLocationプロパティが空文字になる。 https://msdn.microsoft.com/ja- jp/library/system.reflection.assembly.location(v=vs.110).aspx Locationプロパティを触るライブラリを使ってるときは沼には まることがある。
15.
Dynamic Assembly Load Razor
Engine みたいな動的にアセンブリを読み込むライブラリ は配置場所を考える必要がある binフォルダから読まれたアセンブリではAssembly. Locationが空文 字になり、Illegal Path例外で落ちる(Assembly.Loadだから) しかも、External Assemblyでもたまに空文字になる(原因わか らず) つまりIllegal Pathは完全には防げない いったんIllegal Pathになると再起動しないと直らない(直らなかった)
16.
Illegal Pathになると再起動しないと直らない じゃあどうするの? →
再起動するしかない 例外Catchして、 Illegal Pathが含まれていたら、Queueにエンキュー そのイベントで、AppServiceを再起動かけるバッチを作る Dynamic Assembly Load Function Illegal Path AppService 監視バッチ 再起動要求 再起動コマンド
17.
心得1 .NETが動くからと言ってすべての過去の資産が使えるわけでは ないYO App.configとかの便利なDIとか • 作り変えが必要 動的なアセンブリロードをしているライブラリ • 使えないわけじゃないけど対策が必要 一部DBのスキーマから変えたことも •
後述の関数は2回来てもいいように作るために、カラムを追加。
18.
Hostの動作 Bind先への出力処理が結構失敗したりする Queueバインドのエンキュー処理 Blobバインドのエンキュー処理 その他 out が増えれば増える。失敗パターンN • もちろんロールバックされるわけではない •
ちなみにHostで失敗になると、10分後にリトライ out1 out2 out3 × - - 〇 × - 〇 〇 × 〇 〇 〇 起こりうるエラー状態 Out Trigger & In Host Sample 自分のコードは成功しても ここでエラー
19.
クイズ1 次のような関数の場合、Blob(detail)→Queue(next)の順番に保存される。では、順番を逆にしたい場合どうするか? ※順序はQueue系かそれ以外のざっくりとした分け方になっている。 https://github.com/Azure/azure-webjobs-sdk/blob/master/src/Microsoft.Azure.WebJobs.Host/Bindings/BindStepOrder.cs
20.
クイズ1 解答例 ICollectorのAddはそのタイミングでエンキューされる。 実際これをやってしまうと、queueoutをトリガーにBlobを入力を使って処理をする時にBlobがない状態になってしまう。
21.
クイズ2 毎日9時に実行 まずい点 • outputs
Queueに保存できずにエラーになる可能性がある。 Mailとかだとさらに顕著 • TimerTriggerはリトライされない つまり、この関数は9時にoutputに1回もしくは0回エンキューする状態。 改善するならどうしますか?
22.
回答例1 とりあえず、自分でリトライしてみる? 5回でいいの?
23.
回答例2 1時間毎に条件付きで実行 これなら失敗しても1時間後リトライできる まずい点 BlobとQueueがout パラメータの場合、 Blob
-> Queueの順番で保存される Queueへのエンキューがエラーの場合、 Blobは正常なのでリカバリできない。
24.
回答例2改 1時間毎に条件付きで実行 こうすれば1回以上は確実 (9時ピッタシは無理だけど) 1回以上なので、これ以降の 関数は2回呼ばれてもいいように作る
25.
心得2 Need Scalable? やりたいことはそもそもスケーラブルにできる? • 外部APIに同時接続制限とかないですか?
特に金融系 • IP制限とかない? もしかするとWebJobでexe起動したほうがいいかも。 Hostの挙動も注視しよう 色々あります。(色々ありました。) 時にはコード追う必要も(Illegal Path問題とか) Application Insightで監視するのも重要
26.
Singleton便利 { “Id”: 1000,
…} { “Id”: 1000, …} { “Id”: 1001, …} { “Id”: 1001, …} { “Id”: 1001, …} { “Id”: 1002, …} { “Id”: 1002, …} SingletonSammple Idでシリアライズされて実行できる。素敵
27.
こんな感じに
28.
徐々に完了してく
29.
Timeout時間(これは5分)を超えても大丈夫
30.
スケールアウトしてもOK RD00155D901316 RD00155D90375E RD00155D903360
31.
やらないほうがいいパターン Func1 onsuccess-queue queue-poison OnSuccess OnFaild poisonキューを次につなげるのはやめたほうがいい OnFaildに行くのに、やたらリトライするので、ログが汚れる。 queue
32.
やるならこう エラー用のQueueを用意して、そちらに明示的に渡す。 poisonはリトライ専用にする。 Func1 onsuccess-queue onfaild-queue OnSuccess OnFaild queue queue-poison 問題 解決
33.
まとめ Azure Functionはまだまだ色々試すフェーズ。だと思う。 みんなで知見を貯めよう。 Assembly問題とか考えるとAzure Container
Instanceに期待せ ざるを得ない。というより期待してます!
Download