第一回 Jazug_Sapporo rebootイベント「ゆるいAzure Functions」

>100 Views

July 22, 25

スライド概要

Azure Functionsの内部構造とコード(コード、トリガー、バインディング)の構造を理解することでサービスの動きや特徴を理解することを目的としたスライドです。

おまけで当日行った2つ目のLT、Local Foundryを動かしてみたのスライドも付属しております。

初心者向けの内容となっております。


イベント:

2025/07/18 クラスメソッド札幌オフィス10F

https://jazug.connpass.com/event/358553/

profile-image

札幌市在住のアプリケーションエンジニアです。Azureとアプリケーション開発についての勉強会スライドを公開しております。 内容は個人活動によるもので、所属組織や公式見解ではありません。 内容についてのご指摘等ございましたら、twitterなどでご連絡いただけると幸いです。 bio: application developer, Java, python, typescript. concern at agentic app and Local LLM. opinion is on my own.

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

ゆるいAzure Functions 構造を知るとわかりやすいAzure Functions 株式会社 エーピーコミュニケーションズ 大久保直紀 1

2.

大久保直紀 ‣ ロール:バックエンド寄りの何でも屋 ‣ 最近の業務:エージェントアプリケーションの企画、設 計、開発 ‣ 好きな技術:LangChainバンザイ! ‣ 趣味:自転車、食べ歩き ‣ 年齢:38歳 ‣ 所属:株式会社エーピーコミュニケーションズ メッセージ

3.

今日のテーマは? Azure Functions イベント駆動型サーバレスサービス 言語:C#, Java, JS/TS, Python, PowerShellにネ イティブ対応 実行環境:Linux、Windows 好きなポイント:宣言的イベントトリガー 3

4.

Azure Functionsのアーキテクチャ レイヤー別に見るAzure Functions

5.

Azure Functionsのレイヤ ‣ サービスレイヤー ‣ スケールユニットレイヤー ‣ コンポーネントレイヤー ‣ プロセスレイヤー Azure Functionsのシステムとしてのレイヤーは 主に上記4つに分類して理解すると頭に入りや すいです。 あるレイヤーは下位のレイヤーを構成要素とし て持っており一層ずつ説明していきます。 5

6.

サービスレイヤーの構造 ‣ App Service(ベース) ‣ FrontEnd(ロードバランサー) ‣ Worker Instance(アプリケーショ ン) Azure Functions は App Serviceの上に成り立ってる 6

7.

スケールユニットレイヤーの構造 ‣ フロントエンド(ロードバランサ) ‣ サーバー:Kester ‣ リバースプロキシ:Yard ‣ Worker Instance ‣ Hostプロセス(共通処理) ‣ Workerプロセス(ロジック部 分) ※.NET8からisolated processに統一、 以前のものはin-process(host/worker が同一プロセス) 7

8.

スケールユニットレイヤーの構造:拡大図 8

9.

コンポーネントレイヤーの構造 ‣ Host ‣ サーバー:Kester ‣ リバースプロキシ:Yard ‣ Worker ‣ Docker(カスタムイメージ) ‣ Kudu(公式イメージ) ‣ Windows Web App(カスタムイ メージ) ※KestrelはAzure Learnではチョウゲンポウと 呼ばれてます 9

10.

プロセスレイヤーの構造 ‣ Hostプロセス ‣ httpサーバープロセス ‣ WebJobSDKによるトリガー管理、バイン ディングを行うプロセス ‣ スケーリング&ライフサイクル管理プロセス ‣ Workerプロセス ‣ 関数コードの実行プロセス ‣ プロセス管理プロセス ‣ その他実行環境プロセス 10

11.

Azure Functionsのコードの構造 従量課金プラン(コンサンプションプラン)で流れを確認

12.

Azure Functions開発の流れ ‣ 準備 ‣ イベントを起こすリソースを作る ‣ Azure Functions作成 ‣ 開発作業 ‣ プロジェクト作成 ‣ 関数の追加と実装 ‣ コードの実装 ‣ テストする ‣ Azure Functionsにデプロイする 12

13.

開発環境(代表例) ‣ IDE: VSCode ‣ SDK:Azure Functions Core Tool ‣ 言語:Azure Functionsのランタイム に対応したバージョンの言語 ‣ ストレージ:Azurite(コンテナ) ※注1 ‣ クライアント:Podmanなどお好み ‣ ローカルホスト:Docker+Azure Functions Image ※注1 Azure Storage Emulatorは非推奨 13

