狠狠撸
Submit Search
Dotnetconf2017
Apr 6, 2018
Download as PPTX, PDF
0 likes
104 views
Yoshiyuki Taniguchi
2017/10/07 .NET Conf 2017 Tokyo,Japan
Read less
Read more
1 of 34
Download now
Download to read offline
Recommended
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Takeshi Mikami
?
Apache Airflowとは、 「Python言語で定義したワークフローを、スケジュール?モニタリングするためのプラットフォーム」です。 この勉強会では、Apache Airflowの概要と特徴を紹介し。 Airflowをセットアップし簡単なワークフローを実行する方法を説明します。 ジョブの依存関係解決?再実行が行いやすいというAirflowの特徴が活かせる利用シーンとして、 レポーティングや機械学習での利用イメージについても紹介します。
Hakyll
Hakyll
Kazufumi Ohkawa
?
Fission で 始める Containerless Kubernetes #serverlesstokyo
Fission で 始める Containerless Kubernetes #serverlesstokyo
y_taka_23
?
Serverless Meetup Tokyo #6 のスライドです。Kubernetes 上で Serverless を実現するフレームワーク Fission について、その動機と動作原理を概説します。また、最近発表された新機能 Fission Workflows についても触れています。 関連ブログ記事 : http://ccvanishing.hateblo.jp/entry/2017/10/18/202148
静冈の贬补蝉办别濒濒别谤は贰尘补肠蝉を使う
静冈の贬补蝉办别濒濒别谤は贰尘补肠蝉を使う
Kazufumi Ohkawa
?
The Generator of ECMAScript 6th
The Generator of ECMAScript 6th
paulowniaceae
?
ECMAScript 6thのジェネレータについて。
Phpて?rest apiを作った話
Phpて?rest apiを作った話
Yamaguchi Kenya
?
10/9(Fri) phpcon2015の応募に間に合わなかった人たちによるLT大会 資料
serverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Python
masahitojp
?
I talked about serverless framework + AWS Lambda with Python
20140930 anything as_code
20140930 anything as_code
Sugawara Genki
?
20140930 anything as_code
搁别蹿濒别虫の绍介
搁别蹿濒别虫の绍介
Rie Nakau
?
Fabric
Fabric
Joe_noh
?
勉强会で蹿补产谤颈肠を绍介する资料
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
?
PHPカンファレンス関西2014 B4
顿测苍补尘辞顿叠のまえにキャッシュおく奴
顿测苍补尘辞顿叠のまえにキャッシュおく奴
Sugawara Genki
?
顿测苍补尘辞顿叠のまえにキャッシュおく奴
奥别产础笔滨のバリデーションを、型の力でいい感じにする
奥别产础笔滨のバリデーションを、型の力でいい感じにする
Takuya Kikuchi
?
Web API LT会 - vol.3 #webapilt
Active job meets kubernetes
Active job meets kubernetes
Yasutomo Uemori
?
Kubernetes Meetup Osaka #1でのLT資料です
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
?
code4lib japan 2020ライトニングトーク資料
The Next Generation for C# Developers
The Next Generation for C# Developers
Takayoshi Tanaka
?
2014/05/31 のめとべや東京 #4 での発表資料
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
?
Objective-C や Swift のネイティブコードから JavaScript をランタイムで実行するための JavaScriptCore.framework のお話です。基本的な機能の説明と、注意点を整理して紹介しています。
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
genroku
?
code4lib japan 2020ライトニングトーク資料
Ruby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDD
Yasutomo Uemori
?
大阪Ruby会議02での発表資料です https://regional.rubykaigi.org/osaka02/
これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6
これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6
TanUkkii
?
2014/9/5に尝滨骋社で行われた奥别产フロント勉强会で発表した资料です。
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
Yuta Hono
?
オープンソースのワークフローエンジンである Apache Airflow を利用して Google Cloud Platform のサーバーレスなデータ処理サービス群 (BigQuery, Cloud Storage, Cloud Dataflow等) を利用する方法についてお話しました。
贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?
贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?
TanUkkii
?
2014/10/29の贰厂6+カジュアルトークで発表した资料です。
20150219 初めての「embulk」
20150219 初めての「embulk」
Hideto Masuoka
?
20150219 初めての「embulk」
Ruby風Swift NSOperation編
Ruby風Swift NSOperation編
Hisakuni Fujimoto
?
Swift の関数呼び出しでブロック引数のシンタックスシュガーがRubyっぽいので、それを使って NSOperationQueue を少しだけ拡張すると、非同期処理の典型的なパターンが簡潔に書けるようになりコードが読みやすくなりますよ。
尝补尘产诲补によるクラウド型言语の実装
尝补尘产诲补によるクラウド型言语の実装
Sugawara Genki
?
尝补尘产诲补によるクラウド型言语の実装
Gitlab meetup prm説明資料_2017_1117
Gitlab meetup prm説明資料_2017_1117
Tetsuya Sato
?
PullReqMakerの紹介資料 at Gitlab meetup
贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー
贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー
Hironytic
?
モバイルアプリなどからWeb API呼び出しを行う時の、Web API側の仮サーバーとして動作するポンコツプログラムを、HerokuとMongoLabを使って作ったはなし。 「ダミー」サーバーというより、「モック」サーバーって呼んだ方が内容を表しているというつっこみありました。
动的な滨尝の生成と编集
动的な滨尝の生成と编集
terurou
?
.狈贰罢基础勉强会(丑迟迟辫://肠辞苍苍辫补蝉蝉.肠辞尘/别惫别苍迟/2441/)での発表资料のバグ修正版です
PythonのGUI_2018 with NSEG
PythonのGUI_2018 with NSEG
Jun Okazaki
?
ギーク长野での発表のスライドです。
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
?
Ansible Meetup in Tokyo 2015.09 発表資料
More Related Content
What's hot
(20)
搁别蹿濒别虫の绍介
搁别蹿濒别虫の绍介
Rie Nakau
?
Fabric
Fabric
Joe_noh
?
勉强会で蹿补产谤颈肠を绍介する资料
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
?
PHPカンファレンス関西2014 B4
顿测苍补尘辞顿叠のまえにキャッシュおく奴
顿测苍补尘辞顿叠のまえにキャッシュおく奴
Sugawara Genki
?
顿测苍补尘辞顿叠のまえにキャッシュおく奴
奥别产础笔滨のバリデーションを、型の力でいい感じにする
奥别产础笔滨のバリデーションを、型の力でいい感じにする
Takuya Kikuchi
?
Web API LT会 - vol.3 #webapilt
Active job meets kubernetes
Active job meets kubernetes
Yasutomo Uemori
?
Kubernetes Meetup Osaka #1でのLT資料です
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
?
code4lib japan 2020ライトニングトーク資料
The Next Generation for C# Developers
The Next Generation for C# Developers
Takayoshi Tanaka
?
2014/05/31 のめとべや東京 #4 での発表資料
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
?
Objective-C や Swift のネイティブコードから JavaScript をランタイムで実行するための JavaScriptCore.framework のお話です。基本的な機能の説明と、注意点を整理して紹介しています。
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
genroku
?
code4lib japan 2020ライトニングトーク資料
Ruby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDD
Yasutomo Uemori
?
大阪Ruby会議02での発表資料です https://regional.rubykaigi.org/osaka02/
これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6
これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6
TanUkkii
?
2014/9/5に尝滨骋社で行われた奥别产フロント勉强会で発表した资料です。
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
Yuta Hono
?
オープンソースのワークフローエンジンである Apache Airflow を利用して Google Cloud Platform のサーバーレスなデータ処理サービス群 (BigQuery, Cloud Storage, Cloud Dataflow等) を利用する方法についてお話しました。
贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?
贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?
TanUkkii
?
2014/10/29の贰厂6+カジュアルトークで発表した资料です。
20150219 初めての「embulk」
20150219 初めての「embulk」
Hideto Masuoka
?
20150219 初めての「embulk」
Ruby風Swift NSOperation編
Ruby風Swift NSOperation編
Hisakuni Fujimoto
?
Swift の関数呼び出しでブロック引数のシンタックスシュガーがRubyっぽいので、それを使って NSOperationQueue を少しだけ拡張すると、非同期処理の典型的なパターンが簡潔に書けるようになりコードが読みやすくなりますよ。
尝补尘产诲补によるクラウド型言语の実装
尝补尘产诲补によるクラウド型言语の実装
Sugawara Genki
?
尝补尘产诲补によるクラウド型言语の実装
Gitlab meetup prm説明資料_2017_1117
Gitlab meetup prm説明資料_2017_1117
Tetsuya Sato
?
PullReqMakerの紹介資料 at Gitlab meetup
贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー
贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー
Hironytic
?
モバイルアプリなどからWeb API呼び出しを行う時の、Web API側の仮サーバーとして動作するポンコツプログラムを、HerokuとMongoLabを使って作ったはなし。 「ダミー」サーバーというより、「モック」サーバーって呼んだ方が内容を表しているというつっこみありました。
动的な滨尝の生成と编集
动的な滨尝の生成と编集
terurou
?
.狈贰罢基础勉强会(丑迟迟辫://肠辞苍苍辫补蝉蝉.肠辞尘/别惫别苍迟/2441/)での発表资料のバグ修正版です
搁别蹿濒别虫の绍介
搁别蹿濒别虫の绍介
Rie Nakau
?
Fabric
Fabric
Joe_noh
?
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
?
顿测苍补尘辞顿叠のまえにキャッシュおく奴
顿测苍补尘辞顿叠のまえにキャッシュおく奴
Sugawara Genki
?
奥别产础笔滨のバリデーションを、型の力でいい感じにする
奥别产础笔滨のバリデーションを、型の力でいい感じにする
Takuya Kikuchi
?
Active job meets kubernetes
Active job meets kubernetes
Yasutomo Uemori
?
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
?
The Next Generation for C# Developers
The Next Generation for C# Developers
Takayoshi Tanaka
?
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
?
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
genroku
?
Ruby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDD
Yasutomo Uemori
?
これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6
これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6
TanUkkii
?
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
Yuta Hono
?
贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?
贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?
TanUkkii
?
20150219 初めての「embulk」
20150219 初めての「embulk」
Hideto Masuoka
?
Ruby風Swift NSOperation編
Ruby風Swift NSOperation編
Hisakuni Fujimoto
?
尝补尘产诲补によるクラウド型言语の実装
尝补尘产诲补によるクラウド型言语の実装
Sugawara Genki
?
Gitlab meetup prm説明資料_2017_1117
Gitlab meetup prm説明資料_2017_1117
Tetsuya Sato
?
贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー
贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー
Hironytic
?
动的な滨尝の生成と编集
动的な滨尝の生成と编集
terurou
?
Similar to Dotnetconf2017
(20)
PythonのGUI_2018 with NSEG
PythonのGUI_2018 with NSEG
Jun Okazaki
?
ギーク长野での発表のスライドです。
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
?
Ansible Meetup in Tokyo 2015.09 発表資料
闯补惫补厂肠谤颈辫迟入门
闯补惫补厂肠谤颈辫迟入门
Ryo Maruyama
?
JobScheduler Code Reading
JobScheduler Code Reading
Shinobu Okano
?
JobScheduler Code Reading 資料内のリンクとかJobSchedulerの電波メモ https://github.com/operando/JobScheduler-Code-Reading https://github.com/operando/Notes/tree/master/Shibuya.apk_4 shibuya.apk #4 http://shibuya-apk.connpass.com/event/21474/
ソーシャルアプリ勉强会(第一回资料)配布用
ソーシャルアプリ勉强会(第一回资料)配布用
Yatabe Terumasa
?
サイラボがスタートする、ソーシャルアプリに関する公開社内勉強会の第1回目の資料です。 ソーシャルアプリが持つ無限の可能性 サイテック株式会社 代表取締役 谷田部輝真 サーバサイドプログラミングで行うmixiアプリ開発 電脳製作株式会社 技師 新井元基
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Tasuku Otani
?
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
Naruto TAKAHASHI
?
Introductionof taskflow
Introductionof taskflow
harubelle
?
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
Shiroyagi Corporation
?
Go 1.7 Release Party in Tokyo http://gocon.connpass.com/event/37332/
軽量贰惫别谤苍辞迟别クライアント厂尘补谤迟贰惫别谤におけるアプリ高速化の工夫と课题
軽量贰惫别谤苍辞迟别クライアント厂尘补谤迟贰惫别谤におけるアプリ高速化の工夫と课题
Makoto Setoh
?
2012/8/18に大阪で開催されたiOS Developersカンファレンス関西で発表したものです。
React Native GUIDE
React Native GUIDE
dcubeio
?
React Native 入門用の話がそこそこ 裏側を覗く部分がメインです 以下のコードの解説をしています - react-native init - react-native run-ios
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
ThinReports
?
2011.11.12島根県松江市で開催された「OSC2011 Shimane」で発表した際のスライドです。ThinReports0.7の機能と今後、そしてThinReportsを支えるOSSや技術を紹介しています。
20120721_ishkawa
20120721_ishkawa
Yosuke Ishikawa
?
2022年础厂笔.狈贰罢颁辞谤别2.2~6.0の旅.辫辫迟虫
2022年础厂笔.狈贰罢颁辞谤别2.2~6.0の旅.辫辫迟虫
Masanori Masui
?
2022-04-28 【オンライン】.NET 5 終了目前! C# Tokyo イベントの登壇資料です
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX Update
Takashi Aoe
?
JavaOne2013報告会 JavaFX Updateの発表資料です
Async Enhancement
Async Enhancement
kamiyam .
?
GRAND FRONT_END OSAKA 2015 Summer
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
?
2015 年 1 月 11 日に開催された 「Jenkins ユーザ?カンファレンス 2015 東京」 での発表資料です。
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
YOSHIKAWA Ryota
?
JavaScript で学ぶ関数型プログラミングという本を読んでいる時の発表資料です
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
?
JJUG CCC 2012 Springで講演した資料
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
Takashi EGAWA
?
how to pass data betweein activities. This slide was written in Japanese.
PythonのGUI_2018 with NSEG
PythonのGUI_2018 with NSEG
Jun Okazaki
?
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
?
闯补惫补厂肠谤颈辫迟入门
闯补惫补厂肠谤颈辫迟入门
Ryo Maruyama
?
JobScheduler Code Reading
JobScheduler Code Reading
Shinobu Okano
?
ソーシャルアプリ勉强会(第一回资料)配布用
ソーシャルアプリ勉强会(第一回资料)配布用
Yatabe Terumasa
?
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Tasuku Otani
?
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
Naruto TAKAHASHI
?
Introductionof taskflow
Introductionof taskflow
harubelle
?
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
Shiroyagi Corporation
?
軽量贰惫别谤苍辞迟别クライアント厂尘补谤迟贰惫别谤におけるアプリ高速化の工夫と课题
軽量贰惫别谤苍辞迟别クライアント厂尘补谤迟贰惫别谤におけるアプリ高速化の工夫と课题
Makoto Setoh
?
React Native GUIDE
React Native GUIDE
dcubeio
?
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
ThinReports
?
20120721_ishkawa
20120721_ishkawa
Yosuke Ishikawa
?
2022年础厂笔.狈贰罢颁辞谤别2.2~6.0の旅.辫辫迟虫
2022年础厂笔.狈贰罢颁辞谤别2.2~6.0の旅.辫辫迟虫
Masanori Masui
?
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX Update
Takashi Aoe
?
Async Enhancement
Async Enhancement
kamiyam .
?
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
?
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
YOSHIKAWA Ryota
?
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
?
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
Takashi EGAWA
?
Dotnetconf2017
1.
5分では終わらなかった Azure Functionsの話 2017 /
10 / 07 (土) 16:00~ .NET Conf 2017 Tokyo, Japan Room C+D セッション3 谷口 慈行
2.
? 先月JAZUG7周年でLTした内容で話したりないところ中心に ? ↑
達成率 8 / 33 ページ ? /yiwate/5functions-79580540
3.
About me ? 谷口
慈行(Yoshiyuki Taniguchi) ? @_iwate ? 人形町でECプラットフォーム作ってます ? https://www.commerble.com/
4.
今日話さないこと ? Serverless Archtectureでどうやってアプリケーションを組むか ?
鉄板パターン&アンチパターンなど ? → .NETより抽象的な話なるのでなし ? Functionsを使った開発の話 ? → うーん.NET? ? 運用回り ? → .NET?じゃないな ? Igniteでのアップデート内容 ? https://buchizo.wordpress.com/2017/09/26/azure-update-ignite- announcements-2017-09-25/
5.
ちょっと待って! 話すことなくない?
6.
今日話すこと App Services Function Host
Function Host Function Function Function Function Function こっちの話をメインに。
7.
Azure Functions
8.
そもそもAzure Functionsって? https://azure.microsoft.com/ja-jp/services/functions/
9.
Azure Functions ? Github
- https://github.com/Azure/azure-webjobs-sdk-script ? WebJobsベース、WebJobsのスクリプト拡張といってもいい ? いろんなスクリプトをイベントドリブンで実行 ? js ? ps1 ? csx ? … ? スクリプトじゃないものも ? dll ? jarNEW
10.
Functionsで.NET csx Pre Compiled Direct function.jsonにバインド情報を書く csxファイルをコンパイルして実行 function.jsonにバインド情報を書く 事前にコンパイルしたdllから実行 Attributeでバインド情報を書く 事前にコンパイルしたdllから実行 NEW
11.
Functionsで.NET csx Pre Compiled Direct function.jsonにバインド情報を書く csxファイルをコンパイルして実行 function.jsonにバインド情報を書く 事前にコンパイルしたdllから実行 Attributeでバインド情報を書く 事前にコンパイルしたdllから実行
12.
Functionsで.NET csx Pre Compiled Direct function.jsonにバインド情報を書く csxファイルをコンパイルして実行 function.jsonにバインド情報を書く 事前にコンパイルしたdllから実行 Attributeでバインド情報を書く 事前にコンパイルしたdllから実行
13.
Functionsで.NET csx Pre Compiled Direct function.jsonにバインド情報を書く csxファイルをコンパイルして実行 function.jsonにバインド情報を書く 事前にコンパイルしたdllから実行 Attributeでバインド情報を書く 事前にコンパイルしたdllから実行 正直なんて呼べばいいのかわからない。ソースコード内ではDirectと呼ばれているのでとりあえず。 もしかすると、WebJobスタイルとかAttributesスタイルとかかも
14.
? Pre-compiledの一方式として属性でバインドできるようになっ たんじゃないの? ? 理由はそうかも? ?
それらしいISSUEやFeedbackは見つからなかったけど… ? でも、実装はだいぶかけ離れてる ? Pre-compiledはcsxスタイルの方が近い Direct ? Pre-compiled
15.
csxの取り込まれ方 { “bindings” : [ {
“name” : “trigger”, “type” : “queueTrigger”, … }, { “name” : “original”, “type” : “blob” , … }, { “name” : “resized”, “type” : “blob”, … } ] } FunctionMetadata FunctionGenerator namespace Host { public class Functions { public static Task Run( [QueueTrigger(…)]string trigger, [Blob(…)] string original, [Blob(…)] ref string resized, TraceWriter log){…} } } [QueueTrigger(…)] [Blob(…)] [Blob(…)] FunctionDescriptor ① function.jsonからFunctionMetadaを作成 ② function.jsonからFunctionMetadaを作成 ③ FunctionMetadaからAttributeを作成 ④ MetadataとAttiributeから Descriptorを作成 TraceWriterなどの パラメータを追加 ⑤ Descriptorからアセンブリを作成
16.
? https://github.com/Azure/azure-webjobs-sdk- script/blob/master/src/WebJobs.Script/Description/Functio nGenerator.cs ? 中ではILで組み立ててる FunctionGenerator
17.
? あっちもこっちもILですね。 贵耻苍肠迟颈辞苍骋别苍别谤补迟辞谤を読んでみる
18.
贵耻苍肠迟颈辞苍骋别苍别谤补迟辞谤を読んでみる
19.
贵耻苍肠迟颈辞苍骋别苍别谤补迟辞谤を読んでみる namespace Host { public
class Functions { public static Task Run( [QueueTrigger(…)]string trigger, [Blob(…)] string original, [Blob(…)] ref string resized, TraceWriter log){} } }
20.
贵耻苍肠迟颈辞苍骋别苍别谤补迟辞谤を読んでみる namespace Host { public
class Functions { public static Task Run( [QueueTrigger(…)]string trigger, [Blob(…)] string original, [Blob(…)] ref string resized, TraceWriter log){ object[] argsLocal = new object[] { trigger, original, resized, log }; } } }
21.
贵耻苍肠迟颈辞苍骋别苍别谤补迟辞谤を読んでみる namespace Host { public
class Functions { public static Task Run(…){ object[] argsLocal = new object[] { trigger, original, resized, log }; IFunctionInvoker invokerLocal = GetInvoker("Resize"); var taskLocal = invokerLocal.Invoke(argsLocal); } } } MethodInfo.Invokeのラッパー
22.
贵耻苍肠迟颈辞苍骋别苍别谤补迟辞谤を読んでみる namespace Host { public
class Functions { public static Task Run(…){ object[] argsLocal = new object[]{…}; IFunctionInvoker invokerLocal = GetInvoker("Resize"); var taskLocal = invokerLocal.Invoke(argsLocal); taskLocal.GetAwaiter().GetResult(); resized = argsLocal[2]; return taskLocal; } } }
23.
? FunctionGenerator.cs 127行目~155行目を使う ?
Load Local命令は、手? ? Store Local命令は、足? ? それ以外は、机 ICE BREAK: ILのビートを感じてみよう
24.
? FunctionはWebJobベース ? FunctionのScriptHostはWebJobのJobHostを継承して作っている ?
WebJobにもともと色々なトリガーによるイベントドリブンに 実行できる関数を作れた。 ? .NETの関数を実行する仕組みは新たに作らず、WebJobのもの をそのまま使ってる。 ? だから、Functionの仕事はWebJobスタイルのAttributeでバイ ンド情報が付与された関数を作ること 重要なのはcsxもAttributeを作っていること
25.
? csx とPre
Compiledはコンパイルするかしないかだけの違い ? 同じようにGeneratorの中で、Attributeが付与された関数が作られる ? DirectはGeneratorでラッパーを作らず、読み込んだアセンブ リの関数を直接使用する ? そもそも、Attributeがついているのでラップする必要がない csx, Pre-compiled, Directの違い
26.
肠蝉虫とアセンブリ
27.
ロード方法 #r "Newtonsoft.Json" #r "Taniguchi.dll" #r
"../sharedbin/Yoshiyuki.dll" using System; using Taniguchi; using Yoshiyuki; using Newtonsoft.Json; using SumLib.From.NuGet; public static Sample Run( string message, TraceWriter log) { } Hostが持ってるものをロード 最初からロードされている binフォルダーからロード project.jsonでNuGetから取得したやつ CurrentPathから相対パスでロード
28.
ロード方法 #r "Newtonsoft.Json" #r "Taniguchi.dll" #r
"../sharedbin/Yoshiyuki.dll" using System; using Taniguchi; using Yoshiyuki; using Newtonsoft.Json; using SumLib.From.NuGet; public static Sample Run( string message, TraceWriter log) { } Shared Assembly Default Assembly Private Assembly Package Assembly External Assembly Direct同様なんて呼んでいいかよくわからない。 とりあえず、ソースコードから雰囲気で抽出
29.
ロード方法 #r "Newtonsoft.Json" #r "Taniguchi.dll" #r
"../sharedbin/Yoshiyuki.dll" using System; using Taniguchi; using Yoshiyuki; using Newtonsoft.Json; using SumLib.From.NuGet; public static Sample Run( string message, TraceWriter log) { } 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にラップされてわたされる
30.
ロードのされ方って別にどうでもよくない? ? よくない場合があるので注意しよう ? Assembly.Loadで取り込まれるPrivate
Assembly(binフォル ダ)のLocationプロパティが空文字になる。 ? https://msdn.microsoft.com/ja- jp/library/system.reflection.assembly.location(v=vs.110).aspx ? Locationプロパティを触るライブラリを使ってるときは思わぬ 沼にはまることがある。
31.
Dynamic Assembly Load ?
Razor Engine みたいな動的にアセンブリを読み込むライブラリ は配置場所を考える必要がある ? binフォルダから読まれたアセンブリではAssembly. Locationが 空文字になり、Illegal Path例外で落ちる(Assembly.Loadだか ら) ? しかも、External Assemblyでもたまに空文字になる(原因わ からず) ? つまりIllegal Pathは完全には防げない ? いったんIllegal Pathになると再起動しないと直らない(直らなかっ た)
32.
? AppServiceの停止や再起動時にはCancellationToken.Noneな のでGraceful Shutdownできない ?
WebJobsでいうSoft shutdownの時だけ ? https://github.com/projectkudu/kudu/wiki/WebJobs#graceful- shutdown ? コンパイルとかFunction Host内で動いてるFunctionをいった ん止めるときとかだけ。 ? あんまり、 Graceful Shutdownが必要なものは載せない方がい いと思う。 再起動と言えばGraceful Shutdownの話
33.
まとめ
34.
? csx, Pre-compiled,
Direct は結構違う ? 結局最後はDirectの形 ? Direct使うんなら、WebJobでもそんなに変わらない ? モニターとかHttpTrigger、プロキシとか違うとこももちろんある。 ? Functions ? 何より従量課金プランがある!(これがないとサーバーレス感半減) ? Webjob ? MainでJobHost生成して使用するので、WebJobsShutdownWatcherとか使える ? コード読むの楽しい まとめ
Editor's Notes
#2:
それでは、はじめます。 こんなに人いると緊張しちゃいますね。 緊張するとおなか壊すタイプなので今日はしっかり胃薬飲んできました。 セッションタイトルなんことじゃいって感じだと思うんですけど 改ページ
#3:
このまえ、先月ですかね。 AzureユーザーグループでLTしたんですけど、その時、5分じゃ到底終わりそうにない資料作っちゃって、それをもじってます。 でも、今回のスライドは大体新規書き起こしです。こぴってるのもありますけど。
#4:
自己绍介は。。。飞ばしましょう
#5:
さて、今日はDotNet Confということなので、話す内容をかなり絞ろうかなと思いまして、結構考えたんですけど、 次の項目は全部そぎ落としてみようと思います。 時間余ったら登場してもらうこともあるかもしれませんが。 サーバーレスアーキテクチャの話とか、Functionsでどんな風にアプリケーション組んでいくかとかCI/CDの 話とか ログ監視とかの運用回りとか、 開発パターン系とか。
#29:
終わったら いやあ、皆さん素晴らしい! 最高のILビートでした。ビシビシ来ましたよ。 懇親会の時、隣の部屋の人から 「一体何してたの?」 って聞かれたら、 「ILのビートを感じていたのさ」とぜひお答えください。