Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
rclonefunction
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
YAEGASHI Takeshi
September 25, 2021
Technology
960
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
rclonefunction
Japan Azure User Group 11周年イベント
https://jazug.connpass.com/event/223585/
YAEGASHI Takeshi
September 25, 2021
More Decks by YAEGASHI Takeshi
See All by YAEGASHI Takeshi
Microsoft Entra IDとAzure App Serviceによる エンタープライズWebアプリ・サービスのプラットフォーム構築
yaegashi
0
190
Microsoft Entra/Azure による Redmine の企業内利用向けカスタマイズと運用
yaegashi
0
670
バンダイナムコスタジオにおけるクラウドネイティブなゲーム開発スタジオの挑戦
yaegashi
2
1.7k
Bandai Namco DX Cloud Studios の全貌
yaegashi
0
310
DX(開発者体験)の向上を目指す ゲーム開発インフラの進化とDX(デジタル変革)
yaegashi
0
230
Azure AD対応の認証プロキシサーバをGoで作っている話
yaegashi
0
300
ゲーム開発におけるクラウドネイティブな CI/CD の最新動向
yaegashi
0
600
大規模ゲーム開発を支えるAzure DevOpsによるクラウドネイティブなCI/CDの紹介
yaegashi
5
2.9k
社員全員が利用できるWebダッシュボードをAzureで作ってみた話
yaegashi
3
2.9k
Other Decks in Technology
See All in Technology
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
25k
薬剤師(ドメインエキスパート)と一緒に育てる薬局向けAIアシスタント
kakehashi
PRO
2
140
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
130
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
300
From Vanilla Kubernetes to a Batteries-Included Platform: Developer Experience at 1,300+ Clusters
yosshi_
0
680
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
8
7.7k
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
300
Code4Lib JAPANカンファレンス2026 開会挨拶 / Code4Lib JAPAN Conference 2026: Opening Remarks
ykiyota
0
320
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
160
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
300
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
110
アリアドネの糸と、20年ごとの建て替え ── 長尾真『電子図書館』を、伊勢で読み直す / Rereading Makoto Nagao’s "Electronic Library" in Ise
ykiyota
0
150
Featured
See All Featured
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
440
Google's AI Overviews - The New Search
badams
0
1.6k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Statistics for Hackers
jakevdp
799
230k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
820
My Coaching Mixtape
mlcsv
0
310
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
210
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
The Cult of Friendly URLs
andyhume
79
7k
Automating Front-end Workflow
addyosmani
1369
210k
Odyssey Design
rkendrick25
PRO
2
800
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Transcript
rclonefunction 2021-09-25 Japan Azure User Group 11周年イベント 八重樫 剛史 Takeshi
Yaegashi
自己紹介 2 八重樫 剛史 Takeshi Yaegashi 株式会社バンダイナムコスタジオ所属 Linux・Unix・OSS・Go 言語が好きなエンジニア 組み込みシステム開発、ゲームサーバ開発、CI/CD
インフラ開発、 開発環境のクラウドシフトなどの業務に従事 活動場所 ホームページ・ブログ https://l0w.dev GitHub https://github.com/yaegashi GitLab https://gitlab.com/yaegashi Twitter https://twitter.com/hogegashi
今日の話題 - rclonefunction 3 https://github.com/yaegashi/rclonefunction ▪ 実験的に作ってみた Azure Functions アプリ
▪ 特定の Azure Blob Storage のコンテナの変更を監視して、 変更があったファイルを別の場所のストレージに同期してくれる
Rclone 4 https://rclone.org ▪ 様々なクラウドサービスやプロトコルの間でファイルの同期が できる万能のコマンドラインツール − Azure Storage, AWS
S3, Google Cloud Storage, OneDrive, Amazon Drive, Google Drive, Dropbox, ownCloud, Nextcloud, WebDAV, SFTP, DLNA, etc. − クラウドに対応した rsync コマンド ▪ Go 言語で実装されている − ひとつの実行ファイルだけで動く − Windows・macOS・Linux・BSD や Intel/ARM/MIPS など、 多数のOS・CPUのコンパイル済みバイナリが用意されている ▪ rclonefunction では rclone を利用してファイルを同期している
rclonefunction のアーキテクチャ 5 ▪ EventGrid により Blob Storage の更新 イベントを
Queue Storage にためる ▪ rclonefunction が Queue Storage を監 視して rclone コマンドを起動する
rclonefunction 関数アプリの詳細 6 ▪ Go 言語で実装したカスタムハンドラによる Linux 関数アプリ − handler.go
ファイルひとつだけ ▪ 外部コマンド (rclone) を起動するという関数アプリらしくない ことをしている ▪ 大量の更新イベントがキューに溜まったとき、都度 rclone を 起動してしまわないように、web サーバの goroutine と rclone 実行の goroutine が buffered chan で通信して連携している
Bicep → ARM → Deploy to Azure ボタン 7 ▪
README.md の Deploy to Azure ボタンですぐに試せる ▪ 関数アプリ・ストレージアカウント・ほか関連リソースをまと めてデプロイ ▪ Bicep で記述し ARM テンプレートに変換して GitHub に配置 − 2 つのリソースグループを含み 4 つの Bicep ファイルにまたがる大作 (サブスクリプションスコープのテンプレート) − Bicep は ARM テンプレートと較べて開発効率が非常によい Bicep がなければ完成しなかった ▪ 関数アプリ本体は GitHub Actions で ZIP のリリースを作り、 WEBSITE_RUN_FROM_PACKAGE 設定で URL を指定してデプロイ
質問と回答 ① 8 ▪ SharePoint Online が宛先なら Logic Apps や
Power Automate 使わないのはなぜ? − 当初は Logic Apps や Power Automate でお気軽に作る予定だった − 標準の SharePoint Online のコネクタでは、大きなファイルのアップロードができなかった ので断念した − たしか数MBくらいが限界 − 10MB ~ 数GB のファイルを SharePoint Online に転送できる必要がある
質問と回答 ② 9 ▪ なぜわざわざ Blob Storage を経由して SharePoint Online
にコピーするのか? CI/CD から直接 SharePoint Online にアップロードすればよいのでは? − 権限の問題 − Microsoft 365 は特定のフォルダ・ドキュメントライブラリのみにアクセス可能な OAuth2 トークンを発行することができない − 会社の Azure AD 管理者ではないのでサービス専用アカウントを気軽に作ることができない
質問と回答 ③ 10 ▪ ファイルの利用者に SharePoint Online にアクセスさせるのはなぜか? 直接 Blob
Storage にアクセスさせればよいのでは? − SharePoint Online のほうがユーザーフレンドリー − わかりやすい Web インターフェース − ユーザー・グループを活用したアクセス権限設定が容易 − 通信コストの節約 − Azure Blob Storage からのダウンロードは 13円/GB の通信量が課金される − Microsoft 365 からのダウンロードは無料
まとめ 11 ▪ rclonefunction という関数アプリを作ってみました − 外部コマンドとして rclone を起動する関数アプリらしくない実装 −
Bicep は非常に使いやすく ARM テンプレートへの変換も簡単で Deploy to Azure ボタンがすぐに作れるのですばらしい − rclonefunction 自体はまだ使いにくいところがありますがぜひ試してみてください!
おわり 12