Slide 1

Slide 1 text

Azure Functionsを サクッと開発、サクッとデプロイ 2023/1/21 VS Code Conference Japan 2022 - 2023 馬場ひろの Hirono Baba

Slide 2

Slide 2 text

スピーカーについて ◼ 馬場ひろの ◼ (株)オルターブース所属 ◼ ex歯医者さん ◼ 福岡から来ました ◼ 認定スクラムマスター ◼ Azureや .NETがんばってます @nina-sensei

Slide 3

Slide 3 text

アジェンダ ◼ 今日話すこと ◼ Azure Functionsについて ◼ Azure FunctionsのDev Containers ◼ Azure Static Web AppsのDev Containers ◼ 対象者 ◼ ビギナー向け ◼ これからクラウド勉強する方 ◼ ローカルでAzure Functions動かしている方

Slide 4

Slide 4 text

Azure FunctionsとAzure Static Web Apps ◼ 業務で使うこともありプライベートでもAzureを使うように ◼ 推しはAzure FunctionsとAzure Static Web Apps ◼ MVCのフレームワークをよく使っていた → 個人開発とかいろいろ試す時はAzure Functionsほぼ一択に …

Slide 5

Slide 5 text

Azure Functionsが推しです ◼ 名前の通り、関数ひとつからデプロイできる ◼ 0円から始めることができる ◼ トリガーについて ◼ Http, Que, Time, EventGrid ◼ バインド機能がはかどる ◼ DBやストレージなど、他のサービスと簡単につなげる Azure Static Web Appsと合わせて使うと簡単にバックエンド付きのアプリに!

Slide 6

Slide 6 text

Dockerがあれば使えるDev Containers ◼ Azure FunctionsをDev Containersで動かすに至った理由 ◼ 少し前に作ったコード:`func start` で起動できない…! ◼ 原因 → .NETのバージョン違った ◼ 同じタイミングでNode.jsでAzure Functions作る機会があった ◼ バージョン管理等めんどくさい!ということでDev Containersで環境構築! × /codespaces GitHub Codespaces 無料枠:60時間/月 https://github.com/features/codespaces

Slide 7

Slide 7 text

Dev ContainersでAzure Functions ◼ コマンドパレット→Add Dev Container Configuration Files Show All Definitions… →Azure Functionsと入力 ◼ C# ◼ JavaScript ◼ Java ◼ PowerShell ◼ Python ◼ TypeScript ◼ F#

Slide 8

Slide 8 text

devcontainer.jsonの中身 ◼ 左下の><マーク → Reopen in Container でDev Containersが立ち上がる > < root/ ├── .devcontainer │ ├── devcontainer.json │ └── Docekerfile

Slide 9

Slide 9 text

Dev Containersで立ち上がった環境 ◼ .NET6.0とAzure Functions Core Toolsが使える環境ができあがり 初回のみ環境が立ち上がるまで 時間がかかる可能性あり!

Slide 10

Slide 10 text

GitHub Actionsでデプロイしよう ◼ プロジェクトができた時点でデプロイする→あとから楽 root/ ├── .github │ └── workflow │ └── XXX.yml CI/CD含めた環境構築は たったこれだけ 30分かからず終わる!

Slide 11

Slide 11 text

Azure Static Web Appsについて ◼ 静的アプリをデプロイできる ├── .github │ └── workflows │ └── XXX.yml │ ├── api │ ├── message │ │ ├── function.json │ │ └── index.js │ ├── host.json │ ├── local.settings.json │ └── package.json │ └── app └── index.html API Azure Static Web Apps AzureFunctions AzureFunctions Free Standard ◼ Key Vault ◼ Durable Functions ◼ マネージドID ◼ HTTP以外のトリガー など

Slide 12

Slide 12 text

Azure Static Web AppsのDev Containers起動 ◼ Static Web Apps CLIが使えるNode.jsのFunctionsが立ち上がる /api/message の API を 呼び出すサンプルアプリ

Slide 13

Slide 13 text

Azure Static Web AppsもGitHub Actionsで ◼ Azure Static Web Appsはリソース作成時にCI/CDを構築できる GitHubやAzure DevOpsから デプロイ可能

Slide 14

Slide 14 text

まとめ ◼ Dev Containersいいぞ ◼ サクッと環境構築 ◼ コードを書く時間を確保できる ◼ AzureとGitHubでかんたん自動化 ◼ サクッとCI/CD組める ◼ あとからデプロイで悩まない

Slide 15

Slide 15 text

参考 ◼ Dev Containers https://code.visualstudio.com/docs/devcontainers/containers ◼ Azure Functions でのトリガーとバインドの概念 https://learn.microsoft.com/ja-jp/azure/azure-functions/functions- triggers-bindings?tabs=csharp ◼ Azure でコマンド ラインから C# 関数を作成する https://learn.microsoft.com/ja-JP/azure/azure-functions/create-first- function-cli-csharp?tabs=azure-cli%2Cin-process ◼ Azure Functions による Azure Static Web Apps での API のサポート https://learn.microsoft.com/ja-jp/azure/static-web-apps/apis-functions