14.

Azure Functions作成 ‣ 作成方法 ‣ IaC(bicep or terraform) ‣ az command ‣ ポータル操作 ‣ 作成物 ‣ App Service Plan ‣ Storage Account(コードの保存先) ‣ Blob: host, secret, scm周りのファイル ‣ Azure Files:コードの置き先、SMB ‣ Function App(関数サービスの定義) ‣ その他:Application Insight、GitHub Actionsなど 14

15.

プロジェクトを立ち上げ ‣ 作成方法 ‣ pluginからcreate project ‣ 作成物 ‣ main関数 ‣ host.json ‣ local.settings.jsonその他 (.gitignore, depe ‣ ndencyなど) 15

16.

出力したてのAzure Functions 16

17.

関数の作成 ‣ 関数定義(VSCode pluginやコマンド) ‣ トリガー(必須):イベントを起こすAzureリソースと接続URLを 指定(コマンドかプラグイン操作で生成) ‣ 入力バインド(任意):イベントデータと一緒にデータを受け取る ときは関数にアノテーション ‣ 出力バインド(任意):関数の出力を指定したリソースに渡すため のアノテーション ‣ 関数の処理 ‣ 入力 ‣ イベント:入力元の定義による ‣ データ:入力バインドで指定したデータ(Cosmosのドキュメ ントやSQLレコード、Blobのファイルなど) ‣ ロジック:普通のアプリケーションロジック ‣ 出力 ‣ 出力バインドを行う場合は遷移先に合わせて、jsonやキューオ ブジェクトなどを返す ‣ 何も返さないと成功 17

18.

バインディングパターン あくまでバインディングはオプショナル 18

19.

関数の構造:イベントデータの分類 ‣ EventGrid ‣ Cloud Event v1.0 ‣ Event Grid Trigger ‣ サービス固有 ‣ 実装するもの ‣ Service Busトリガー ‣ Event Hubトリガー ‣ Httpトリガー ポイント:Event Grid経由で発火すると噛ませるとインターフェースが揃いやすい 19

20.

Azure Functionsのゆるポイント 構造から見るゆるいところ

21.

ゆるポイント ‣ トリガーとバインディングを定義する だけでパイプラインが成立するところ ‣ ロジックだけで書けばいい ‣ グルーコードがいらない ‣ Consumption Plan ‣ Azure Filesを使っているので、そこ にツールを置けてしまう 開発者体験が良い! 21

22.

おまけ:Foundry Localを動か してみる Azure製ローカルLLM管理ツールの現状と将来について 株式会社 エーピーコミュニケーションズ 大久保直紀 22

23.

Foundry Localとは? ‣ オンデバイスでLLMを動かすため のツール ‣ モデル管理 ‣ Azure AI Foundryのカタログ と同期 ‣ 審査済みのモデル ‣ Hugging Face model ‣ OpenAIのAPI互換でモデル公開 ローカル環境をLLM PaaS化するツール 23

25.

動かしてみます

26.

現時点では? ‣ 開発者目線だとOllamaと変わらな い ‣ 運用やML目線だとAzure AI Foundry上ですでにカタログ管理 していて尚且つ、それをGPUクラ スターに直ぐに載せたいニーズに は刺さりそう 26

27.

噂話 Model Catalog Integrations A closer examination of the Foundry’s catalog access reveals several notable highlights: • Foundry Local: Microsoft’s own curated set of foundational and task-speci c models, including some tightly integrated with Microsoft Graph and OS-level services. • Ollama: A third-party catalog, with special emphasis on on-device LLMs for language, vision, and multimodal tasks. • NVIDIA NIMs: NVIDIA’s microservice-style inference endpoints, ideal for deploying state-of-the-art models with GPU backing for enterprise-scale tasks. The interoperability between catalogs makes Foundry adaptable. Whether sourcing a foundation model on-device or deploying a massive LLM with GPU acceleration, the path is smoother than ever. 27

28.

‣ Japan PaaS Support Team Blog ‣ Azure Functions(関数アプリ)の内部アーキテクチャ概要や関連する用 語について ‣ App Service を構成する主要な要素とそれぞれの役割 ‣ Windows Forum ‣ The Visions Behind AI Foundry 28