Azure

Azure Functions入門:無料試用枠で始めるサーバーレスアプリ開発ガイド

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
1ヶ月で資格+現場入り

インフラエンジニアへの最短ルート

未経験でもAWS・Linux・ネットワーク資格を最短で取り、現場入りまでサポート。SREやクラウドエンジニアの入口。

CODE×CODEスピード転職|無料面談▶ SRE/クラウドのフリーランス案件▶

▶ AWS/GCP/Kubernetesの独学には Kindle Unlimited の技術書読み放題がコスパ最強。


スポンサードリンク

Azure アカウントとサブスクリプションの準備

1‑1. Microsoft アカウントを取得

  • URL: https://signup.live.com
  • メールアドレスまたは電話番号でサインアップし、二段階認証(MFA)を有効にすると安全です。

1‑2. Azure 無料試用枠の有効化

項目 内容
クレジット額 $200(約 28,000 円相当)
有効期間 登録日から 30 日間 またはクレジットが使い切られるまでのいずれか早い方
継続利用可能な無料枠 Azure Functions、Azure Storage、Cosmos DB(一定量)など、一部サービスは 12 カ月間の常時無料枠 が提供されます。※クレジットが残っている場合でも、30 日を過ぎると自動的に従量課金へ移行します。

重要
無料試用期間終了後に課金を防止したい場合は、使用しないリソースを削除するか、サブスクリプションの「支払い方法」を無効化してください。

1‑3. リソース グループの作成

手順 操作
Azure ポータル (https://portal.azure.com) にサインイン
左メニュー > 「リソースグループ」 > 「+ 追加」
名前 rg-functions-demo、リージョンは開発・本番で統一(例: japaneast
「確認および作成」 → 「作成」

リソースグループは Function App、Storage アカウント、Cosmos DB などをまとめて管理できる単位です。


ローカル開発環境の構築

以下のツールが すべて必須 です。OS ごとのインストールコマンドを併記していますので、そのままターミナルに貼り付けて実行してください。

ツール 用途
Azure CLI Azure リソースの作成・管理、認証
Azure Functions Core Tools func コマンドでローカルサーバー起動、デプロイ
Node.js(LTS)/Python 3.10+ Function の実行ランタイム
Visual Studio Code (VS Code) エディタ & デバッグ UI
Azure Functions 拡張機能 テンプレート生成・デプロイ操作を GUI 化

2‑1. Azure CLI

OS コマンド例
Windows winget install --id Microsoft.AzureCLI
macOS brew update && brew install azure-cli
Ubuntu curl -sL https://aka.ms/InstallAzureCLIDeb \| sudo bash

インストール後に次を実行し、バージョンと認証が正しく行えることを確認します。

2‑2. Functions Core Tools(v4 系)

2024 年時点で推奨されている Functions Runtime v4 に対応した最新の Core Tools をインストールします。

※バージョン番号は執筆時点の最新版です。@latest に置き換えても構いません。

2‑3. ランタイム(Node.js / Python)

OS Node.js (LTS) Python
Windows winget install OpenJS.Nodejs または公式インストーラ choco install python --version=3.10
macOS brew install node@18 brew install python@3.10
Ubuntu sudo apt-get update && sudo apt-get install -y nodejs npm sudo apt-get install -y python3 python3-venv

備考
Azure Functions がサポートするバージョンは「Node.js 18」または「Python 3.10 以上」です。インストールしたバージョンがこれらと合致しているか node -vpython3 --version で確認してください。

2‑4. VS Code と拡張機能

  1. VS Code のダウンロード: https://code.visualstudio.com/
  2. 拡張インストール(VS Code 内の Marketplace)
  3. 「Azure Functions」
  4. 「Azure Account」

インストール後、左側に Azure アイコンが表示され、サブスクリプション選択や Function App のデプロイ操作が GUI で行えるようになります。


Function App プロジェクトの作成とローカル実行

3‑1. プロジェクト雛形の生成

3‑2. 関数テンプレートの作成

生成されたディレクトリ構造(Node.js の例):

3‑3. local.settings.json の設定

  • ローカル開発では IsEncryptedfalse にし、実際の接続文字列は Azure ポータルで作成した Storage アカウントから取得してください。
  • 本番環境では Azure が自動的に暗号化しますが、機密情報は Key Vault 参照で管理することを推奨します。

3‑4. ローカルサーバーの起動とデバッグ

ターミナルに次のような出力が表示されれば成功です。

VS Code のデバッガ(F5)でブレークポイントを設定すれば、リクエスト受信時にコードが停止し、変数の中身やスタックトレースをリアルタイムで確認できます。


Node.js と Python のサンプル関数(ハンズオン)

4‑1. Node.js(JavaScript)版

HttpGetFunction/index.js

動作確認(ローカル)

4‑2. Python(3.10)版

HttpGetFunction/__init__.py

動作確認(POST)


Azure へのデプロイと CI/CD パイプライン

5‑1. VS Code からのワンクリックデプロイ

  1. 左側メニュー → Azure アイコン → 「Functions」→「+」で新規 Function App を作成(ランタイムは node または python、プランは Consumption が手軽)。
  2. プロジェクトエクスプローラーで対象フォルダーを右クリック → Deploy to Function App…
  3. 作成した Function App 名を選択するとビルド・アップロードが自動的に実行されます。

デプロイ完了後、ポータルの「Function」ページからエンドポイント URL を取得し、外部から呼び出すことができます。

5‑2. CLI でのデプロイ手順

5‑3. GitHub Actions による CI/CD(完全自動化)

.github/workflows/azure-functions.yml の例です。

ポイント

項目 内容
認証方式 OIDC(GitHub の azure/login アクション)でシークレット管理不要
テスト実行 プルリクエスト時に自動テストが走り、失敗すればデプロイはスキップ
環境変数 Function App 名やリソースグループは env で一元管理し、他のジョブでも再利用可能

他サービスとの統合・本番運用ベストプラクティス

6‑1. Azure Storage Blob の活用例(Node.js)

  • AzureWebJobsStorage は Function が自動的にバインドするストレージアカウントです。別途接続文字列を管理する必要はありません。

6‑2. Cosmos DB(SQL API)への書き込み例(Python)

  • COSMOS_ENDPOINTCOSMOS_KEYKey Vault 参照で取得することが推奨されます(例: "@Microsoft.KeyVault(SecretUri=...)")。

6‑3. Event Grid によるイベント駆動連携

  • イベントが発生すると自動的に対象 Function がトリガーされ、バックエンド処理を分散させられます。

6‑4. 本番運用のチェックリスト

カテゴリ 推奨設定・対策
プラン選択 開発は Consumption、本番はスロットが必要なら Premium(vCPU とメモリ保証)または Dedicated を検討
ステージングデプロイ デプロイスロット staging を作成し、テスト完了後に swap で本番へ移行
監視・ログ Application Insights を有効化し、host.json"logging": {"applicationInsights": { "samplingSettings": { "isEnabled": true }}} を追加
スケーリング HTTP トリガーは自動スケール(最大 200 インスタンス)を利用。Cosmos DB の RU は実測に合わせて調整
再試行・デッドレターキュー function.json"retry": {"strategy":"exponentialBackoff","maxRetryCount":5}、失敗時は Azure Storage Queue へ送る設定を追加
セキュリティ Managed Identity を有効化し、Key Vault のシークレットに対するアクセス権のみ付与。IP 制限や VNet 統合も検討
バックアップ Function App 設定は az functionapp config backup create でスケジュールバックアップを取得

まとめ

  1. 無料試用枠は $200 クレジットが 30 日間、12 カ月の常時無料サービスは限定的です。
  2. 必要なツール(Azure CLI・Core Tools・Node.js/Python・VS Code)をインストールし、環境変数や Key Vault の活用方法を理解すれば、ローカル開発がスムーズに始められます。
  3. func initfunc newfunc start の流れでプロジェクト作成・デバッグが完結し、VS Code デバッガでブレークポイントを自由に設定可能です。
  4. サンプルコード(Node.js / Python)をそのままコピーして動かすだけで、HTTP GET/POST の基本的なハンドリングが体験できます。
  5. VS Code の UI デプロイ、CLI デプロイ、GitHub Actions による CI/CD いずれもサポートしているので、チーム開発や本番運用に合わせて選択してください。
  6. Blob、Cosmos DB、Event Grid との連携例と、本番で重視すべきプラン・スロット・モニタリング・セキュリティ設定を網羅しました。

このハンドブック通りに進めれば、無料試用枠の範囲内で Azure Functions の開発・テスト・本番デプロイまで一貫して実施できるはずです。ぜひ手順を踏んで実装し、サーバーレスアーキテクチャの利点を体感してください。


本稿の情報は 2024/10 時点の公式ドキュメントと Microsoft のベストプラクティスに基づいています。Azure のサービスは随時更新されるため、最新情報は必ず Azure ポータルまたは公式サイトで確認してください。

スポンサードリンク

お得なお知らせ

スポンサードリンク
1ヶ月で資格+現場入り

インフラエンジニアへの最短ルート

未経験でもAWS・Linux・ネットワーク資格を最短で取り、現場入りまでサポート。SREやクラウドエンジニアの入口。

CODE×CODEスピード転職|無料面談▶ SRE/クラウドのフリーランス案件▶

▶ AWS/GCP/Kubernetesの独学には Kindle Unlimited の技術書読み放題がコスパ最強。


-Azure